Objectif :
Ce cours intensif de 2 semaines est l'occasion pour les étudiants de se
frotter à un projet comme s'ils étaient en entreprise. D'un côté, les TDs
sont centrés sur les cycles de développement (Agile (Scrum, Kanban,
User stories), Waterfall, Cycle en V), que l'on retrouve dans les
entreprises ainsi que sur la conception de projet via UML et de
l'utilisation pratique des designs patterns (en particulier MVC et
Strategy). De l'autre côté, les TPs sont centrés sur la réalisation
d'une application en Java (cette année, une réplique de StopCovid), où
les étudiants mettent en pratique la gestion de versions via git et
les designs patterns qu'ils ont vu en cours.
Objectifs : Ce cours porte sur la création d'un compilateur en Python avec
ANTLR qui prend en entrée un sous-ensemble de C (MiniC) et qui le compile
en assembleur RISCV. Au cours des différentes séances ont passe en revue,
la création d'un lexer et d'un parseur, la génération de code assembleur
et les thématiques associées. Le cours finit sur la présentation de
l'interprétation abstraite (avec implémentation d'un analyseur statique)
et des futures (avec implémentation).
LIAP2 - Algorithmique et programmation fonctionnelle (18h) [www][www-old]
Membres: Firmin Martin, Jérôme Boillot, Quentin Corradi, Avril de Goër de Herve, Orégane Desrentes, Dina El Zein, Paul Géneau de Lamarlière, Thibault Marette, Guillaume Rousseau, Justine Sauvage, et Victoria Sedig.
Objectif: Étendre le jeu Catabot Rescue à la logique du premier ordre
NB: L'épidémie de Covid-19 a malheureusement terriblement entravée la
progression de ce projet
Chargés de TPs: Amélie Barbe, Étienne Moutot et Paul Iannetta
Objectifs: Découverte d'au moins 4 langages de programmation dont : C
(obligatoire), C++, Python, OCaml, Haskell, Java, Erlang, PHP, LaTeX,
Bash, Makefile et HTML/CSS.
Forme du cours: Chaque langage dispose d'une base d'exercices présentée
sous la forme de fiche d'exercices. Les étudiants les font librement et
les chargés de TDs font des corrections individuelles pour chaque
étudiant.
Compétences: C++, algorithmes de mots, algorithmes de graphe,
programmation dynamique, flots, structures de données exotiques (arbres de
Fenwick, Arbre de segments, Arbre d'intervals, etc.)
Objectifs: Ce cours est le pendant pratique du cours Algo 2, les étudiants
ont l'occasion de mettre en pratique les algorithmes qu'ils ont étudié de
façon théorique.