Cours du second semestre de la deuxième année

Programmation 3

Programmation orientée objet 1

L'objectif de ce cours est de décrire et pratiquer le paradigme de programmation par objet à travers les outils offerts par le langage C++. On y présente les mécanismes d'encapsulation, d'héritage et de polymorphisme, illustrés par des exemples de composants typiques de programme. Ce cours, de manière plus générale, sensibilise à la manière d'organiser le code d'un logiciel afin de de faciliter sa création, son utilisation et sa maintenance.

Programmation système et réseau

L'objectif de ce cours est l'apprentissage de la programmation système d'une part, et des modèles et de la programmation réseau (qui utilise elle-même la programmation système) d'autre part. Des mises en œuvre d'outils systèmes ainsi que de programmes clients et serveurs communiquant à travers le réseau internet seront réalisés en travaux pratiques. Même pour les étudiant·es ne se destinant pas à la programmation bas niveau, ce cours introductif permet de comprendre le fonctionnement des couches logicielles de bas niveau qui sont la plupart du temps abstraites, afin de ne pas se retrouver coincer lorsque des problèmes apparaissant au niveau applicatif ont leurs origines dans les couches inférieures du système.

Algorithmique 2

Algorithmique et structures de données 2

Ce cours est la suite directe du cours éponyme au semestre précédent. Il s'agit de poursuivre l'études des algorithmes liés aux structures de données vues dans le cours précédent, et de démarrer l'étude d'autres types d'algorithmes, comme ceux liés au texte par exemple.

Introduction à l'intelligence artificielle

Ce cours aborde les principes sous-jacents à toute l'informatique et, en particulier, à l'intelligence artificielle : la représentation des connaissances, les algorithmes, et la résolution de problèmes. Sont abordées les méthodes heuristiques, qu'il s'agisse de la découverte de chemins, de jeux à deux joueur·es ou d'autres problèmes classiques, ainsi qu'un premier aperçu de l'apprentissage automatique, plus spécifiquement, ici, la classification.

Technocritique 1

Histoire de l'informatique / Informatique et société

Ces cours ont pour objectif de contextualiser la discpline informatique dans la société, autant historiquement que socialement ou environnementalement, afin de faire réfléchir les étudiant·es aux impacts de leur choix futurs en tant que développeur·euses informatiques. Pour cela, l'histoire de l'informatique est abordée sujet par sujet, et des parallèles sont faits avec l'actualité autant que possible. Dans une seconde partie des cours, les étudiant·es présentent un exposé sur un sujet du cours qu'iels souhaitent approfondir, ou sur n'importe quel autre sujet ayant trait à l'histoire de l'informatique, ou aux rapports entre la technologie et la société. Si le sujet choisi le permet, une approche technocritique est encouragée.

Programmation pour le jeu vidéo 4

Synthèse d'images

Basé sur l'utilisation d'une API graphique bas niveau telle qu'OpenGL, cet enseignement a pour objectif d'étudier en détail diverses techniques d'éclairage de scènes 3D permettant de produire en temps réel des images de synthèse. D'autres types de rendus, tels que les rendus expressifs — anciennement appelés Non-Photo-Réalistes — seront abordés. Sur cette base, nous étudierons la représentation, le chargement et le traitement de modèles 3D statiques ou animés. Enfin, aussi bien l'interaction bilatérale avec le son que l'application de l'analyse fréquentielle du son à la synthèse d'images seront présentées, avec comme objectif, la réalisation d'une application “images & sons” (voire demoscene).

Développement mobile

L'objectif de ce cours est d'apprendre à développer sur les plateformes mobiles (Android notamment).

Découverte 2

Transition écologique

Ce cours est divisé en deux parties. La première s'intègre aux cours “histoire de l'informatique” et “informatique et société” avec un volet plus centré sur les aspects environnementaux du numérique. La seconde est centrée sur les enjeux plus généraux de la transition écologique et se passe en ligne.

EC Libre

Un cours libre à choisir dans un autre département de l'université, sous réserve de compatibilité des emplois du temps.

Stage

Les étudiant·es de L2 ont la possibilité de réaliser un stage facultatif. Ce stage peut remplacer l'EC Libre.