Cours du premier semestre de la troisième année
Langues & langages
Ingénierie des langues
L'objectif de ce cours est d’introduire les méthodes informatiques permettant de représenter, analyser et traiter automatiquement les langues naturelles. Le cours présente les principales étapes d’une chaîne de traitement de données textuelles : acquisition et préparation des données, normalisation et segmentation des textes, représentation de l’information linguistique, annotation et extraction d’informations. Il introduit différentes approches du TAL, allant des méthodes symboliques et fondées sur des ressources linguistiques aux méthodes statistiques et d’apprentissage automatique, jusqu'aux représentations neuronales et aux modèles de langue. Il sensibilise les étudiant-e-s aux particularités des données textuelles, comme leur variabilité, leur ambiguïté et leur dimension multilingue. Des applications concrètes permettent de mettre en œuvre ces méthodes sur des corpus textuels et d’en évaluer les résultats et les limites.
Interprétation et compilation
Les langages de programmation sont les outils des informaticien·nes. Pour résoudre un problème, il est nécessaire d'utiliser un outil adapté. Être capable de créer son propre langage de programmation est donc l'abstraction ultime. L'objectif de ce cours est justement d'apprendre à implémenter soi-même un langage de programmation, de la lecture du code source jusqu'à sa traduction en assembleur.
Explorations 1
Algorithmique avancée
L'objectif de ce cours est d'implémenter plusieurs algorithmes permettant de résoudre un même problème donné. Il s'agit ensuite d'en comparer l'efficacité de manière empirique (mesure de temps d'exécution), sans preuve de complexité théorique. Les domaines abordés dans ce cours sont : la combinatoire et le calcul de suites de nombres, les algorithmes de tri, les algorithmes de tracé de droites discrètes (Bresenhamn, pas de deux, Dulucq-Bourdin), les algorithmes de plus courts chemins dans des graphes (Dijkstra, Bellman-Ford, Floyd-Warshall), les algorithmes de compression d'images (sans perte ou avec perte) ainsi que les algorithmes d'IA pour les jeux via recherche arborescente (Minimax, MCTS).
Introduction à la cryptologie
Ce cours aborde les bases de la cryptographie et de la cryptanalyse. Il commence par un passage en revue des cryptosystèmes historiques et de leur cryptanalyse. Il se concentre ensuite sur l'étude des principes et de la mise en œuvre de la cryptographie moderne, symétrique et asymétrique, puis de la cryptanalyse moderne et des attaques par canaux auxiliaires. À chaque fois avec des mises en pratiques concrètes d'implémentation, aussi bien des cryptosystèmes que des attaques.
Informatique fondamentale 2
Ce cours approfondit les fondements théoriques et mathématiques de l’informatique. Il aborde les langages formels, les grammaires, les automates à pile et les machines de Turing, ainsi que les notions de calculabilité, d’indécidabilité et de complexité. Le cours introduit également des outils mathématiques utiles en informatique, notamment les matrices, les probabilités et les chaînes de Markov.
Plus de détails
Ce cours approfondit les fondements théoriques et mathématiques de l'informatique présentés dans les cours « Mathématiques pour l'informatique et les jeux vidéo » et « Informatique fondamentale 1 ».
La première partie est consacrée aux modèles formels de calcul. En partant des limites des automates finis, nous aborderons les grammaires formelles, les automates à pile et les machines de Turing. Ces différents modèles nous permettront d’étudier progressivement les concepts de calculabilité, d’indécidabilité et de complexité, et de répondre à trois questions fondamentales : comment représenter un calcul ? Quels problèmes un ordinateur peut-il résoudre ? Parmi ceux-ci, lesquels peut-il résoudre efficacement ?
La deuxième partie présentera les outils mathématiques essentiels à l’informatique moderne, notamment les vecteurs, les matrices et les probabilités. Nous étudierons leurs applications à la représentation des graphes et des systèmes probabilistes, en nous étendant aux chaînes de Markov.
L’objectif de ce cours est de développer la capacité à formaliser un problème informatique, à raisonner à partir de modèles abstraits et à comprendre les possibilités et les limites fondamentales du calcul.
Défis de programmation
Les objectifs de ce cours sont 1- apprendre à analyser un problème algorithmique (complexité en espace et en temps, solution unique ou multiple, problème continue ou discret, quelles représentations du problème et de la solution en termes de structures de données, etc.) ; 2- s'entraîner à écrire un programme optimisé de calcul de la (ou des) solution(s) à un tel problème ; 3- réfléchir à la génération d'instances de tel problème. Chaque séance sera l'occasion de faire face à un nouveau problème. Le langage utilisé sera plus ou moins libre, selon les contraintes d'interaction et de mise en œuvre.
Poursuite d'études 2
Objectif master / Préparation au stage
Ateliers de préparation à la recherche de stage et à la candidature en master.
Programmation pour le jeu vidéo 5
Physique pour les jeux vidéo
La simulation (plus ou moins réaliste) de systèmes physiques est l'une des applications fondamentales de l'informatique et reste un enjeu central pour les jeux vidéo, mais aussi pour l'infographie, l'art numérique, le calcul scientifique, etc. En partant des notions fondamentales de physique (mécanique newtonienne) et d'informatique (analyse numérique, infographie et géométrie algorithmique), nous explorerons la mécanique des corps rigides et déformables ainsi que la simulation des fluides dans le but de mettre en place un moteur physique.
Modélisation 3D, matériaux, animation
L'objectif de ce cours est de donner les bases pour comprendre et réaliser les éléments graphiques nécessaires à la réalisation d'un jeu vidéo en 3D. Il couvrira la modélisation d'un personnage low-poly, l'application de textures et de matériaux, et l'animation. Il utilisera le logiciel Blender.
Découverte 3
Tremplin master
Ce cours est composé de conférences donnant chacune un aperçu des domaines de spécialisation proposés en master informatique à Paris 8.
EC Libre
Un cours libre à choisir dans un autre département de l'université, sous réserve de compatibilité des emplois du temps.
Prépa CAPES NSI
Préparation au CAPES NSI, pour les étudiant·es qui se destineraient à l'enseignement de l'informatique au lycée. Les lauréats de ce concours suivront ensuite un master enseignement et éducation (M2E) durant lequel iels sont rémunéré·es, avant de prendre leur poste dans l'Éducation nationale.