Cours du second semestre de la première année
Programmation 2
Programmation impérative 1
L'objectif de ce cours est d'apprendre la programmation impérative “bas niveau” en langage C. Il présentera ainsi les types de données standards, les structures de contrôle, l'itérativité vs la récursivité, la création de nouveaux types de données, l'utilisation de pointeurs, l'allocation dynamique de mémoire, la gestion de structures comme des tableaux et des listes chaînées, le prototypage de fonction et la programmation modulaire, l'utilisation du pré-processeur. Cet EC étant extrêmement important pour la suite de la formation, son coefficient est double.
Programmation logique
Ce cours présente le paradigme de programmation logique. Il s'appuie sur les concepts de Prolog dans l'environnement SWI-Prolog, pour aborder une nouvelle façon de décomposer et résoudre des problèmes, et donc d'améliorer significativement sa boîte à outil de développeur·e. Ce cours peut donner lieu à la présentation de variantes telles que la programmation logique par contrainte, datalog ou encore racklog.
Pratiques et fondements 2
Informatique fondamentale 1
L'objectif principal de ce cours est d'introduire un langage symbolique, proche des langages de programmation et du langage mathématiques, et d'apprendre à décrire des problèmes ou des situations grâce à ce langage. Cet apprentissage se fera à travers des notions théoriques indispensables de l'informatique ainsi que la résolution de problèmes liés : logique booléenne, ensembles et fonctions, dénombrement, automates et Machine de Turing, calculabilité, complexité, ainsi que des bases d'algèbre. Un ordinateur traite des données symboliques, savoir transformer une situation concrète en problème symbolique est une des activités principales d'un programmeur. Ce cours vous fournira des outils nécessaires pour devenir un bon programmeur !
Bases de données
Ce cours présente les principes de base pour la conception, la modélisation (conceptuelle et relationnelle) et l’exploitation des bases de données. À l'issue de cet EC, les étudiant·es maîtriseront le langage SQL (création, requêtes, modification) et les contraintes d’intégrité (clés, relations). Ces notions sont mises en pratique via des TP sur un SGBD (système de gestion de bases de données).
Outils informatiques collaboratifs
L'objectif de ce cours est d'apprendre à utiliser un gestionnaire de contrôle de version (Git) et les outils mis à disposition par les forges logicielles (bug tracker, merge request, etc.) pour collaborer à plusieurs sur un même projet de programmation.
Programmation pour le jeu vidéo 2
Programmation dans les moteurs de jeux 1
L'objectif de ce cours est de présenter la réalisation d'un petit jeu de type arcade avec la contrainte d'être entièrement scripté. Contrairement au cours d'Introduction dans les moteurs de jeux, l'idée est de ne pas utiliser les fonctionnalités avancées du moteur, et de tout ré-implémenter. La génération de l'environnement, le déplacement des personnages et la gestion des collisions seront ainsi entièrement programmées.
Création et gestion de ressources
L'objectif de ce cours est de donner les bases pour comprendre et réaliser les éléments graphiques et audio nécessaires à la réalisation d'un jeu vidéo en 2D. Il couvrira le dessin et l'animation d'un personnage en pixel art (avec LibreSprite), la réalisation de décors (notamment en utilisant des tiles), et l'enregistrement (Audacity) et la génération de sons et de musique (beepbox, MuseScore).
Communication 1
Lire et écrire le monde
L'objectif de ce cours est d'améliorer votre expression en français, notamment à l'écrit. Les étudiant·es les plus fragiles suivront des ateliers au département ComFLE, pour les autres il s'agit d'un cours en ligne.
Langue vivante 1 (anglais)
Il est très utile de lire et écrire l'anglais pour réussir en informatique. Beaucoup de documentation n'existe qu'en anglais, et c'est la langue de communication privilégiée pour les échanges professionnels lors du développement de logiciels.