Initiation à la programmation pour non-informaticiens (Moodle, iCal)
Semestre :
S2
ECTS :
3
Nombre d’heures :
24
Enseignants :
Tatiana STARIKOVSKAYA
Type de cours :
Travaux pratiques
Ce cours est ouvert aux élèves de toutes les disciplines, littéraires comme scientifiques. Aucune connaissance préalable en programmation n’est requise. Le cours n’est pas orienté à priori vers une application particulière. Il s’adaptera aux besoins des élèves. Il sera utile au noninformaticien qui aura un jour à programmer rapidement une simulation, mais aussi à toute personne souhaitant comprendre comment sont faits les programmes informatiques. Introduction à Python - Listes et fonctions - Dictionnaires et classes -Modules et fichiers - Calcul scientifique - Lecture des données du web - Etc.
Le but de ce cours est d’acquérir une maîtrise des concepts de base et de certains concepts avancés de l’algorithmique et des structures de données, ainsi que de se familiariser à l’implémentation de ces concepts dans un langage de programmation. Le cours consiste en des leçons hebdomadaires, suivies de sessions de travaux dirigés. Des devoirs à la maison, avec une partie théorique et une partie implémentation, sont à réaliser chaque semaine. Le cours se conclut par un examen.
Les concepts abordés sont les suivants : introduction à l’algorithmique et aux structures de données diviser pour régner ; programmation dynamique et algorithmes gloutons ; algorithmes de tri ; ensembles et tableaux associatifs ; algorithmes de texte ; ensembles disjoints ; arbre couvrant minimal ; recherche en profondeur ; plus courts chemins ; réseaux de flots.
L’apprentissage statistique est une discipline en plein essor à l’interface de l’informatique et des mathématiques appliquées (probabilités / statistiques, optimisation, etc.) et qui joue aujourd’hui un rôle majeur en matière d’innovation technologique. À la différence d’un cours de statistique traditionnel, l’apprentissage statistique se préoccupe particulièrement de l’analyse de données de grande dimension ainsi que de l’efficacité des algorithmes pour traiter d’importants volumes de données telles que rencontrées dans des domaines d’applications divers tels l’analyse d’image et du son, le traitement automatique du langage, la bio-informatique ou la finance. L’objectif du cours est de présenter les théories et algorithmes majeurs de l’apprentissage statistique. Les méthodes abordées reposeront en particulier sur des arguments d’analyse convexe.
Algorithmique et programmation ; Langages formels, calculabilité et complexité
Ce cours couvre les grands principes des systèmes de gestion de données (SGBD). Les SGBD sont des logiciels génériques permettant le stockage et la manipulation efficace de données pour une très large gamme d’applications. Du point de vue pratique, les SGBD sont des logiciels sophistiqués, très largement utilisés, omniprésents dans le monde industriel. Du point de vue théorique, la conception de ces systèmes repose sur des fondements conceptuels, logiques, algorithmiques, en lien avec d’autres domaines de la science informatique. Le cours ira des aspects théoriques aux aspects systèmes des SGBD, en particulier ceux basés sur le modèle relationnel.
Mercredi 10 Février 2021, 08:30 – 10:15, H. Cartan
Mercredi 3 Mars 2021, 08:30 – 10:15, H. Cartan
Mercredi 10 Mars 2021, 08:30 – 10:15, H. Cartan
Mercredi 17 Mars 2021, 08:30 – 10:15, H. Cartan
Mercredi 24 Mars 2021, 08:30 – 10:15, H. Cartan
Mercredi 31 Mars 2021, 08:30 – 10:15, H. Cartan
Mercredi 7 Avril 2021, 08:30 – 10:15, H. Cartan
Mercredi 14 Avril 2021, 08:30 – 10:15, H. Cartan
Mercredi 5 Mai 2021, 08:30 – 10:15, H. Cartan
Mercredi 12 Mai 2021, 08:30 – 10:15, H. Cartan
Mercredi 19 Mai 2021, 08:30 – 10:15, H. Cartan
Mercredi 26 Mai 2021, 08:30 – 10:15, H. Cartan
Travaux pratiques:
Mercredi 3 Février 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 10 Février 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 3 Mars 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 10 Mars 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 17 Mars 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 24 Mars 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 31 Mars 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 7 Avril 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 14 Avril 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 5 Mai 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 12 Mai 2021, 10:15 – 12:15, Info 3 & 4
Mercredi 19 Mai 2021, 10:15 – 12:15, Info 3 & 4
Informatique scientifique par la pratique (Moodle, iCal)
Semestre :
S2
ECTS :
9
Nombre d’heures :
48
Enseignants :
David NACCACHE
Type de cours :
Leçons, Projet
Mode d’évaluation :
Projet
Le cours d’Informatique scientifique par la pratique permet aux élèves de s’initier à la rédaction d’un article en s’attaquant à un véritable problème de recherche. Le travail s’effectue en appliquant des techniques mathématiques et informatiques vues lors de divers cours de l’ENS et en explorant et en apprenant de nouveaux outils, autant que nécessaire. Les étudiants se voient exposer au début du cours plusieurs défis mathématiques et informatiques et forment des groupes. Chaque défi est analysé par le groupe (sous la supervision de l’enseignant et ses doctorants) et des solutions théoriques lui sont proposées et débattues. Les solutions sont ensuite analysées et programmées. Les résultats sont structurés (en anglais) sous la forme d’un article de « professionnel » qui peut être soumis à une conférence, à un comité de lecture (ou même à un journal).
David POINTCHEVAL, Georg FUCHSBAUER, Brice MINAUD, Jacques STERN
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Examen
Prérequis :
Ce cours fera essentiellement appel aux notions de classes de complexité, de machine de Turing et de problèmes NP. Un minimum de connaissances en algèbre et en probabilité sera aussi requis. Enfin les outils algorithmiques de base devront être maîtrisés. Certains TDs conduiront à de la programmation en langage C ou Python.
Ce cours s’adresse aux étudiants ayant un goût pour l’algorithmique, à la fois dans ses aspects mathématiques et dans ses aspects pratiques. Son but est d’enseigner la problématique de la cryptologie, et les principaux outils utilisés par la cryptologie pour proposer des solutions aux problèmes de sécurité. Il sert d’introduction et de préparation aux cours de cryptologie proposés au MPRI. Ce cours commence par les notions de base de cryptographie symétrique (chiffrement par blocs et par flot, fonctions de hachage, et cryptanalyse) et asymétrique (RSA, Diffie-Hellman et ElGamal), puis présente de façon informelle plusieurs techniques plus avancées - Preuves zero-knowledge - Cryptographie distribuée - Cryptographie à base de couplages sur courbes elliptiques - Cryptographie à base de réseaux euclidiens (cryptographie post-quantique) - La Blockchain et bitcoin
Ce cours a lieu à l’ENS Paris-Saclay.
Ce cours explore les bases du lambda-calcul, un outil inventé par le logicien Alonzo Church dans les années 1930 et qui est aujourd’hui fondamental tant en sémantique des langages de programmation (informatique) qu’en théorie de la preuve (logique). Lambda-calcul pur, (non-)terminaison, confluence, standardisation Lambda-calcul typé, correspondances de Curry-Howard pour diverses logiques, classiques ou intuitionnistes, allant de la logique propositionnelle minimale (types simples) à l’arithmétique du second ordre (système F) Machines, lambda-calculs à substitutions explicites, et propriétés mathématiques d’iceux
Mardi 2 Février 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 9 Février 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 16 Février 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 2 Mars 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 9 Mars 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 16 Mars 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 23 Mars 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 30 Mars 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 6 Avril 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 13 Avril 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 4 Mai 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 11 Mai 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 18 Mai 2021, 14:00 – 16:00, ENS Paris-Saclay
Mardi 25 Mai 2021, 14:00 – 16:00, ENS Paris-Saclay
Travaux dirigés:
Mardi 2 Février 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 9 Février 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 16 Février 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 2 Mars 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 9 Mars 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 16 Mars 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 23 Mars 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 30 Mars 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 6 Avril 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 13 Avril 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 4 Mai 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 11 Mai 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 18 Mai 2021, 16:00 – 18:00, ENS Paris-Saclay
Mardi 25 Mai 2021, 16:00 – 18:00, ENS Paris-Saclay
Langages de programmation et compilation (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Jean-Christophe FILLIATRE
Type de cours :
Leçons, Travaux pratiques
Mode d’évaluation :
Projet, Examen
Ce cours présente les principaux concepts des langages de programmation au travers de l’étude de leur compilation, c’est-à-dire de leur traduction vers le langage machine. Les TDs ont pour objectif de programmer certaines des notions vues en cours. L’évaluation comprend un projet consistant en la réalisation d’un petit compilateur.
Vendredi 25 Septembre 2020, 08:30 – 10:30, E. Noether
Vendredi 2 Octobre 2020, 08:30 – 10:30, E. Noether
Vendredi 9 Octobre 2020, 08:30 – 10:30, E. Noether
Vendredi 16 Octobre 2020, 08:30 – 10:30, E. Noether
Vendredi 23 Octobre 2020, 08:30 – 10:30, E. Noether
Vendredi 6 Novembre 2020, 08:30 – 10:30, E. Noether
Vendredi 13 Novembre 2020, 08:30 – 10:30, E. Noether
Vendredi 20 Novembre 2020, 08:30 – 10:30, E. Noether
Vendredi 27 Novembre 2020, 08:30 – 10:30, E. Noether
Vendredi 4 Décembre 2020, 08:30 – 10:30, E. Noether
Vendredi 11 Décembre 2020, 08:30 – 10:30, E. Noether
Vendredi 18 Décembre 2020, 08:30 – 10:30, E. Noether
Vendredi 8 Janvier 2021, 08:30 – 10:30, E. Noether
Travaux pratiques:
(groupe 1)
Vendredi 25 Septembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 2 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 9 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 16 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 23 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 6 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 13 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 20 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 27 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 4 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 11 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 18 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Vendredi 8 Janvier 2021, 10:30 – 12:15, Info 3 & 4
(groupe 2)
Jeudi 1 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 8 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 15 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 22 Octobre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 5 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 12 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 19 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 26 Novembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 3 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 10 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 17 Décembre 2020, 10:30 – 12:15, Info 3 & 4
Jeudi 7 Janvier 2021, 10:30 – 12:15, Info 3 & 4
Jeudi 14 Janvier 2021, 10:30 – 12:15, Info 3 & 4
Langages formels, calculabilité et complexité (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Michel ABDALLA
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Projet, Examen
1. Langages réguliers, leurs propriétés et leur caractérisation par automates, expressions régulières, formules logiques, monoïdes. Langages sans étoile. Premières notions sur les langages de mots infinis.
2. Grammaires et hiérarchie de Chomski. Langages hors contexte, leurs propriétés, leur caractérisation par automates à pile
3. Calculabilité (fonctions récursives et Machines de Turing). Problèmes décidables, indécidables, semi-décidables.
4. Complexité en temps et espaces. Bornes de complexité. Classes de complexité (NP, Pspace) et problèmes complets.
Jeudi 15 Octobre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 22 Octobre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 5 Novembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 12 Novembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 19 Novembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 26 Novembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 3 Décembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 10 Décembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 17 Décembre 2020, 13:15 – 15:15, Amphi Galois
Jeudi 7 Janvier 2021, 13:15 – 15:15, Amphi Galois
Jeudi 14 Janvier 2021, 13:15 – 15:15, Amphi Galois
Jeudi 21 Janvier 2021, 13:15 – 15:15, Amphi Galois
Travaux dirigés:
Jeudi 1 Octobre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 8 Octobre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 15 Octobre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 22 Octobre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 5 Novembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 12 Novembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 19 Novembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 26 Novembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 3 Décembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 10 Décembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 17 Décembre 2020, 15:15 – 17:00, Amphi Galois
Jeudi 7 Janvier 2021, 15:15 – 17:00, Amphi Galois
Jeudi 14 Janvier 2021, 15:15 – 17:00, Amphi Galois
Jeudi 21 Janvier 2021, 15:15 – 17:00, Amphi Galois
Structures et algorithmes aléatoires (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Ana BUSIC
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Examen
Ce cours vise à donner aux étudiants les bases de probabilités qui sont utilisées dans divers domaines de l’informatique (algorithmique, algorithmes stochastiques, réseaux de communication, ...). Ce cours est divisé en deux parties : Probabilités discrètes et applications (Variables aléatoires, indépendance, conditionnement /Méthode probabiliste / Graphes aléatoires) Modèles markoviens (Chaînes de Markov, comportement asymptotique / Simulation Monte Carlo et simulation parfaite / Champs de Gibbs)
Pour chaque thème abordé, des exemples d’application dans divers domaines de l’informatique seront présentés.
Le cours présente les concepts fondamentaux des systèmes d’exploitation, leur utilisation et leur mise en œuvre dans le système Unix. La première partie étudie le cas d’Unix : organisation de la mémoire, systèmes de fichiers, gestion des processus lourds et léger (“threads”), signaux, communication entre processus, interruption, ordonnancement préemptif, pipes, sockets. La seconde partie étudie les problèmes classiques : inter blocage et famine entre processus, courses critiques, prise en compte des temps de calcul, etc. Le cours aborde la modélisation de ces questions et comment les techniques de vérification formelle automatiques permettent de définir des implémentations prouvées correctes. Un projet de programmation est présenté en début du cours. Il est réalisé en groupe (typiquement en binôme) et donne lieu à une soutenance. Une feuille de TD est distribuée à chaque cours.
Systèmes numériques : de l’algorithme au circuit (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
David Naccache, Timothy BOURKE
Type de cours :
Leçons, Travaux pratiques
Mode d’évaluation :
Projet, Examen
Le cours théorique présente la composante matérielle du monde informatique. Des principes de conception et de réalisation des circuits, à diverses applications du calcul numérique haute performance : en physique, électronique, algèbre et télécommunication. Chaque application va de l’algorithme (logiciel) au circuit (matériel) : mêmes opérations, autres performances. La partie pratique du cours est un projet, à réaliser par groupes : chaque groupe doit entièrement concevoir un microprocesseur, et le réaliser au moyen de portes logiques élémentaires ; il faut ensuite simuler les portes en fonctionnement, et programmer le microprocesseur pour en faire une montre numérique, simulée en temps-réel.
Mardi 22 Septembre 2020, 13:15 – 15:15, E. Noether
Mardi 29 Septembre 2020, 13:15 – 15:15, E. Noether
Mardi 6 Octobre 2020, 13:15 – 15:15, E. Noether
Mardi 13 Octobre 2020, 13:15 – 15:15, E. Noether
Mardi 20 Octobre 2020, 13:15 – 15:15, E. Noether
Mardi 3 Novembre 2020, 13:15 – 15:15, E. Noether
Mardi 10 Novembre 2020, 13:15 – 15:15, E. Noether
Mardi 17 Novembre 2020, 13:15 – 15:15, E. Noether
Mardi 24 Novembre 2020, 13:15 – 15:15, E. Noether
Mardi 1 Décembre 2020, 13:15 – 15:15, E. Noether
Mardi 8 Décembre 2020, 13:15 – 15:15, E. Noether
Mardi 15 Décembre 2020, 13:15 – 15:15, E. Noether
Mardi 5 Janvier 2021, 13:15 – 15:15, E. Noether
Mardi 12 Janvier 2021, 13:15 – 15:15, E. Noether
Mardi 19 Janvier 2021, 13:15 – 15:15, E. Noether
Travaux pratiques:
Mardi 22 Septembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 29 Septembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 6 Octobre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 13 Octobre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 20 Octobre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 3 Novembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 10 Novembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 17 Novembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 24 Novembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 1 Décembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 8 Décembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 15 Décembre 2020, 15:15 – 17:00, Info 3 & 4
Mardi 5 Janvier 2021, 15:15 – 17:00, Info 3 & 4
Mardi 12 Janvier 2021, 15:15 – 17:00, Info 3 & 4
Mardi 19 Janvier 2021, 15:15 – 17:00, Info 3 & 4
Sémantique et application à la vérification de programmes (Moodle, iCal)
Semestre :
S2
ECTS :
9
Nombre d’heures :
48
Enseignants :
Xavier RIVAL, Jérôme FERET, Sylvain CONCHON
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Contrôle continu, Projet, Examen
Dans ce cours, nous étudierons les techniques permettant de raisonner sur les programmes, afin de vérifier des propriétés de correction. Nous nous intéresserons tout d’abord aux fondements de la sémantique des langages de programmations, et à la notion de preuve de programmes à l’aide de triplets "à la Hoare". Ensuite, nous formaliserons les différents types de propriétés intéressantes (sûreté, vivacité, sécurité). Enfin, nous aborderons plusieurs approches permettant de vérifier des programmes de manière automatique (analyse statique par interprétation abstraite, vérification de modèles de systèmes finis, résolution modulo théorie) : l’inférence des étapes de la preuve est alors confiée à un autre programme informatique.
Ce cours présente la théorie de l’information et du codage dans un cadre discret. On s’intéresse à la quantité d’information contenue dans un message et aux moyens de transmettre ce message à travers un canal bruité. On s’intéresse donc à la fois aux méthodes de compression des données et aux méthodes de détection et de correction d’erreurs. I - Compression des données : taux de compression et entropie ; algorithme de Huffman, ZivLempel et optimalité II - Canal de transmission : capacité d’un canal, théorème de Shannon III - Codes correcteurs d’erreurs : codes linéaires, codes cycliques, code de Hamming, codes BCH.
Apprentissage profond : faites-le vous même ! Une vue d’ensemble de l’apprentissage profond en pratique (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
27
Enseignants :
Marc LELARGE
Type de cours :
Leçons, e-learning
Mode d’évaluation :
Contrôle continu, Projet
Prérequis :
Cours Apprentissage statistique
Recent developments in neural network approaches (more known now as "deep learning") have dramatically changed the landscape of several research fields such as image classification, object detection, speech recognition, machine translation, self-driving cars and many more. Due to its promise of leveraging large (sometimes even small) amounts of data in an end-to-end manner, i.e. train a model to extract features by itself and to learn from them, deep learning is increasingly appealing to other fields as well: medicine, physics, biology, simulation, time series analysis. This course is a deep dive into practical details of deep learning architectures, in which we attempt to demystify deep learning and kick start you into using it for your own projects. During this course, you will gain a better understanding of the basis of deep learning and get familiar with its applications. We will show how to set up, train, debug and visualize your own neural network. Along the way, we will be providing practical engineering tricks for training or adapting neural networks to new tasks. By the end of this class, you will have an overview on the deep learning landscape and its applications to traditional fields, but also some ideas for applying it to new ones. You should also be able to train a multi-million parameter deep neural network by yourself.
Vendredi 25 Septembre 2020, 09:00 – 10:30, P. Celan
Vendredi 2 Octobre 2020, 09:00 – 10:30, P. Celan
Vendredi 9 Octobre 2020, 09:00 – 10:30, P. Celan
Vendredi 16 Octobre 2020, 09:00 – 10:30, P. Celan
Vendredi 23 Octobre 2020, 09:00 – 10:30, P. Celan
Vendredi 6 Novembre 2020, 09:00 – 10:30, P. Celan
Vendredi 13 Novembre 2020, 09:00 – 10:30, P. Celan
Vendredi 20 Novembre 2020, 09:00 – 10:30, P. Celan
Vendredi 27 Novembre 2020, 09:00 – 10:30, P. Celan
Vendredi 4 Décembre 2020, 09:00 – 10:30, P. Celan
Vendredi 11 Décembre 2020, 09:00 – 10:30, P. Celan
Vendredi 18 Décembre 2020, 09:00 – 10:30, P. Celan
Vendredi 8 Janvier 2021, 09:00 – 10:30, P. Celan
Vendredi 15 Janvier 2021, 09:00 – 10:30, P. Celan
Vendredi 22 Janvier 2021, 09:00 – 10:30, P. Celan
Travaux dirigés:
Vendredi 25 Septembre 2020, 10:30 – 12:00, P. Celan
Vendredi 2 Octobre 2020, 10:30 – 12:00, P. Celan
Vendredi 9 Octobre 2020, 10:30 – 12:00, P. Celan
Vendredi 16 Octobre 2020, 10:30 – 12:00, P. Celan
Vendredi 23 Octobre 2020, 10:30 – 12:00, P. Celan
Vendredi 6 Novembre 2020, 10:30 – 12:00, P. Celan
Vendredi 13 Novembre 2020, 10:30 – 12:00, P. Celan
Vendredi 20 Novembre 2020, 10:30 – 12:00, P. Celan
Vendredi 27 Novembre 2020, 10:30 – 12:00, P. Celan
Vendredi 4 Décembre 2020, 10:30 – 12:00, P. Celan
Vendredi 11 Décembre 2020, 10:30 – 12:00, P. Celan
Vendredi 18 Décembre 2020, 10:30 – 12:00, P. Celan
Vendredi 8 Janvier 2021, 10:30 – 12:00, P. Celan
Vendredi 15 Janvier 2021, 10:30 – 12:00, P. Celan
Vendredi 22 Janvier 2021, 10:30 – 12:00, P. Celan
Complexité avancée
Semestre :
S1
ECTS :
7
Nombre d’heures :
48
Enseignants :
Jean GOUBAULT-LARRECQ, Philippe Schnoebelen, Benjamin Bordais
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Examen
La théorie de la complexité va bien au-delà de celle de la NP-complétude. Le but de ce cours est d’aller regarder un certain nombre d’autres constructions fondamentales de la théorie de la complexité : complexité en espace, notions de machines alternantes, ou randomisées. On y verra quelques théorèmes fascinants : l’équivalence du temps alternant et de l’espace déterministe par exemple, ou le théorème IP=PSPACE de Shamir. NB. Ce cours a lieu à ENS Paris-Saclay.
Mercredi 23 Septembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 30 Septembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 7 Octobre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 14 Octobre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 21 Octobre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 4 Novembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 18 Novembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 25 Novembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 2 Décembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 9 Décembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 16 Décembre 2020, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 6 Janvier 2021, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 13 Janvier 2021, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Mercredi 20 Janvier 2021, 08:30 – 10:30, ENS Paris-Saclay, 2E29
Travaux dirigés:
Mercredi 23 Septembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 30 Septembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 7 Octobre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 14 Octobre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 21 Octobre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 4 Novembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 18 Novembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 25 Novembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 2 Décembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 9 Décembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 16 Décembre 2020, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 6 Janvier 2021, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 13 Janvier 2021, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Mercredi 20 Janvier 2021, 10:30 – 12:15, ENS Paris-Saclay, 2E29
Introduction à la vision artificielle (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Mathieu AUBRY, Josef SIVIC, Ivan LAPTEV
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Examen
Ce cours présente les principes et les fondations techniques de la vision artificielle, un domaine scientifique dont le but est de doter les ordinateurs de la capacité d’interpréter le contenu des images numériques (photographies et vidéos). Le cours comprend des exercices de programmation.
1. Formation des images : Modèles des appareils de prise de vue, de la lumière et de la couleur.
2. Traitement d’image local : Filtres, détection de contours, caractéristiques visuelles, texture.
3. Groupes de pixels : Méthodes de "clustering", régression, et segmentation.
4. Plusieurs images : Géométrie multi images, stéréo, analyse du mouvement.
5. Analyse de scène : Détection et reconnaissance de visages, sacs de caractéristiques visuelles pour la reconnaissance de catégories d’objets.
Ce cours s’intéresse à la syntaxe et à la sémantique des langages de programmation, à partir du lambda-calcul. On rappellera les principaux théorèmes syntaxiques du lambda-calcul : confluence, standardisation, résultats de terminaison. Puis on étudiera les modèles du lambdacalcul : pour ce faire, le langage de la théorie des catégories sera utilisé. Plus généralement, les catégories servent à interpréter bien des extensions du lambda-calcul (avec références, exceptions, etc.), ainsi qu’à comprendre et structurer des notions de concurrence (notamment la notion de bisimulation). Le cours fournit une introduction assez générale et complète au formalisme catégorique, et l’applique à la sémantique des langages de programmation. Interpréter un langage dans un modèle s’apparente à une compilation, et les modèles offrent ainsi des occasions de retour sur la syntaxe : machines abstraites pour l’exécution des programmes, preuves de propriétés de programmes. Dans le même ordre d’idées, ce sont des observations sur un modèle du lambda-calcul qui ont conduit Girard à la logique linéaire, munie de connecteurs exprimant un contrôle sur l’usage des hypothèses vues comme ressources, ou bien plus récemment Thomas Ehrhard au lambda-calcul différentiel, qui relie de manière originale substitution et... formule de Taylor.
Il est recommandé d’avoir suivi le cours Structures et Algorithmes Aléatoires
Ce cours constitue une introduction aux techniques mathématiques et algorithmiques nécessaires à la modélisation et à l’étude des réseaux. Les problématiques étudiées seront principalement celles des réseaux de communications, des réseaux sociaux et des réseaux d’énergie. L’objectif du cours est d’étudier des problématiques spécifiques aux réseaux de grande taille. En particulier, nous allons nous intéresser à l’émergence d’une coordination globale à travers des actions locales, fondées sur une vision partielle et locale du système. Nous allons étudier des problèmes suivants : partage de ressources dans un réseau, émergence d’opinion et la coordination distribuée, propagation d’informations et d’influences, distribution de contenus. Quelques exemples des applications concrètes abordées : Pourquoi l’Internet ne s’écroule pas sous la congestion ? Est-il équitable que mon voisin a un meilleur débit que moi ? Comment marchent les moteurs de recherche ? Peut-on améliorer son influence sur les réseaux sociaux ? Peut-on avoir une énergie renouvelable et fiable ? Nous allons utiliser principalement l’optimisation convexe, l’algorithmique distribuée, les algorithmes et modèles probabilistes.
Ce cours est une introduction aux problèmes et concepts en optimisation combinatoire. Le but est d’apprendre à reconnaitre, transformer et résoudre ces problèmes d’optimisation. Nous regarderons de manière plus approfondie les notions de théorie des graphes.
Plusieurs applications illustreront les techniques vues dans ce cours.
Ce cours est une introduction aux problèmes et concepts en optimisation convexe. Le but est d’apprendre à reconnaitre, transformer et résoudre ces problèmes d’optimisation. Nous regarderons de manière plus approfondie les notions de programmation linéaire et de flots vus dans le cours Algorithmique et Programmation. Une partie du cours traitera de l’analyse convexe, de la dualité et de la théorie des couplages et ses applications. L’autre moitié se porte sur les algorithmes, notamment les algorithmes de premier ordre et les méthodes de point intérieur, du simplexe et de l’ellipsoïde.
Plusieurs applications illustreront les techniques vues dans ce cours.
Jeudi 24 Septembre 2020, 13:30 – 15:00, N. Bourbaki
Jeudi 1 Octobre 2020, 13:30 – 15:00, N. Bourbaki
Jeudi 8 Octobre 2020, 13:30 – 15:00, N. Bourbaki
Jeudi 15 Octobre 2020, 13:30 – 15:00, N. Bourbaki
Jeudi 22 Octobre 2020, 13:30 – 15:00, N. Bourbaki
Jeudi 5 Novembre 2020, 13:30 – 15:00, N. Bourbaki
Travaux dirigés:
Jeudi 24 Septembre 2020, 15:00 – 16:30, N. Bourbaki
Jeudi 1 Octobre 2020, 15:00 – 16:30, N. Bourbaki
Jeudi 8 Octobre 2020, 15:00 – 16:30, N. Bourbaki
Jeudi 15 Octobre 2020, 15:00 – 16:30, N. Bourbaki
Jeudi 22 Octobre 2020, 15:00 – 16:30, N. Bourbaki
Jeudi 5 Novembre 2020, 15:00 – 16:30, N. Bourbaki
Planification de mouvement en robotique et en animation graphique (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Jean-Paul LAUMOND, Julien CARPENTIER
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Examen
La planification de mouvement s’intéresse au calcul automatique de chemins sans collision pour un système mécanique (robot mobile, bras manipulateur, personnage animé...) évoluant dans un environnement encombré d’obstacles. Les méthodes consistent à explorer l’espace des configurations du système : une configuration regroupe l’ensemble des paramètres permettant de localiser le système dans son environnement. Aux obstacles de l’environnement correspondent des domaines à éviter dans l’espace des configurations. La planification de mouvement pour le système mécanique se trouve ainsi ramenée au problème de la planification de mouvement d’un point dans une variété non simplement connexe.
Jeudi 24 Septembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 1 Octobre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 8 Octobre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 15 Octobre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 22 Octobre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 5 Novembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 12 Novembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 19 Novembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 26 Novembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 3 Décembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 10 Décembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 17 Décembre 2020, 08:30 – 10:30, N. Bourbaki
Jeudi 7 Janvier 2021, 08:30 – 10:30, N. Bourbaki
Jeudi 14 Janvier 2021, 08:30 – 10:30, N. Bourbaki
Jeudi 21 Janvier 2021, 08:30 – 10:30, N. Bourbaki
Travaux dirigés:
Jeudi 24 Septembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 1 Octobre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 8 Octobre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 15 Octobre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 22 Octobre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 5 Novembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 12 Novembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 19 Novembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 26 Novembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 3 Décembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 10 Décembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 17 Décembre 2020, 10:30 – 12:15, N. Bourbaki
Jeudi 7 Janvier 2021, 10:30 – 12:15, N. Bourbaki
Jeudi 14 Janvier 2021, 10:30 – 12:15, N. Bourbaki
Jeudi 21 Janvier 2021, 10:30 – 12:15, N. Bourbaki
Programmation parallèle et réactive (Moodle, iCal)
Semestre :
S1
ECTS :
9
Nombre d’heures :
48
Enseignants :
Marc POUZET, Timothy BOURKE, Guillaume BAUDART
Type de cours :
Leçons, Travaux dirigés
Mode d’évaluation :
Contrôle continu, Projet
Modèles et langages pour la programmation des systèmes réactifs.
La programmation réactive touche désormais tous les domaines de l'informatique: controle en temps réel de systèmes embarqués (avions, voitures, train), interfaces graphiques, réseaux de capteurs, etc. Ce nouveau cours choisit de placer la correction et la modularité comme objectifs prioritaires.
L’objectif de ce cours est l’étude et la mise en oeuvre des principes et modèles fondamentaux utilisés pour concevoir et réaliser les systèmes réactifs: les différents modèles de composition et de temps, le parallélisme déterministe, l’expression de modèles mathématiques dans des langages de haut niveau (modèle synchrone, modèle flot-de-données, modèle hybride), la spécification de propriétés temporelles (logique temporelle, observateurs), leur vérification formelle (model checking), la compilation de langages de haut niveau vers une cible séquentielle et parallèle dont on peut montrer la correction vis-à-vis du modèle.
Le cours sera illustré à l'aide d'exemples écrits dans les langages ReactiveML (http://rml.lri.fr), Lustre (http://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/reactive-toolbox/) et Zelus (https://zelus.di.ens.fr) et les outils de vérification formelle tels que Kind2 (https://github.com/tinelli/kind2) et Cubicle (http://cubicle.lri.fr).
Le cours comporte un aspect fortement pratique dans les TD/TPs pour mettre en oeuvre des points du cours. Un projet de programmation ambitieux sera proposé (par ex., la programmation d'un drone, d'un arduino ou l'écriture d'un compilateur d'un langage dédié).
Modalités de contrôle des connaissances : Projet
Format du cours : cours présentiel, hybride si nécessaire.
Les équipes de recherches du DI ENS proposent aux normaliens de réaliser un projet de recherche encadré en leur sein, sur une de leurs thématiques de recherche. Les sujets sont proposés par les équipes ou sollicités par les étudiants et sont réalisés sous la responsabilité de l’un des chercheurs de l’équipe, permanent ou non permanent. Les étudiants travaillent pendant l’ensemble du premier semestre de M1 sur le sujet, en parallèle des autres enseignements suivis. Les étudiants sont invités à participer à la vie de l’équipe (en particulier séminaires) pendant cette période, dans la limite de ce qui est compatible avec leur emploi du temps. Des réunions régulières (au minimum toutes les 2 semaines) de suivi de l’avancement sont mises en place. Le projet de recherche est évalué sur la base d’une soutenance, réalisée en présence de l’encadrant et d’un autre membre du département informatique, extérieur à l’équipe.