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

UE Informatique 3
EC “Algorithmique et structures de données 1”

Ce cours introduit l'algorithmique et les structures de données. L'algorithmique est au cœur de la programmation en informatique. Elle consiste en l'étude et la résolution de problèmes, aussi bien au niveau théorique que pratique. Ce cours présente l'intérêt d'utiliser des structures de données appropriées aux résolutions des problèmes abordés. Au fil de la découverte de différentes problématiques, nous discuterons et proposerons des ré-implémentations de structures de données plus ou moins adaptées à leur résolution ; apprendre à bien choisir sa structure de données et l'optimisation de ses implémentations fera ainsi partie des objectifs de ce cours, emmenant l'auditeur à se constituer sa première bibliothèque d'outils pour des usages algorithmiques.

EC “Programmation impérative avancée”

Ce cours est la suite de celui de “Programmation impérative” qui est donné en première année. Son objectif est d'aller plus loin dans la programmation en C, notamment d'apprendre à tirer pleinement parti des outils de compilation modulaire et de débugage. Il s'agit également de maîtriser des subtilités du langage utilisé et d'apprendre à programmer de façon plus lisible et donc plus facile à reprendre, modifier, améliorer, et bien sûr corriger.

EC “Programmation fonctionnelle avancée”

Ce cours est la suite de celui de “Programmation fonctionnelle” qui est donné en première année. Son objectif est de continuer à se familiariser avec ce paradigme de programmation qui prend de plus en plus d'importance, tout en allant plus loin dans l'utilisation des outils de compilation et d'analyse statique (notamment apprendre à tirer parti du typage) à travers l'usage du langage de programmation OCaml.

UE Conception et programmation de jeux vidéo 3
EC “Algorithmes pour la programmation graphique”

Cet enseignement a pour premier objectif la découverte de la représentation mémoire des images en machine, l'implémentation et l'optimisation de primitives de dessin dans l'espace discret et l'élaboration d'un pipeline “maison” de rastérisation incluant le coloriage Gouraud et le placage de texture. Nous découvrirons ensuite des notions plus complexes de géométrie algorithmique telles que l'élaboration d'un diagramme de Voronoï, la triangulation d'un nuage de points ou l'utilisation d'automates cellulaires afin de générer des textures. Nous terminerons par une introduction à l'utilisation de la bibliothèque OpenGL et à la programmation de shaders en revenant, via une approche SIMD (GPU/parallèle), sur certaines des problématiques précédemment abordées.

EC “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ème. Sont abordés les méthodes heuristiques, qu'il s'agisse de la découverte de chemins, de jeux à deux joueur·es ou autres problèmes classiques, ainsi qu'un premier aperçu de l'apprentissage automatique, plus spécifiquement, ici, la classification. Le perceptron est présenté, avant d'évoquer les différentes variantes de réseaux de neurones, puis, pour conclure cet aperçu, les arbres de décision sont introduits.

UE Compétences transversales 3
EC “Préparation au projet professionnel”

Ce cours, qui est en partie assuré par le SCUIO-IP, a pour objectif de faire réfléchir les étudiant·es à la suite de leur parcours universitaire en fonction de leurs objectifs.

EC “Langue vivante 2” (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 !