Cours du second semestre de la troisième année
🚧
Page en cours de construction.
Recherche & développement
Intelligence artificielle et apprentissage
L'intelligence artificielle générative sature aujourd'hui l'espace public et est présentée par certains acteurs comme le prochain bouleversement de nos pratiques informatiques. Derrière ce vernis technologique, aux abords souvent mystérieux, se cache pourtant une seule et même discipline scientifique : l'apprentissage automatique (Machine Learning). Aborder ce domaine dès le cycle de licence répond à un double impératif. Il s'agit d'abord de se doter d'outils permettant de développer une pensée critique de ces approches : face aux discours médiatiques souvent sensationnalistes, une bonne maîtrise technique de ces objets permet souvent de les appréhender avec plus de lucidité. Il s'agit ensuite de répondre à l'engouement massif que suscite l'IA chez de nombreux étudiant·es, qui souhaitent parfois en faire leur choix d’orientation sans en connaître précisément la réalité. Ce cours offre ainsi un aperçu concret et sans artifice de la discipline, de la régression linéaire aux modèles Transformer modernes, dans des cadres d’apprentissage supervisés et non-supervisés.
Projet de R&D encadré
Le projet de R&D (recherche et développement) encadré est une initiation à la recherche à travers la réalisation de l'implémentation logicielle d'un projet tout au long de l'année. Des sujets sont proposés par les enseignant·es-chercheur·es qui interviennent dans la licence et les étudiant·es sont invité·es à y travailler en binôme. Une étude de l'état de l'art concernant le sujet choisi est attendu dans un premier temps pour préparer le travail d'implémentation qui interviendra ensuite.
Explorations 2
Programmation orientée objet 2
Programmation de moteurs de jeu
Ce cours explore certaines des fonctionnalités au coeur des moteurs de jeux, principalement regroupées autour des concepts de physique — mécanique classique, cinématique et détection de collisions — de rendu et de son, avec des extensions possibles vers les modèles articulés, les scripts de comportement, les techniques spécifiques de rendu, notamment en GPU, et les contraintes temps-réel. La première partie ce ce cours propose des implémentations en Three.js, la seconde comporte des éléments bas niveau programmés en OpenGL/GL4D et une introduction aux traitements parallèles des données géométriques en GLSL. Ce cours invite les étudiant·es à s’initier à la réalisation de « démos » au sens de la demoscene.
Cybersécurité
Dans un premier temps il s'agit dans ce cours d'aborder la cybersécurité sous ses différents aspects techniques, légaux, politiques, individuels et collectifs, à travers l'analyse de différentes cyberattaques et l'étude de l'autodéfense numérique. Dans un second temps, le cours se concentrera plus précisément sur les aspects techniques et leur pratique (cryptologie, système, réseau, web, …) à travers la mise en œuvre d'attaques et de mécanisme de défense contre celles-ci.
Développement de logiciels libres
L'objectif de ce cours est d'apprendre à collaborer sur des projets libres déjà existants : s'approprier leurs outils, leurs conventions, leurs plateformes de développement, etc. dans le but de s'impliquer jusqu'à la réalisation d'une véritable contribution telle que la correction d'un bug signalé sur l'issue tracker du projet choisi.
Technocritique 2
Éthique et informatique / Droit et informatique
Ces cours prolongent la contextualisation dans la société de l'informatique et des technologies commencée dans le cours d'histoire de l'informatique l'année précédente. L’objectif est de déconstruire, au travers de discussions s’appuyant sur des travaux de philosophie de la technique, l'idée reçue d'une discipline informatique politiquement neutre.
Programmation pour le jeu vidéo 6
Programmation de cartes graphiques
L'objectif de ce cours est d'aborder la programmation sur GPU (langage C et GLSL, API OpenGL 3.3+) par le biais de problématiques de parallélisation d'algorithmes principalement issus du domaine de la synthèse d'images (filtres de convolution, diagramme de Voronoi, bruit de Perlin, déformation de maillages, déplacement des milieux). Toujours en GPU, nous abordons aussi des aspects plus classiques de la synthèse d'images tels que les modèles d'illumination (ombre propre – Gouraud, Phong –, ombre portée, reflets spéculaires, etc.), la génération de maillages (paysages, arbres en L-Système, etc.), le chargement de modèles et leur animation.
Intelligence artificielle pour les jeux
Ce cours présente l'étude des algorithmes utiles à la résolution des jeux par recherche arborescente Monte Carlo, extensibles plus généralement pour résoudre des problèmes d'optimisation ou de décision. Il s'appuie principalement sur les jeux à information parfaite, à un joueur à plusieurs joueurs, tour par tour ou temps réel, en guise d'initiation à la résolution de puzzles et de jeux avec un ou plusieurs adversaires.
Communication 3
Stage
Les étudiant·es de L3 doivent réaliser un stage en entreprise ou en laboratoire.
Prépa CAPES NSI
Suite de la préparation au CAPES NSI du semestre précédent.
Atelier médiation scientifique
L'objectif de ce cours est de mettre un œuvre un atelier de médiation scientifique en informatique. Il s'agit de créer un dispositif permettant, par le jeu et/ou l'expérimentation et si possible sans ordinateur, d'appréhender des notions potentiellement complexes d'informatique pratique ou théorique.
Langue vivante 3 (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.