Cette page liste les cours que j'ai donné à Paris 8 entre 2016 (mon recrutement) et 2020 (mise en place du LMD4).
Méthodologie de la programmation
Cours donné de 2016 à 2019 au premier semestre de L1 informatique.
Apprendre à (apprendre à) programmer : langages, paradigmes, outils, et notions importantes pour la programmation.
Séances
- Séance 0 : Présentation du cours ; Programmation impérative avec Python.
- Séance 1 (TP) : Terminal, shell, éditeur de texte ; Premiers pas avec Python.
- Séance 2 : Correction du TP de la séance 1 ; Révisions.
- Séance 3 : La programmation objet avec Python.
- Séance 4 : Les bibliothèques en Python ; Pygame ; Projets (fichiers).
- Séance 5 (TP) : MiniPaint avec Pygame (fichiers).
- Séance 6 : Correction du TP de la séance 5 ; Révisions.
- Séance 7 : Introduction à Git.
- Séance 8 : Introduction à LaTeX (fichiers).
- Séance 9 (TP) : Démarrage projet.
- Séance a : Un peu de logique.
- Séance b (TP) : Encadrement projet.
- Séance c : Un aperçu de la calculabilité.
- Séance d (TP) : Programmation sur machines de Turing (fichiers).
- Séance e : Correction du TP de la séance d ; Encadrement projets.
- Séance f : Aperçu du langage C : introduction.
- Séance g : Aperçu du langage C : mémoire, modules, compilation (fichiers).
- Séance h (TP) : Jeu de pendu en C (fichiers).
- Séance i : Correction du TP de la séance h ; Révisions.
- Séance j (TP) : Encadrement projets.
Projet
- Thème : petit jeu 2D avec Python et Pygame (choix du jeu libre, à valider avec moi).
Réseaux : modèles, protocoles, programmation
Cours donné de 2016 à 2019 au second semestre de L2 informatique.
Comprendre la transmission de données sur Internet : les modèles OSI et TCP/IP, les protocoles, et apprendre la programmation réseau.
Séances
- Séance 0 : Chargement d'une page web ; Présentation du cours (fichiers).
- Séance 1 : OSI ; Couche physique ; Couche liaison de données.
- Séance 2 : Couche réseau (fichiers).
- Séance 3 (TP) : Trace ta route ! (fichiers).
- Séance 4 : Correction du TP de la séance 3.
- Séance 5 : Couche transport (fichiers).
- Séance 6 : Couches session, présentation, et application ; Programmation TCP (fichiers).
- Séance 7 (TP) : ncat.
- Séance 8 : Correction du TP de la séance 7 (en C, Racket, Python, OCaml).
- Séance 9 : Programmation TCP (un peu plus) avancée (fichiers).
- Séance a : Exemple de protocoles simples.
- Séance b (TP) : Blablabla.
- Séance c : Architecure d'un client (GUI + réseau).
- Séance d (TP) : Encadrement projets.
- Séance e : Révisions ; Encadrement projets.
- Séance f (TP) : Encadrement projets.
Projet
- Créer un protocole client-serveur en groupe puis chacun·e l'implémente dans un langage différent.
Histoire de l'informatique
Cours donné de 2016 à 2020 au premier semestre de L3 informatique.
L'histoire de l'informatique, sujet par sujet.
Séances
- Séance 0 : Introduction ; Présentation du cours.
- Séance 1 : Histoire du calcul.
- Séance 2 : Histoire des machines.
- Séance 3 : Histoire des systèmes.
- Séance 4 : Histoire des langages de programmation.
- Séance 5 : Histoire de la logique.
- Séance 6 : Histoire de la cryptologie.
- Séance 7 : Histoire du logiciel libre.
- Séance 8 : Une Contre Histoire des Internets.
- Séance 9 : Exposés.
Exposé
- Thème : libre, en rapport avec le cours (idées de sujets).
- Durée : 10 à 15 minutes.
- Date de passage : voir avec moi par email, en même temps que la validation du thème.
Langages : interprétation et compilation
Cours donné de 2017 à 2020 au premier semestre de L3 informatique.
Comprendre jusqu'à être capable de construire l'outil fondamental de l'informatique.
Séances
- Séance 0 : Langages ? Interprétation ? Compilation ? ; Présentation du cours.
- Séance 1 : Analyse lexicale (fichiers).
- Séance 2 (TP) : Analyse lexicale.
- Séance 3 : Analyse syntaxique (fichiers).
- Séance 4 (TP) : Analyse syntaxique.
- Séance 5 : Analyse sémantique (fichiers).
- Séance 6 (TP) : Analyse sémantique (fichiers).
- Séance 7 : Écrivons ensemble un interpréteur (fichiers).
- Séance 8 : Corrections TPs.
- Séance 9 : MIPS et SPIM.
- Séance a (TP) : Premiers pas en MIPS avec SPIM (fichiers).
- Séance b : Compilation de langages impératifs (fichiers).
- Séance c (TP) : Démarrage projet et méthodologie (fichiers).
- Séance d : La mémoire (fichiers).
- Séance e (TP) : Programmation MIPS (fichiers).
- Séance f : Représentations intermédiaires (slides à venir™).
- Séance g : Encadrement projet.
- Séance h : Compilation vers le λ-calcul (fichiers).
- Séance i : Encadrement projet (squelette vu en cours).
Projet
- Sujet : compilateur Mini Python (exemples) vers MIPS en Racket.
Développement de logiciels libres
Cours donné de 2016 à 2020 au second semestre de L3 informatique.
Apprendre à collaborer sur des projets libres déjà existants (outils et méthodologie) dans le but de s'impliquer jusqu'à une vraie contribution.
Séances
- Séance 0 : Contribuer à un projet libre.
- Séance 1 (TP) : Recherche de projets / constitution des groupes.
- Séance 2 : Gestion de versions avec Git.
- Séance 3 (TP) : Premiers pas avec Git ; Analyse des projets et choix des bugs.
- Séance 4 : Communiquer avec IRC.
- Séance 5 (TP) : Premiers pas avec IRC ; Suivi des projets.
- Séance 6 et 7 (TP) : Suivi des projets.
- Séance 8 : Gouvernance des projets libres.
- Séance 9 (TP) : Suivi des projets.
- Séance [a-j] (TP) : Suivi des projets.
Sécurité et systèmes embarqués
Cours donné de 2016 à 2020 au premier semestre de M1 informatique.
Les bases de la cryptologie et les problématiques de sécurité liées aux systèmes embarqués.
Séances
- Séance 0 : Présentation du cours ; Chiffrement par substitutions (fichiers).
- Séance 1 : La cryptographie symétrique (fichiers).
- Séance 2 : La cryptographie asymétrique.
- Séance 3 : La cryptanalyse (fichiers).
- Séance 4 (TP) : Cryptanalyse linéaire.
- Séance 5 : Les canaux auxiliaires ; Correction du TP de la séance 4.
- Séance 6 (TP) : Simple Power Analysis (fichiers).
- Séance 7 : Les injections de fautes ; Correction du TP de la séance 6.
- Séance 8 (TP) : Attaque BellCoRe (fichiers).
- Séance 9 : Correction du TP de la séance 8 ; Ouverture.
Synthèse d'article de recherche
- Choix de l'article : libre, sur un thème du cours, à choisir/valider avec moi par email.
- « Monsieur, c'est quoi une synthèse ? »
- Longueur : 2 pages, en français.
Approche technique de l'espace numérique
Cours donné de 2018 à 2020 au premier semestre de M2 géopolitique.
S'approprier les concepts et outils techniques nécessaires à la compréhension des enjeux cyber.
Séances
- Séance 0 : Fonctionnement (et gouvernance) d'Internet.
- Séance 1 : Qu'est-ce qu'une cyberattaque ? Étude de cas : Stuxnet.
- Séance 2 : Quelques outils réseau ; Introduction à la programmation (impérative).
- Séance 3 : Premiers pas avec Python ; Introduction à la programmation réseau (fichiers).
- Séance 4 : Modéliser le contrôle dans un système d'information ; Le réseau Tor.