diplôme de l'École normale supérieure
spécialité informatique
Nota bene
Vendredi 31 mai : fin des cours et des examens de L3 d'informatiqueVendredi 6 septembre et lundi 9 septembre 2013 : soutenances stages L3 et exposés info-maths & maths info. Rapports de stage et mémoires des exposés à rendre fin août.
Jeudi 12 septembre et vendredi 13 septembre 2013 : soutenances des stages de M1.
Mercredi 18 septembre 2013 : Commission des études d'informatique (résultats L3 et M1) ?
************************************************Plan de l'ENS pour trouver les salles de cours
Emploi du temps Master MPRI 2012-2013
--------------------------------------
Cursus de l'année universitaire 2012-2013
Plaquette d'enseignement 2012-2013 en français
Plaquette d'enseignement 2012-2013 en anglais (Brochure In English)
- Première année : licence(L3)
-- Filières info-maths et maths-info de 1ère année PROVISOIRE
- Troisième année : master(M2)
Enseignements d'informatique du diplôme de l'ENS (hors filière informatique)
***********************************************
Cours de l'année universitaire 2013-2014 provisoire
Emploi du temps 2013-2014 du 1er semestre de la 1ère année (L3) provisoire
Emploi du temps 2013-2014 du 2ème semestre de la 1ere année (L3) provisoire
Emploi du temps
2013-2014 du 1er semestre de la 2ème année (M1) provisoire
Conditions et procédure d'admission
Inscriptions, tutorat, programmes d'études et examens
Organisation de la formation pédagogique
Suite à la mise en place du système universitaire européen LMD (Licence, Master, Doctorat), l'École normale supérieure a créé en 2005 un diplôme d'établissement intitulé diplôme de l'École normale supérieure, qui complète le cursus universitaire. Sa finalité est d'offrir une variété de parcours conjuguant une formation d'excellence dans une discipline principale avec une ouverture à la fois souple et ambitieuse dans d'autres disciplines.
Le diplôme est ouvert à des étudiants issus des classes préparatoires aux grandes écoles et des universités françaises ou étrangères désireux de recevoir la même formation que les élèves normaliens (fonctionnaires stagiaires ou boursiers de la section internationale). Les étudiants font l'objet d'une procédure de sélection spécifique (cf. Conditions d'admission).
Le diplôme de l'ENS est délivré au terme d'une scolarité d'une durée de trois ans (en règle générale1) pendant laquelle chaque étudiant fait valider :
un cursus universitaire de haut niveau sanctionné par l'obtention d'un master dans une discipline qui constitue la spécialité principale du diplôme. En règle générale1, ce cursus comprend une troisième année de licence (L3) et les deux années du master (M1 et M2), chacune des trois années correspondant à la validation d'un total de 60 unités ECTS (European Credit Transfer System) ;
des formations supplémentaires validées par 36 unités ECTS au minimum sur l'ensemble des trois années. Celles-ci peuvent (i) relever de la spécialité principale (enseignements suivis dans la discipline du master), (ii) constituer la spécialité secondaire du diplôme (enseignements coordonnés dans une autre discipline) ou (iii) exploiter toute la diversité de l'offre pédagogique proposée par l'ENS aux étudiants.
Dans le cadre du diplôme de l'ENS, les études d'informatique prennent deux formes distinctes selon que cette discipline constitue ou non la spécialité principale de l'étudiant :
Élèves et étudiants informaticiens : le Département d'informatique est la structure pédagogique et scientifique à laquelle sont rattachés tous ceux qui envisagent l'informatique comme discipline principale. Les étudiants inscrits auprès du Département d'informatique suivent la filière informatique du diplôme de l'ENS, qui constitue une formation spécifique de haut niveau comprenant notamment une troisième année de licence (L3) et les deux années d'un master (M1 et M2).
Élèves et étudiants relevant d'un autre département scientifique : le Département d'informatique propose également une offre de formation aux étudiants inscrits dans d'autres disciplines auprès des différents départements de l'ENS. Il peut s'agir, soit d'un ensemble cohérent d'enseignements en informatique ayant vocation à constituer la spécialité secondaire de l'étudiant, soit de formations ponctuelles que l'étudiant fait valider pour son diplôme en accord avec son tuteur et les responsables de ces enseignements.
Des passerelles existent entre les différents départements de l'ENS. Sous réserve de l'accord des directions des études concernées, une réorientation peut être envisagée en cours de scolarité pour les élèves de la filière informatique, soit vers d'autres disciplines au sein du diplôme de l'ENS, soit vers d'autres formations universitaires en dehors de ce cadre.
Directeur des études depuis le 1er octobre 2012 :
Marc Pouzet
Directeur des études-adjoint depuis le 1er octobre 2012 :
Damien Vergnaud
Directeur des enseignements :
Jean Vuillemin
Secrétariat :
Isabelle Delais
École normale supérieure
Département d'informatique
45, rue d'Ulm - 75230 Paris cedex 05
Tél : +33 (0) 1 44 32 20 45
Fax : +33 (0) 1 44 32 20 75
Mél :
diplome@(trap)di.ens.fr ou isabelle.delais@(trap)ens.fr
Bureau : B10
aile Rataud
Les étudiants inscrits dans la filière informatique du diplôme sont rattachés statutairement au Département d'informatique de l'ENS. Celui-ci leur propose, au titre de leur spécialité principale, un parcours de type universitaire aux effectifs réduits (une vingtaine d'étudiants par promotion, en incluant les élèves normaliens et les boursiers de la section internationale) dans lequel est dispensée une formation originale d'informaticiens possédant une bonne connaissance générale des mathématiques pures et appliquées dans des secteurs variés. Un encadrement renforcé permet un rythme plus rapide et une réflexion plus approfondie que dans d'autres formations. Les enseignements sont complétés par des stages de recherche obligatoires.
Objectifs des études en informatique à l'ENS :
l'intégration, dans un cursus d'excellence en informatique, des élèves normaliens, des boursiers de la section internationale et des étudiants retenus par le Département d'informatique pour suivre leurs études dans le cadre du diplôme de l'ENS (cf. Conditions d'admission) ;
une formation à et par la recherche, visant à assurer une professionnalisation exigeante, qui se traduit par un enseignement d'un très haut niveau scientifique. Les stages à l'étranger, ciblés et obligatoires, permettent en outre une ouverture internationale dans les domaines choisis ;
une orientation de chaque élève ou étudiant, respectueuse de la diversité des profils et des choix personnels, rendue possible par une structure aussi flexible que possible. À cette fin, chaque étudiant de la filière informatique est suivi par un tuteur, à titre individuel, tout au long de son parcours ; il est invité à suivre également quelques enseignements d'ouverture à d'autres disciplines qui personnalisent ce parcours de formation.
Tout étudiant titulaire du diplôme de l'ENS aura acquis un master recherche. Un étudiant qui a suivi la filière informatique du diplôme peut donc commencer une thèse de doctorat en mathématiques ou en informatique, qu'il achèvera en principe au terme de deux ou trois années de travail de recherche à l'issue de la scolarité. Il peut également commencer immédiatement une carrière non académique.
À moyen terme, une fois la thèse de doctorat éventuelle achevée, les débouchés possibles après 1, 2 ou 3 ans sont les suivants :
chercheur en informatique dans un grand organisme de recherche publique (CNRS, CEA, INRIA, ONERA, CNES, etc.) ;
enseignant-chercheur à l'université en France ou à l'étranger ;
chercheur en informatique dans l'industrie (France Telecom, EADS, etc.) ;
ingénieur informaticien dans l'industrie en France ou à l'étranger ;
enseignant dans les classes préparatoires aux grandes écoles, plus généralement, dans l'enseignement post-baccalauréat (IUT, CNAM, etc.).
Ayant acquis 120 unités ECTS (niveau L2) en classes préparatoires aux grandes écoles et réussi le concours d'entrée à l'ENS, les élèves normaliens désireux de suivre un cursus en informatique commencent leurs études en informatique à l'ENS en s'inscrivant en première année de scolarité (L3).
Les boursiers de la section internationale accèdent également aux études en informatique à l'ENS, soit au niveau L3, soit directement au niveau M1 selon les études effectuées au préalable dans leur université d'origine.
Tout étudiant issu, soit d'une classe préparatoire aux grandes écoles, soit d'une université française ou d'un établissement universitaire étranger, justifiant directement ou par équivalence de 120 unités ECTS (niveau L2) ou 180 unités ECTS (niveau L3) est autorisé à se porter candidat au diplôme de l'ENS pour y effectuer des études en informatique.
Pour la filière informatique comme dans les autres disciplines représentées au sein du diplôme de l'ENS, la règle générale est de recruter les étudiants au niveau de la troisième année de licence (L3). L'intégration peut toutefois s'effectuer au niveau du master (M1), notamment pour les étudiants issus des universités étrangères.
Le dossier et les modalités de candidature sont accessibles à l'URL suivante :
http://diplome.di.ens.fr/Candidature.html
N.B. Bourses et Hébergement :
Les possibilités
d'hébergement à l'ENS
pour les étudiants admis à préparer le Diplôme de l'ENS sont
extrêmement réduites. Les candidats doivent s'en
préocupper sans
attendre les résultats des jurys.
Les demandes de bourse et d'hébergement du Crous doivent être
effectuées avant le 30 avril environ chaque année.
Les étudiants de 1ere année en informatique à l'ENS seront inscrits en
L3 d'informatique à l'université de Paris 7.
Les étudiants de 2ème année en informatqiue à l'ENS seront inscrits en
M1 d'informatique à l'ENS de Paris.
A la mi-septembre, les étudiants admis à préparer le diplôme de l'ENS en informatique et les élèves qui souhaitent faire des études en informatique se présentent au secrétariat d'enseignement du département d'informatique pour procéder aux inscriptions administratives et pédagogiques et pour qu'un tuteur leur soit affecté.
Les élèves/étudiants de la filière informatique du diplôme doivent s'acquitter, pendant chacune des trois années de leur scolarité, d'une double inscription (i) au diplôme universitaire correspondant au cursus de l'année en cours et (ii) au diplôme d'établissement qu'est le diplôme de l'ENS :
| Cursus universitaire | Diplôme de l'ENS | |
| 1ère année : | inscription en L3 à l'université Paris 7 | inscription à l'ENS |
| 2e année : | inscription en M1 (M.P.R.I.) à l'ENS | inscription à l'ENS |
| 3e année : | inscription en M 2 (M.P.R.I.) à l'ENS | inscription à l'ENS |
Cursus universitaire : après leur admission à suivre les études en informatique à l'ENS, les élèves/étudiants s'inscrivent - via le secrétariat du département d'informatique - en licence (L3) à l'université Paris 7 qui leur délivre le diplôme de licence à l'issue de la première année de scolarité.
Au cours des deux années suivantes, les élèves/étudiants s'inscrivent au Master parisien de recherche en informatique (M.P.R.I.) à l'ENS qui leur délivre le diplôme de master au terme de leur scolarité. Il est également possible de s'inscrire dans un autre master (comme le master recherche spécialité "Mathématiques appliquées - mathématiques/vision/apprentissage" de l'École normale supérieure de Cachan).
Diplôme
de l'ENS : l'élève/étudiant s'inscrit au "diplôme de
l'École
normale supérieure" au bureau des inscriptions du service de la
scolarité. Le secrétariat du département d'informatique fournit la
liste des documents nécessaires.
Un tuteur, enseignant ou chercheur au département d'informatique,
est affecté à chaque élève/étudiant. Le rôle du tuteur est d'aider
l'élève/étudiant dans l'organisation de ses études, de le conseiller
pour ses stages, ses recherches et son orientation.
Il est recommandé de rencontrer régulièrement son tuteur et pas
seulement au moment des programmes d'études et des bilans.
L'élève/étudiant peut demander à changer de tuteur.
Chaque année, l'élève/étudiant s'engage sur un programme d'études (ou
contrat d'études) annuel qui est déposé auprès de la
direction des études de l'ENS après signature du tuteur et du directeur
des études du Département d'informatique. Ce document contient les
enseignements obligatoires du cursus choisi mais aussi les cours et les
activités qui pourront être comptabilisés pour le diplôme, les stages,
etc.
Le département d'informatique peut aussi demander des programmes
d'études complémentaires.
La présence en cours, TD, TP projet
est fortement recommandée.
Tout étudiant dont la note finale est inférieure à la moyenne (10/20)
peut demander à passer un examen de rattrapage, à condition d'avoir
suivi les cours/TD/projets et passé tous les examens (sauf cas de force
majeure).
La note finale suite à l'examen de rattrapage sera de 10/20 maximum.
NB. Cas d'un étudiant qui n’a pu passer un examen et présente un
certificat médical pour être autorisé à passer la session 2 : sa note
finale peut être supérieure à 10/20.
Les études en informatique dispensées dans le cadre du diplôme de l'ENS sont organisées sur trois années, correspondant aux années universitaires L3 (Licence), M1 et M2 (Master). L'obtention des diplômes universitaires requiert la validation de 60 ECTS par année. Au terme de ses trois années d'études, l'étudiant qui a obtenu son master et fait valider, par ailleurs, des enseignements supplémentaires à hauteur de 36 unités ECTS reçoit le diplôme de l'École normale supérieure, à condition d'avoir effectué les inscriptions requises. On rappelle qu'aucun enseignement validé dans le cadre d'un diplôme universitaire national (licence ou master) ne peut l'être une seconde fois dans le cadre des enseignements supplémentaires du diplôme de l'ENS.
Les enseignements supplémentaires du diplôme de l'ENS se répartissent en trois catégories :
un module de langue (3 ECTS) à valider en première, deuxième ou troisième année. Il existe à l'ENS une structure, intitulée ECLA (Espace des cultures et langues d'ailleurs), spécialisée dans l'enseignement des langues vivantes, qui propose un grand choix de modules de langues et en particulier, des modules d'anglais pour scientifiques qui sont vivement recommandés aux élèves/étudiants d'informatique. L'élève/étudiant peut être dispensé de ce module de langue s'il a effectué un stage de 6 mois ou plus dans un pays non francophone pendant la durée du diplôme ;
12 ECTS de modules obligatoires de la filière informatique. Ces modules sont à choisir parmi les modules de niveau M1 ou M2 non retenus pour valider le M.P.R.I, ou parmi les modules de mathématiques de niveau M1 ou plus ;
des modules laissés au libre choix de l'étudiant, dont 12 ECTS au minimum hors informatique. Ces modules sont choisis dans l'offre de formation d'autres départements de l'ENS ou dans d'autres formations universitaires, avec l'accord de leurs responsables pédagogiques, sous le contrôle du tuteur et du directeur des études du Département d'informatique.
Il est très fortement recommandé aux étudiants de valider chaque année 12 ECTS d'enseignements supplémentaires.
La validation de la licence (L3) d'informatique, dans le cadre du partenariat avec l'université Paris 7, nécessite l'obtention de 60 ECTS, répartis en 48 ECTS de cours de niveau L3 (premier et deuxième semestre) et M1 (deuxième semestre) et 12 ECTS de stage. Ces enseignements sont organisés et donnés à l'ENS. Ils sont régulièrement renouvelés pour suivre de près l'actualité scientifique. La diversité des sujets traités et celle de l'origine des enseignants permettent une grande variété de débouchés potentiels.
Les élèves/étudiants valident également des enseignements supplémentaires pour le diplôme de l'ENS (au moins 12 ECTS recommandés par année). Des enseignements supplémentaires en informatique de niveau M1 sont proposés au deuxième semestre.
En fin de première année, les élèves/étudiants effectuent un stage en laboratoire (universitaire et industriel) avec une priorité donnée à la province.
À la fin de la première année, la commission des études, en partenariat avec l'université Paris 7, statue sur l'obtention par l'élève/étudiant du diplôme de licence et sur son admission en seconde année du diplôme de l'ENS.
A partir de septembre 2012, des filières info-maths et
maths-info sont proposées en première
année. Les élèves qui la choisiront seront
inscrits en L3 de
Mathématiques OU en L3 d'Informatique et valideront
une seule licence.
La
deuxième année est constituée, au premier semestre,
de cours de niveau M2 pour 30 ECTS, et au second semestre d'un stage de
recherche de 5 mois environ, en laboratoire à l'étranger, comptant 30
ECTS.
En parallèle sont proposés des mini-cours de niveau recherche assurés par des spécialistes (le plus souvent par des professeurs étrangers invités à l'ENS). Les élèves/étudiants valident également des enseignements supplémentaires pour le diplôme de l'ENS (au moins 12 ECTS recommandés par année).
La commission des études se réunit à nouveau en fin de seconde année pour statuer sur la validation par l'élève/étudiant de la première année du master (M1) et sur son admission en troisième année du diplôme de l'ENS.
Durant cette troisième année, l'élève/étudiant achève son master en suivant au premier semestre des cours de niveau M2 pour 30 ECTS, et effectue au second semestre un stage de recherche de 5 mois minimum, en France ou à l'étranger, validant 30 ECTS. Les élèves/étudiants valident également des enseignements supplémentaires pour le diplôme de l'ENS (au moins 12 ECTS recommandés par année).
L'année se termine le plus fréquemment par le choix d'un directeur et d'un sujet de thèse de doctorat. À ce niveau, les élèves/étudiants s'intègrent progressivement dans un laboratoire de recherche. Afin de faciliter l'insertion dans le milieu de la recherche, il est souvent judicieux de passer tout ou partie de cette année dans un laboratoire de province ou d'un autre pays européen.
La commission des études du Master statue en fin d'année sur l'obtention du diplôme de master par l'élève/'étudiant qui est alors proposé pour l'obtention du diplôme à la direction des études de l'ENS.
Si l'étudiant s'est acquitté, en outre, de la
validation
d'enseignements supplémentaires à hauteur de 36 unités ECTS sur
l'ensemble de sa scolarité, l'ENS lui délivre le "diplôme de l'École
normale supérieure" avec une spécialité principale qui correspond à
celle de son master et, le cas échéant, une spécialité secondaire dans
une autre discipline (cf. Présentation
du diplôme de l'ENS).
Outre
les stages obligatoires de L3, M1 et M2, il est possible à partir de la
2ème année de scolarité de la filière informatique de faire une année
de stage à l'étranger.
N. B.
Il est nécessaire de préparer les stages plusieurs mois à l'avance pour
obtenir l'accord des directeurs des études, effectuer les démarches
d'obtention de visa, obtenir la signature des conventions de stage, des
ordres de mission et parfois obtenir une année de césure (étudiants) ou
un congé sans traitement (élèves).
Pour chaque cours dans la liste ci-dessous, sont indiqués le nom du professeur responsable et le nombre d'ECTS (European Credit Transfer System).
NB. Cliquez sur le titre pour obtenir une description plus détaillée du cours.
Les 4 cours suivants sont obligatoires :
- Algorithmique
et programmation
Claire Mathieu, Jacques Stern.
(9 ECTS)
- Langages de programmation et compilation
Jean-Christophe Filliâtre, Louis Mandel
(9 ECTS)
- Langages formels, calculabilité et complexité
Eugène Asarin, Anne Bouillard
(9 ECTS)
- Système digital: de l'algorithme au circuit
Jean Vuillemin, Timothy Bourke
(9 ECTS)
L'
élève/étudiant
doit suivre
et valider au moins 2 cours
de mathématiques ou maths-info suivants au cours des 2
premières années du cursus d'informatique:
- Algèbre 1 (1er semestre)
Olivier Debarre
(12 ECTS)
- Intégration et probabilités de base (1er semestre)
Thomas Duquesne
(12 ECTS)
- Logique (1er semestre)
Zoé Chatzidakis
(12 ECTS)
- Structures et algorithmes aleatoires (1er semestre)
Anne Bouillard
(9 ECTS)
- Analyse complexe et harmonique (2e semestre)
Olivier Biquard
(12 ECTS)
- Traitement du signal (2e semestre)
Stéphane
Mallat
(12 ECTS)
Cours spécifique aux filières maths-info et info-maths
Le cours d'informatique suivant est obligatoire :
Marc Pouzet, Louis Mandel
(9 ECTS)
L'élève/étudiant
doit choisir et valider au moins 2 cours
d'informatique, parmi les cours suivants.
L'un
de ces cours peut-être
remplacé par un cours de mathématiques ou maths-info.
Serge Abiteboul
(6 ECTS)
(Ce
cours a lieu à l'ENS de Cachan)
- L'Informatique scientifique par la pratique
David Naccache
(6
ECTS)
Jacques Stern, David Naccache, Damien Vergnaud
(6 ECTS)
Jean Goubault-Larrecq
(6 ECTS)
(Ce cours a lieu à l'ENS de Cachan)
- Sémantique et Application à la Vérification de programmes
Xavier Rival
(6
ECTS)
- Théorie de l'information et codage
Marc Lelarge
(6 ECTS)
L'étudiant doit effectuer un stage d'initiation à la recherche en informatique de 2 mois environ dans un laboratoire de recherche public ou privé, en France (de préférence en province) ou en Europe, entre début juin et fin août 2013.
Le stage (qui comprend aussi la rédaction d'un rapport et une soutenance) comptera 12 ECTS pour la licence (L3).
Les stages de L3 des dernières années : http://www.di.ens.fr/~vergnaud/stages.html
En 2012-2013, Anne Bouillard sera chargée des stages de L3.
Propositions de stages de L3 pour 2012-2013 : http://www.di.ens.fr/~bouillar/Stages2013/
Les élèves normaliens ou de la sélection internationale qui choisissent une de ces filières seront inscrits et valideront une seule licence : L3 d'informatique ou L3 de mathématiques
Ces filières sont organisées conjointement par la FIMFA et le Département d'informatique de l'ENS.
Elles permettent :
- aux élèves motivés de poursuivre une double formation en informatique et en mathématiques.
- aux élèves encore indécis de repousser d'une année le choix entre ces deux disciplines.
- Cours d'informatique :
-- 3 cours d'informatique parmi les 4 cours suivants au 1er semestre :
-- 2 cours d'informatique au 2ème semestre
-- + le cours spécifique à ces fillières : Traitement du Signal au 2e semestre
- Cours de mathématiques :
-- 3 cours au choix parmi les 5 ci-dessous :
Ce travail personnel bi-disciplinaire, encadré par un enseignant de chaque discipline, consiste en :
- un travail bibliographique comparable à l'exposé de première année du cursus Mathématiques au cours du second semestre, sous la houlette d'un enseignant de mathématiques et/ou d'un enseignant d'informatique, sur un sujet relié à celui du stage,
- un stage niveau L3 dans un laboratoire d'informatique,
- la rédaction d'un mémoire en deux parties et une soutenance en présence d'enseignants des deux disciplines.
Les élèves qui voudront poursuivre en mathématiques en deuxième année devront obtenir l'accord du département de mathématiques et rattraper les cours fondamentaux non validés en première année.- Cours d'informatique :
-- 4 cours d'informatique au 1er semestre :
-- 2 cours d'informatique au 2ème semestre
-- + le cours spécifique à ces fillières : Apprentissage au 2ème semestre
- Cours de mathématiques :
-- 2 cours au choix parmi les 5 ci-dessous :
Ce travail personnel bi-disciplinaire, encadré par un enseignant de chaque discipline, consiste en :
- un travail bibliographique comparable à l'exposé de première année du cursus Mathématiques au cours du second semestre, sous la houlette d'un enseignant de mathématiques et/ou d'un enseignant d'informatique, sur un sujet relié à celui du stage,
- un stage niveau L3 dans un laboratoire d'informatique,
- la rédaction d'un mémoire en deux parties et une soutenance en présence d'enseignants des deux disciplines.
Les élèves qui voudront poursuivre en mathématiques en deuxième année devront obtenir l'accord du département de mathématiques et rattraper les cours fondamentaux non validés en première année.- Cours de mathématiques :
-- 3 cours au choix parmi les 5 ci-dessous :
- Cours d'informatique :
-- 2 cours d'informatique au 1er semestre :
-- + 1 cours d'informatique au 2ème semestre
- Stage (12 ECTS) et Exposé du cursus maths-informatique (12 ECTS)
Ce travail personnel bi-disciplinaire, encadré par un enseignant de chaque discipline, consiste en :
- un travail bibliographique comparable à l'exposé de première année du cursus Mathématiques au cours du second semestre, sous la houlette d'un enseignant de mathématiques et/ou d'un enseignant d'informatique, sur un sujet relié à celui du stage,
- un stage niveau L3 dans un laboratoire d'informatique,
- la rédaction d'un mémoire en deux parties et une soutenance en présence d'enseignants des deux disciplines.
Les élèves qui voudront poursuivre en informatique en deuxième année devront obtenir l'accord du département d'informatique et rattraper certains cours obligatoires de licence ainsi que Logique si ce cours n'a pas été validé en première année.
L'élève/étudiant
en informatique
devra avoir suivi et validé au moins 2 cours de
mathématiques ou maths-info à la fin du M1.
Il doit donc choisir et suivre ces cours au 1er semestre de M1 sauf
s'il les a déjà suivis et validés en 1re
année.
Olivier Debarre
(Cours Maths : 12 ECTS)
- Intégration et probabilités de base
Thomas Duquesne
Zoé Chatzidakis
(Cours Maths : 12 ECTS)- Modélisation et à la simulation numérique
Erwan Faou - David Lannes
(Cours Maths : 12 ECTS)Gérard Biau
(Cours Maths : 12 ECTS)- Structures et algorithmes aleatoires
Anne Bouillard
(Cours Info : 9 ECTS)
- Topologie et calcul différentiel
Patrick Bernard
(Cours Maths : 12 ECTS)Dans
le cadre de son diplôme de master M1, l'élève/étudiant doit valider 30
ECTS de cours au 1er semestre.
En plus des cours de
mathématiques, l'élève/étudiant doit choisir des cours
d'informatique dans la liste suivante ou dans les
cours du MPRI (Master
Parisien de Recherche en Informatique).
Il est également
possible, avec l'accord du tuteur et du
directeur des études, de choisir les cours dans d'autres masters comme
par exemple le master MVA
(Mathématiques, Vision, Apprentissage) de
l'ENS de Cachan.
Les élèves/étudiants sont fortement encouragés à choisir un ou deux cours supplémentaires dans cette liste, dans le cadre des enseignements à valider pour le diplôme de l'ENS.
- Algoritmique des réseaux sociaux
Marc Lelarge
(Cours Info : 6 ECTS)
- Aspects probabilistes de l'informatique
Serge Haddad
(Cours Info MPRI 1-24 : 6 ECTS) Ce cours a lieu à Chevaleret.
Paul André Melliès
(Cours Info
MPRI 1-20
: 6 ECTS)
Jean Goubault-Larrecq
(Cours Info
MPRI 1-17 : 6 ECTS)
- Introduction à la vision artificielle
Jean Ponce
(Cours Info : 6 ECTS)
Jean-Paul Laumond
(Cours Info MPRI 1-19: 6 ECTS)
Joannes Vermorel
(Cours Info : 6 ECTS)
*************************************************************************
NB. Les 2 cours suivants du
Master 2 MVA ont lieu à l'ENS Ulm entre fin septembre et fin décembre :
- Méthodes mathématiques pour les neurosciences
Olivier Faugeras
(Cours Info
& MVA : 4 ECTS & Cours UMPC Maths et Applications)
- Reconnaissance d'objets et vision artificielle
Ivan Laptev, Jean Ponce, Josef Sivic, Cordelia Schmid
(Cours Info et MVA : 4 ECTS)
L'étudiant en M1 d'informatique à l'ENS doit effectuer un stage de recherche de 5 mois environ à l'étranger entre la mi-mars et la fin août pour valider 30 ECTS dans le cadre de son diplôme de M1.
L'étudiant est aidé dans sa recherche de stage
par son tuteur, le responsable des stages de M1 et le directeur des
études d'informatique.
Une réunion de préparation des stages longs de M1 a lieu chaque année
courant octobre pour que tous les stages soient trouvés fin décembre.
Le sujet, le descriptif et le lieu du stage de chaque étudiant doit
être approuvé par le directeur des études d'informatique.
Pour valider ce stage, l’étudiant doit remettre un rapport de stage
vers la fin août et effectuer une soutenance d’environ 30 minutes début
septembre.
Si le stage long à l'étranger n'est pas possible (raisons de santé, etc.), l'étudiant devra suivre un cours de langue vivante étrangère de 3 ECTS à l'ENS pour respecter l'article 6 de l'arrêté du 25 avril 2002 relatif au diplôme national de master qui stipule que "Le diplôme de master ne peut être délivré qu'après validation de l'aptitude à maîtriser au moins une langue vivante étrangère. Les parcours types de formation comprennent des enseignements permettant aux étudiants d'acquérir cette aptitude. " Dans ce cas,le stage long compte 27 ECTS.
Ce stage long de M1 peut être effectué en France pour les étudiants étrangers non francophones et comptera 30 ECTS.
L’étudiant
doit valider 30 ECTS de cours de M2
MPRI (Master
Parisien de Recherche en Informatique) de niveau M2. Il
est
possible de valider certains
cours d’une autre formation universitaire, avec l’accord de son tuteur
et
l’accord de Damien Vergnaud qui représente l’ENS de Paris auprès de la
commission des études du MPRI.
Voir
les règles de choix de cours sur le site du MPRI.
A la place du M2 du MPRI,
l’élève/étudiant
peut préparer et
valider le M2
du Master MVA (Mathématiques,
Vision,
Apprentissage) de l’ENS Cachan avec l’accord de son
tuteur et l’accord
du
directeur des études du département d’informatique.
L' élève/étudiant doit également valider des enseignements supplémentaires pour valider le diplôme de l'ENS, s'il n'a pas déjà acquis les 36 ECTS requis.
Le 2e semestre du M2 du MPRI (Master Parisien de Recherche en
Informatique) est consacré à un stage de recherche de 5 mois environ
dans un laboratoire
français ou étranger. Le sujet, le descriptif et le lieu du stage de
chaque étudiant doit être validé par le correspondant MPRI de
l’établissement de rattachement de l’étudiant.
(Damien Vergnaud pour l'ENS Paris). Pour ce stage qui comptera 30 ECTS,
l’étudiant doit remettre un rapport de stage d’une vingtaine de page
vers la fin août et effectuer une soutenance d’environ 30 minutes début
septembre devant un jury composé des responsables et/ou d’enseignants
du MPRI.
Voir
les règles de stage sur le site du MPRI.
Pourle M2 du MVA, le stage obligatoire est d’environ 4 mois et a lieu entre avril et septembre.
Un élève/étudiant inscrit dans une autre filière du diplôme que la filière informatique (et donc rattaché à un autre département de l'ENS que le Département d'informatique) peut choisir de valider un ensemble cohérent d'enseignements d'informatique pouvant constituer la spécialité secondaire de son diplôme. Cet ensemble cohérent d'enseignements doit représenter un total d'au moins 24 ECTS.
Les étudiants possédant déjà des notions de base en informatique peuvent suivre des cours de L3 au premier semestre.
Le Département d'Informatique propose également un cours d'initiation à la programmation au deuxième semestre, ouvert à tous :
- Initiation à la programmation pour pour non-informaticiens
Damien Vergnaud
(3 ECTS)
(Cours enseigné au 2ème semestre)
Ce cours est ouvert aux élèves/étudiants 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 non informaticien qui aura un jour à programmer rapidement une simulation, mais aussi à toute personne souhaitant comprendre comment sont faits les programmes informatiques.

- Algorithmique et programmation
- Algorithmes pour les graphes plongés (Cours MPRI 2-38-1)
- Algoritmique des réseaux sociaux
- Apprentissage statistique (non enseigné en 2013-2014)
- Aspects probabilistes de l'Informatique (Cours MPRI 1-24)
- Bases de données (ENS Cachan)
- Catégories Lambda-Calculs (Cours MPRI 1-20)
- Complexité Avancée (Cours MPRI 1-17)
- Fondements sur la modélisation des réseaux (Cours MPRI 2-17-1)
- L'Informatique Scientifique par la pratique (Cours MPRI 1-13)
- Initiation à la cryptologie (Cours MPRI 1-13)
- Interprétation Abstraite : Application à la Vérification et à l'Analyse Statique (Cours MPRI 2-6)
- Initiation à la programmation pour pour non-informaticiens
- Introduction à la vision artificielle
- Langages de programmation et compilation
- Langages formels, calculabilité et complexité
- Logique et Informatique (ENS Cachan)
- Méthodes mathématiques pour les neurosciences (Cours MVA)
- Planification du mouvement en robotique et en animation graphique : du continu au combinatoire via la commandabilité des systèmes (Cours MPRI 1-19)
- Protocoles cryptographiques : preuves formelles et calculatoires (Cours MPRI 2-30)
- Reconnaissance d'objets et vision artificielle (Cours MVA)
- Sémantique, langages et algorithmes pour la programmation multicore (Cours MPRI 2-37-1)
- Sémantique et application à la vérification de programmes
- Structures et Algorithmes Aléatoires
- Système digital: de l'algorithme au circuit
- Systèmes synchrones (Cours MPRI 2-23-1)
- Techniques en Cryptographie et Cryptanalyse (Cours MPRI 2-12-1)
- Théorie de l'information et codage
(Cours DMA)
(Cours de Maths : 12 ECTS)
Voir la page de ce cours sur le site du DMA : http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
(maj ce descriptif : juin 2012)(Cours DMA)
(Cours de Maths : 12 ECTS)
Voir la page de ce cours sur le site du DMA :
http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
(maj ce descriptif : juin 2013)
Algorithmes pour les graphes plongés
(Eric Colin de Verdière, Claire Mathieu)
Le thème du cours est l'étude des algorithmes exacts et approchés pour les graphes plongés, c'est-à-dire les graphes planaires et les graphes dessinés sans croisements sur une surface. Il se situe à la frontière de l'algorithmique "classique" des graphes et de de la géométrie algorithmique, et combine plusieurs directions de recherche actuelle qui partagent des techniques communes :
(Cours MPRI : 3 ECTS)
Pour plus de détails sur ce cours (Cours MPRI 2-38-1), merci de consulter sa page sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-38-1
(maj ce descriptif : septembre 2012)
Algorithmique
et programmation 
(Claire Mathieu, Jacques Stern, Zhentao LI et Damien Vergnaud)
Le cours présente les bases sur les structures de données et les principes de conception des algorithmes ainsi qu'un certain nombre de développements plus avancés. On attend des étudiants un minimum de connaissances algorithmiques. Chaque séance est organisée en deux parties, la première consacrée aux connaissances de base et la seconde à un résultat plus avancé (ou exceptionnellement plusieurs).
Algorithmes : conception et évaluation
cours de base : terminaison, complexité, stratégies de programmation,
cours avancé : bin packing, allocation dynamique de mémoire.
Première partie : algorithmique des structures de données
Tri et hachage
cours de base : exemples de tris, hachage, collisions, hachage ouvert,
cours avancé : réseau de tri.
Recherche de motifs
cours de base : Rabin-Karp, Knuth-Morris-Pratt,
cours avancé : algorithmes de bio-informatique.
Arbres
cours de base : arbres de recherche, exemples,
cours avancé : tas fusionnables (tas binomiaux, tas de Fibonacci).
Graphes
cours de base : Fermeture transitive, composantes connexes, plus courts chemins,
cours avancé : valeurs propres et graphe d'expansion.
Flots
cours de base : Ford-Fulkerson, Edmonds-Karp,
cours avancé : Flots unitaires, Dinic, couplages maximaux
Réductions
cours de base : introduction à P, NP, NP-complétude,
cours avancé : preuves de NP-complétude par réductions.
Deuxième partie : algorithmique numérique et symbolique
Entiers
cours de base : multiplication, exponentiation,
cours avancé : tests de primalité.
Transformation de Fourier rapide
cours de base : FFT, complexité,
cours avancé : multiplication rapide.
Programmation linéaire
cours de base : simplexe, complexité,
cours avancé : méthode de l'ellipsoide.
Algèbre linéaire et géométrie des nombres
cours de base : décomposition LUP, moindres carrés,
cours avancé : réseaux à coordonnées entières; algorithme LLL.
Factorisation des Polynômes
cours de base : polynômes à coefficients entiers, pgcd, polynômes binaires,
cours avancé : algorithme de Berlekamp, Cantor-Zassenhaus.
Systèmes d'équations polynomiales
cours de base : algorithmes de base standard,
cours avancé : complexité exp-space.
Page web du cours 2012-2013 : http://www.di.ens.fr/algoL3/
Cours/TD le lundi de 15h30 à 18h30 et le mercredi de 16h30 à 18h30 à partir du lundi 23 septembre 2013.
(Cours Info : 9 ECTS à compter de 2013-2014 6 ECTS auparavant)
Examens les lundis 4 novembre 2013 et 20 janvier 2014 de 15h30 à 18h30. Projet de programmation avec soutenance en décembre.
(maj ce descriptif : juin 2013)
Algorithmique
des réseaux sociaux
(Marc Lelarge)
Ce cours constitue une introduction aux techniques mathématiques et
algorithmiques nécessaires à la modélisation et à l'étude des réseaux
sociaux.
Dans une première partie, nous présenterons les principaux modèles de
graphes aléatoires et leurs propriétés.
Dans une seconde partie, nous étudierons les dynamiques de diffusions
et d'influence dans ces réseaux ainsi que leurs implications
algorithmiques.
Dans une dernière partie, nous verrons les bases mathématiques des
algorithmes d'inférence en lien avec les deux premières parties.
Voici quelques exemples qui seront traités en cours:
pagerank, algorithmes de streaming, détections de communautés,
algorithmes spectraux, algorithmes de 'crowd-sourcing', algorithmes de
recommandations de contenus.
validation: examens à la maison.
(maj ce descriptif : juin 2013)
(Cours Info : 6 ECTS)
Nouveau cours de M1 en 2013-2014
Cours du 1er semestre : cours et TD le lundi après-midi et le mardi matin.
Analyse complexe et harmonique
(Cours DMA)
Voir la page de ce cours sur le site du DMA: http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
(maj ce descriptif : juin 2012)(Francis Bach)
Cours
spécifique aux filières de L3 Info-Maths et Maths-Info en 2011-2012 et
2012-2013.
Ce cours portera sur l'analyse de données de grande dimension, signaux, images, bioinformatique, données économiques, les domaines d'applications dans lesquels d'importants volumes de données sont collectées et demandent à être analysées, classées, corrélées sont nombreux.
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 et les inégalités de déviations non asymptotiques. Les séances de TDs (dont plus de la moitié seront réalisées sur machines) donneront lieu à des implantations simples des algorithmes vus en cours et à une application à différents domaines comme la bioinformatique ou la vision.
Page de ce cours : http://www.math.ens.fr/cours-apprentissage/
ET : http://www.math.ens.fr/enseignement/fiche_cours.html?cours=62#Aspects
probabilistes de l'informatique
(Serge Haddad)
Le but de ce cours est de couvrir plusieurs aspects des probabilités qui apparaissent en informatique. Plus précisément, il consiste en quatre parties :
Voir la page de ce cours MPRI M1-24 sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-1-24
(Cours Info
: 6 ECTS) Validation : Examens + devoirs à la maison
Ce cours est organisé
par l'ENS
de Cachan.
(maj ce descriptif : mai 2013)
(Serge Abiteboul)
Page web du cours : http://abiteboul.com/TEACHING/DBCOURSE/
(Cours Info : 6 ECTS)(Paul-André Melliès)
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 lambda-calcul : 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.
Support de cours :
- Domains and Lambda-calculi. R. Amadio et P.-L. Curien. Cambridge University Press, 1998.
- Categorical semantics of linear logic. P.-A. Melliès. Paru dans la collection Panorama et Synthèse, Société Mathématique de France, 2009.
Et aussi :
- Semantics of programming languages. C. Gunter. MIT Press, 1992.
- Categories, types and structures. A. Asperti and G. Longo. MIT Press, 1991 (épuisé, mais disponible sur la page web de G. Longo : http://www.di.ens.fr/users/longo/files/CategTypesStructures/book.pdf).
- Theories of programming languages. J. Reynolds. Cambridge University Press, 1992.
Pour le lambda-calcul :
- The Lambda-calculus. H. Barendregt. North Holland, 1984.
- Lambda-calcul, types et modèles. J.-L. Krivine. Masson, 1990.
Pour les catégories, lire les premiers chapitres d'un livre tel que:
- Toposes, Triples and Theories. M. Barr and C. Wells. Springer, 1985.
- Sheaves in Geometry and Logic: a first introduction to topos theory. S. Mac Lane and Ieke Moerdjik. Springer, 1992.
(Cours Info : 6 ECTS)(Jean Goubault-Larrecq)
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.
Description du cours
Pré-requis
On s'attend à ce que les étudiants aient une certaine familiarité avec la notion de Machine de Turing, la classe P (temps polynomial déterministe), la classe NP (temps polynomial non-déterministe), les notions de réductions en temps polynomial, le théorème de Cook (SAT est NP-complet) même si toutes ses notions seront rapidement revues au début du cours.
Bibliographie
Livres:
Christos H. Papadimitriou. Computational Complexity. Addison-Wesley, 1994.
Sanjeev Arora and Boaz Barak. Computational Complexity. Cambridge University Press, 2009. (une pré-version est gracieusement disponible ici http://www.cs.princeton.edu/theory/complexity/)
Polycopiés:
(Cours Info :6 ECTS)Cryptanalyse
: nouvelles tendances en cryptographie -
chiffrement avancé
(Michel Abdalla, Phong Nguyen, Vadim Lyubashevsky)
L'objectif de ce cours est d'amener les élèves à la frontière de la recherche actuelle en cryptographie à clé publique et sur le calcul sur des données chiffrées.
Ce cours est divisé en deux parties: le chiffrement fonctionnel et le chiffrement complètement homomorphe. Dans la première partie, nous considérerons la notion de chiffrement fonctionnel qui est une généralisation de la notion classique de chiffrement à clé publique. Dans ces systèmes, les clés de déchiffrement ne permettent à un utilisateur que de calculer certaines fonctions particulières des données chiffrées. Nous examinerons notamment plusieurs cas particuliers de chiffrement fonctionnel, tels que le chiffrement à basé d’identité (identity-based encryption), le chiffrement indexable (searchable encryption) et le chiffrement à base d’attribut (attribute-based encryption). Dans la deuxième partie de ce cours, nous étudierons la notion de chiffrement complètement homomorphe, qui permet des calculs arbitraires sur les données chiffrées. Pour atteindre cet objectif, nous examinerons plusieurs problèmes calculatoires sur les réseaux et les systèmes de chiffrement à base de réseau qui sont utilisés dans les constructions de schémas de chiffrement complètement homomorphe.Pré-requis :
Pré-requis spécifiques
Les étudiants sont censés avoir suivi un cours d'initiation à la cryptologie. Les principes généraux de la cryptologie (intégrité, authenticité, confidentialité) devront être connus ainsi que les résultats de base de la théorie des nombres et de l'algèbre linéaire
Les étudiants doivent ausi avoir vu des exemples de primitives cryptographiques symétriques (par exemple les fonctions de hachage et le chiffrement par bloc) et de primitives asymétriques classiques (RSA et Diffie-Hellman).Pré-requis généraux
Ces pré-requis ne sont pas spécifiques à la cryptologie et sont déjà essentiellement inclus dans la liste générale du MPRI.
Un minimum de connaissance en algèbre et en probabilité sera aussi requis. Enfin les outils algorithmiques de base doivent être maîtrisés.
(Cours MPRI 2-12-1 : 3 ECTS)
Pour plus de renseignements sur ce cours, consulter sa page sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-12-1
(maj ce descriptif : 2011-2012)Fondements sur la modélisation des réseaux
(François Baccelli, Jean Mairesse)
Le but de ce cours est double :
* proposer des modèles mathématiques pertinents pour les réseaux de communications;
* donner les bases théoriques permettant de mener a bien l'analyse de la dynamique de ces modèles.
Le cours est structuré en thèmes, pouvant être plus ou moins développés suivant les années.
* Réseaux de files d'attente et modélisation markovienne (réseaux à commutation de paquets, réseaux à commutation de circuits).
* Dynamique des systèmes à événements discrets temporisés (semi-anneau max plus, inf convolutions, fonctions topicales, réseaux de Petri temporisés, modèles d'empilements de pièces, etc.).
* Contrôle de flux dans les réseaux de communication (TCP, contrôle de flux et de congestion, régulation, network calculus, ordonnancement etc.).
* Graphes aléatoires (à la Erdos-Renyi, géométriques) et modèles de percolation.
Pré-requis
Une familiarité avec les probabilités discrètes et les chaînes de Markov, est préférable.
Bibliographie
* Reversibility and Stochastic Networks, Wiley, 1979.
* Synchronization and Linearity, F. Baccelli, G. Cohen, G.J. Olsder and J.P. Quadrat, Wiley 1992.
* Data networks, D. Bertsekas and R. Gallager, Prentice Hall, 1992.
* Performance Guarantees in Communication Networks, C.S. Chang, Springer, 1999.)
(Joannès Vermorel)
Ce cours présente les concepts fondamentaux du génie logiciel, avec un intérêt pour les systèmes complexes / distribués, notamment dans le cadre du "cloud computing".
Le cours est associé à un projet de développement logiciel. Chaque séance inclut un cours magistral suivi d'un bilan collectif sur l'avancement du projet.
Pré-requis: Ce cours ne forme pas à la programmation. On attend des élèves qu'ils soient déjà familiers avec un ou plusieurs langages de programmation.
Sans être indispensable, la participation préalable aux cours "Algorithmique et programmation" et "Système digital: de l'algorithme au circuit" en première année est un plus.
Le génie logiciel est l'étude de l'activité de production de logiciels en tant qu'activité économique, où les ressources matérielles/humaines (ainsi que les délais) sont limitées.
Les avancées de la dernière décennie dans ce domaine ont permis des gains de productivité très importants.
On s'attachera à comprendre comment des pratiques associées à des avancées technologiques influencent (en bien ou en mal) la productivité dans le domaine logiciel.
Les systèmes informatiques distribués, notamment le "cloud computing", seront intégrés au cours comme objet d'étude, mais aussi comme projet en équipe par les élèves.
La motivation de ce choix est double: l'évolution du matériel informatique tend aujourd'hui vers le "tout-distribué"; par ailleurs les systèmes distribués sont redoutablement difficiles à développer et à debugger.
Notes de cours : http://vermorel.com/software-engineering/
Bibliographie:
- AntiPatterns by William J. Brown, Raphael C. Malveau, Hays W. "Skip" McCormick, Thomas J. Mowbray
- Joel on Software: And on Diverse and Occasionally Related Matters That Will Prove of Interest to Software Developers, Designers, and Managers, and to Those Who, Whether by Good Fortune or Ill Luck, Work with Them in Some Capacity by Joel Spolsky
- Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides
(Cours Info :6 ECTS)
L'Informatique
scientifique
par la pratique 
(David Naccache)
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 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 à comité de lecture (ou même à un journal).
40% des articles préparés dans le cadre du cours sont effectivement parus (après avoir été sélectionnés par des comités de lecture) à des conférences internationales.
Les publications ont souvent été cosignées avec des chercheurs expérimentés qui ont intégré les modèles, la théorie ou les programmes des élèves dans des travaux de recherche globaux (à ce jour, ces chercheurs appartiennent à Telecom ParisTech, Ecole des mines de Saint Etienne, Samsung Research, Altis Semiconductor, Université de Bucarest, Ingenico, Technische Universität Darmstadt, University of Bristol, Morpho, ETS Montréal, Université Paris 8 etc).
(Cours Info : 6 ECTS) Cours de L3 du 2e semestre.
(maj ce descriptif : mai 2013)
(Jacques Stern, David Naccache, Damien Vergnaud)
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é.
Ce cours est aussi proposé comme cours de niveau 1 pour le MPRI et en tant que tel sert de préparation au cours de niveau 2 du MPRI.
Le cours est divisé en 6 parties relativement indépendantes, chacune de 4 heures de cours et 4 heures de TD.
Introduction à la cryptographie
Permutations, substitutions, cryptanalyse (types d'attaques).
Intégrité, confidentialité, authenticité. One Time Pad.
Cryptographie symétrique
Chiffrement par flot.
Chiffrement par bloc.
Modes d'opération (CBC, ECB, CTR).
Exemples: DES, AES, RC4, A5/1.
Hachage, MAC.
Compléments d'algorithmique
Algorithmique des entiers.
Arithmétique modulaire.
Corps finis.
Cryptographie asymétrique
RSA, Diffie-Hellman, El Gamal.
Multiplicativité de RSA (Hastad, attaques multiplicatives).
One-way Functions, trappes.
Générateurs pseudo aléatoires.
Signatures RSA, El Gamal.
Protocoles
Introduction aux preuves à divulgation nulle de connaissance (ZK).
Identification, signatures (FS, Schnorr).
Applications
PKI, IPSEC.
Canal sécurisé : SSL.
(Cours Info : 6 ECTS) Ce cours a lieu le lundi après-midi au 2e semestre
Pour plus de renseignements sur ce cours MPRI 1-13, consulter sa page sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-1-13
Initiation à la modélisation et à la simulation numérique
(Cours DMA)
(Cours de Maths : 12 ECTS)
Voir la page de ce cours sur le site du DMA: http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
(maj ce descriptif : juillet 2012)
Initiation
à la programmation pour pour non-informaticiens 
(Damien Vergnaud)
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 non informaticien qui aura un jour à programmer rapidement une simulation, mais aussi à toute personne souhaitant comprendre comment sont faits les programmes informatiques.
(Cours Info du 2ème semestre : 3 ECTS) le mercredi de 17h à 19h en salle Info 4 NIR à compter du mercredi 13 février 2013.
Pour plus de renseignements sur ce cours, consulter : http://www.di.ens.fr/~vergnaud/initPython.html
(derniere mise à jour : 2012-2013)
Intégration et probabilités de base
(Cours DMA)
(Cours de Maths : 12 ECTS)
Voir la page de ce cours sur le site du DMA : http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
Interprétation
Abstraite :
Application à la Vérification et à l'Analyse Statique 
(Patrick Cousot, Radhia Cousot)
L'analyse statique de programmes consiste à vérifier statiquement (sans les exécuter) des propriétés dynamiques (à l'exécution) des programmes.
Les classes de propriétés à vérifier sont très diverses comme la sûreté (par exemple, absence d'erreurs à l'exécution), la vivacité (par exemple, garantie de réponse à un signal), la sécurité (par exemple, confidentialité d'informations traitées par un programme), etc.
La grande difficulté pour démontrer automatiquement ces propriétés dynamiques est de trouver les arguments inductifs pour faire la preuve (par exemple, par induction sur le nombre de pas de calcul). Diverses solutions sont possibles : demander à l'utilisateur (méthodes déductives), utiliser un modèle finitaire (vérification exhaustive) ou calculer l'argument inductif par approximation de la sémantique du programme (en utilisant les techniques d'approximation de point fixe de l'interprétation abstraite).
Le cours explore cette dernière technique, en rappelle rapidement les bases, afin d'explorer un certain nombre d'abstractions infinitaires qui permettent de traiter un grand nombre d'applications à systèmes d'états infinis, qu'elles soient émergentes, classiques ou industrialisées
Plan du cours (à titre indicatif) :
Introduction à l'interprétation abstraite ;
Domaines abstraits numériques ;
Domaines abstraits symboliques ;
Combinaison et raffinement de domaines abstraits ;
Conception d'un analyseur statique par interprétation abstraite ;
Analyse statique de programmes séquentiels, procéduraux, récursifs, modularité ;
Domaines abstraits probabilistes ;
Vérification de la sécurité de protocoles cryptographiques ;
Estimation de la précision de logiciels numériques ;
Analyse statique de programmes parallèles asynchrones ;
Analyse statique de programmes distribués ;
Analyse statique de code mobile ;
Vérification de systèmes complexes intégrés sur puces ;
Vérification par abstraction paramétrée de prédicats ;
Vérifications statiques sur des logiciels critiques embarqués temps-réel ;
Sujets pratiques et théoriques ouverts en analyse statique par interprétation abstraite, perspectives.
Bibliographie :
B. Blanchet, P. Cousot, R. Cousot, J. Feret, L. Mauborgne, A. Miné, D. Monniaux, X. Rival. A static analyzer for large safety-critical software. PLDI 2003, ACM Press, 2003, pp. 196-207.
P. Cousot. Semantic foundations of program analysis. In S.S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, chapter 10, pages 303-342. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, usa, 1981.
P. Cousot. Verification by Abstract Interpretation. In International symposium on verification (theory & practice) celebrating Zohar Manna's 1000000 2 -th birthday, N. Dershowitz (Ed.), vol. 2472 of Lecture Notes in Computer Science, Springer, Berlin, 2003.
J. Feret. Dependency Analysis of Mobile Systems. In <em>European Symposium on Programming</em> (ESOP'02). D. Le Métayer (Ed.), vol. 2305 of Lecture Notes in Computer Science, pp. 314--330, Springer, Berlin, 2002.
A. Miné. A Few Graph-Based Relational Numerical Abstract Domains. In <em>Static Analysis Symposium</em> SAS'02, M. Hermenegildo and G. Puebla (Eds.), LNCS 2477, 117--132, Springer 2002.
(Cours MPRI 2-6 : 6 ECTS)
Pour plus de renseignements sur ce cours, consulter sa page sur le site du MPRI : http://mpri.master.univ-paris7.fr/Introduction
à la vision artificielle 
(Jean Ponce)
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 en Matlab/Scilab.
Plan :
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.
Bibliographie :
D.A. Forsyth et J. Ponce, "Computer Vision: A Modern Approach", Prentice-Hall, 2002.
(Cours Info : 4 ECTS en 2012-2013 mais 6 ects et plus long en 2013-2014)
Cours le jeudi matin au 1er semestre.
(Derniere mise à jour : mai 2013)
Langages
de
programmation et compilation 
(Jean-Christophe Filliâtre)
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.
Mise à niveau Caml
Principes de la compilation / Architecture MIPS
Syntaxe abstraite / Sémantique / Interprète
Analyse sémantique
Typage monomorphe
Polymorphisme / algorithme W
Propriétés d'un système de types
Analyse lexicale et syntaxique
Compilation des langages impératifs
Tableaux d'activation
Mode de passage des paramètres
Compilation des langages fonctionnels
Fonctions comme valeurs de première classe
Compilation du filtrage
Compilation des langages à objets
Typage statique et typage dynamique
Représentation des objets et exécution
Glaneurs de cellules (GC)
Production de code efficace
Langages intermédiaires RTL, ERTL, LTL
Allocation de registres
Pour plus de renseignements sur ce cours, consulter : http://www.lri.fr/~filliatr/ens/compil/
(Cours Info : 9 ECTS à compter de 2013-2014, 6 ECTS auparavant) Validation : examen + projet
Cours du 1er semestre : cours le jeudi après-midi. TD le vendredi matin.
(Derniere mise à jour : juin 2013)
Langages
formels,
calculabilité et complexité 
(Eugène Asarin)
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.
Page du cours 2011-2012 de M Asarin sur : http://www.liafa.jussieu.fr/~asarin/ENS/lf.html
Livre support du cours : http://www.liafa.jussieu.fr/~carton/Lfcc/
Page du TD de Anne Bouillard : http://www.di.ens.fr/~bouillar/enseignement.html
Ancienne page du cours : http://www.liafa.jussieu.fr/~carton/Enseignement/Complexite/ENS/
(Cours Info : 9 ECTS à compter de 2013-2014, 6 ECTS auparavant) Validation : soutenance + examen
Cours du 1er semestre : cours le jeudi matin. TD le vendredi matin.
(Derniere mise à jour : juillet 2012)
(Cours DMA)
Théorie naïve des ensembles
Théorème de Cantor-Bernstein
Ordinaux et cardinaux
Les différentes formes de l'axiome du choix
Théorie des modèles
Langages, structures, formules, théories, modèles
Théorèmes de complétude et de compacité
Théorèmes de Löwenheim-Skolem
Critères d'élimination des quantificateurs
Une application à l'algèbre : Théorème d'Ax sur les fonctions polynomiales injectives.
Récursivité, indécidabilité, incomplétude
Fonctions récursives
Arithmétique de Peano, indécidabilité de l'arithmétique
Théorèmes d'incomplétude de Gödel.
Retour à la théorie des ensembles
Les axiomes de Zermelo-Frankel
Modèles de la théorie des ensembles et hypothèse du continu
(Cours de Maths :12 ECTS)
Voir la page de ce cours sur le site du DMA : http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
(maj ce descriptif : juillet 2012)
(Jean Goubault-Larrecq)
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).
1. Aspects informatiques :
Lambda-calcul, langages fonctionnels, sémantique opérationnelle (réduction).
Expressivité. Combinateurs de point fixe et récursion.
Terminaison, développements finis, confluence et réductions parallèles.
Stratégies de réduction: par nom, par nécessité. Standardisation.
Modèles du lambda-calcul, P-omega.
Calculs à substitutions explicites, machines. Géométrie de l'interaction (optionnel).
2. Aspects logiques :
Lambda-calcul simplement typé;
Correspondance de Curry-Howard entre ce dernier et les preuves en logique minimale propositionnelle;
Extension à la logique classique, captures de continuations et gestion d'exceptions;
Arithmétique, le système T;
Lambda-calcul typé du second ordre : le système F de Girard-Reynolds, correspondance avec la logique intuitionniste d'ordre deux;
Propriétés de normalisation forte, élimination des détours.
Bibliographie :
Henk Barendregt. The lambda-calculus, its syntax and semantics. North-Holland, 1984.
Jean-Louis Krivine. Lambda-calcul, types et modèles. Masson, 1992.
Jean-Yves Girard, Yves Lafont & Paul Taylor. Proofs and Types. Cambridge University Press 1989.
(Cours Info : 6 ECTS).
Plus de renseignements sur ce cours sur : http://www.lsv.ens-cachan.fr/~goubault/Lambda/loginfoindex.html
Cours du 2e semestre qui a lieu à ENS Cachan
(maj ce descriptif : juin 2013)
Méthodes
mathématiques pour
les neurosciences 
(Olivier Faugeras)
Nous
présentons dans ce cours quelques problèmes importants de
modélisation en neurosciences. Ces problèmes nécessitent pour les
aborder des outils mathématiques issus de l'analyse fonctionnelle, de
la théorie des systèmes dynamiques et du calcul stochastique. Les
prérequis sont une bonne connaissance du calcul différentiel et du
calcul des probabilités dans le cadre de la théorie de la mesure. Sans
trahir la rigueur mathématique, le cours s'efforcera de mettre en
valeur l'applicabilité aux neurosciences des concepts présentés.
La page web du cours se trouve(ra) à l'adresse http://www-sop.inria.fr/members/Olivier.Faugeras/MVA/MMN12
L'ancienne se trouve à l'adresse http://www-sop.inria.fr/members/Olivier.Faugeras/MVA/MMN11
Bibliographie :
Wulfram Gerstner et W. Kistler, Spiking neuron models, Cambridge University Press, 2002.
Yuri A. Kuznetsov, Elements of applied bifurcation theory.
Euge ne Izhikevich, Dynamical systems in neuroscience: the geometry of excitability and bursting, MIT Press, 2006.
Jean-Pierre Françoise, Oscillations en biologie, Springer, 2000.
Lawrence C. Evans, An introduction to stochastic differential equations, http://math.berkeley.edu/~evans/SDE.course.pdf
Jean-François Le Gall, Mouvement brownien et calcul stochastique, http://www.dma.ens.fr/~legall/DEA96.pdf
Cours Info & MVA : 4 ECTS & Cours UMPC Maths et Applications)
En 2012-2013, le cours aura lieu les mardi 24 octobre, 7,14,21,28 novembre, 5 décembre, 12 décembre (examen) de 13h30 à 19h00 en salle Henri Cartan, aile Rataud, ENS Paris 45 rue d'Ulm 75005 Paris
Planification de mouvement en robotique et en animation graphique : du continu au combinatoire via la commandabilité des sytèmes
(Jean-Paul Laumond)
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.
Introduction : le mouvement en Robotique, en CAO et en Animation Graphique.
Modélisation du problème de la planification de mouvement
L'espace des configurations par l'exemple : trois méthodes de résolution du problème de déplacement d'un polygone en translation.
L'apport de la géométrie algébrique réelle : le problème est décidable.
L'apport de la topologie algébrique pour le mouvement au contact.
Les grandes méthodes de résolution
Décomposition cellulaire. Exemple du mouvement coordonné de deux disques.
Rétraction. Exemple du problème de la manipulation d'objets.
Les systèmes non holonomes
Eléments de géométrie différentielle. Commandabilité. Degré de non holonomie.
Chemins optimaux pour robots mobiles de type voiture. La planification de mouvement par algorithme d'approximation de chemins holonomes. Complexité.
Systèmes chaînés et commandes sinusoïdales. Systèmes plats et approche géométrique.
Un cas d'étude complet : planification et exécution de mouvements pour un chariot à remorque.
Les nouvelles méthodes par recherche aléatoire.
Bibliographie :
J.T. Schwarzt, M. Sharir and J. Hopcroft (Eds), Planning, Geometry and Complexity of Robot Motion, Ablex Series in Artificial I ntelligence, Ablex Publishing, 1987.
J.C. Latombe, Robot Motion Planning Kluwer Academic Publishers, 1991.
J.P. Laumond (Ed), Robot Motion Planning and Control, Lectures Notes in Control and Information Science, 229, Springer Verlag, 1998 (épuisé mais disponible gratuitement sur http://www.laas.fr/~jpl ).
(Cours Info :6 ECTS)
Cours du 1er semestre : le mardi de 12h45 à 15h45.
Protocoles cryptographiques: preuves formelles et calculatoires
(Bruno Blanchet et Stéphanie Delaune)
Les protocoles cryptographiques sont des programmes distribués qui visent à sécuriser des communications et transactions en utilisant des primitives cryptographiques. La conception des protocoles cryptographiques est difficile: de nombreuses erreurs ont été découvertes dans des protocoles après leur publication. Il est donc particulièrement important de pouvoir obtenir des preuves que ces protocoles sont sûrs.
Deux modèles des protocoles ont été considérés : le modèle symbolique et le modèle calculatoire. Nous présenterons ces deux modèles, les techniques de preuves associées, et des résultats qui font le lien entre eux. Nous considérerons aussi leur mise en oeuvre, en montrant un outil de preuve automatique pour chaque modèle, et en les appliquant à la vérification de programmes qui implémentent des protocoles cryptographiques.
Ce cours sera l'occasion d'adapter et d'utiliser des outils formels, comme les calculs de processus, la sémantique, le typage et la logique, au cas particulier de l'étude des protocoles cryptographiques.
1. Modèles des protocoles et des propriétés de sécurité
a. Exemples (informels) de protocoles et de propriétés de sécurité.
b. Formalisations des protocoles; exemples d'interprétations: calculatoire et symbolique.
c. Introduction à un fragment du pi-calcul appliqué; exemples de formalisation de protocoles.
d. Exemples de primitives cryptographiques; formalisation de leurs propriétés algébriques.
e. Propriétés de sécurité : secret, authenticité, attaques par devinette, propriétés d'indistinguabilité.
Exercices: modélisation en pi-calcul appliqué, recherche d'attaques simples.
2. Preuves de protocoles dans le modèle symbolique
a. Problème de déductibilité : le cas d'un attaquant passif. Le problème est complet pour PTIME pour les systèmes locaux.
b. Indécidabilité de la sécurité dans le cas d'un attaquant actif.
c. Cas d'un nombre borné de sessions. Contraintes de déductibilité et algorithmes de décision pour les propriétés de traces.
d. Résultats de combinaison; modularité de la sécurité pour certaines classes de protocoles.
e. Algorithmes de décision pour l'équivalence statique.
Exercices : Extension à d'autres primitives cryptographiques (les résultats ne sont présentés dans le cours que sur un exemple.
3. Liens entre les modèles calculatoire et symbolique
a. Full abstraction de l'équivalence statique: le théorème d'Abadi & Rogaway.
b. Exemples d'extensions à d'autres primitives, avec d'autres hypothèses; attaquant adaptatif.
c. Énoncé des résultats dans le cas actif: trace mapping et full abstraction de l'équivalence observationnelle.
Exercices : Voir [8]: les pièges et les limites de la méthode. Aussi: des exemples d'attaque calculatoire sur des protocoles prouvés sûrs (dans le monde symbolique), montrant que les diverses hypothèses sont nécessaires.
4. Preuves dans le modèle calculatoire
a. Indistinguabilité et accessibilité dans le modèle calculatoire; sécurité sémantique, non-malléabilité, relations.
b. Sécurité prouvée calculatoire : approche directe; hypothèses algorithmiques, preuves par réduction, techniques classiques (hybrides, rembobinage etc...)
c.Sécurité prouvée calculatoire: approche par jeux; méthodologie générale, exemples, interprétation de résultats
d. Sécurité des protocoles interactifs (fonctionnalité idéale); méthodologie, illustration sur la mise en accord de clé authentifiée.
Exercices : réductions entre hypothèses algorithmiques, notions de sécurité, primitives simples. Analyse de sécurité de primitives.
5. Automatisation des preuves de protocoles
a.Dans le modèle symbolique: outil ProVerif
b.Dans le modèle calculatoire: outil CryptoVerif
Exercices : Modélisation en clauses de Horn de protocoles et utilisation de Proverif sur des exemples concrets. Manipulation de CryptoVerif.
Pré-requis : Pas de pré-requis particulier, mais on s'appuiera sur les pré-requis généraux du MPRI (sémantique, logique, typage, ...).
(Cours MPRI 2-30 : 6 ECTS)
(mise à jour de ce descriptif : septembre 2011)
Plus de renseignements sur la page de ce cours sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-30
Reconnaissance
d'objets et
vision artificielle 
(Jean Ponce, Ivan Laptev, Josef Sivic, Cordelia Schmid)
La reconnaissance automatique des objets --et de manière plus générale, l'interprétation de la scène-- figurant dans une photographie ou une vidéo est le plus grand défi de la vision artificielle. Ce cours présente les modèles d'images, d'objets, et de scènes, ainsi que les méthodes et algorithmes utilisés aujourd'hui pour affronter ce défi.
Plan du cours :
- Caractéristiques visuelles : points d'intérêt, régions affines, invariants, descripteurs Sift.
- Détection d'objets et de classes spécifiques : alignement 2D et 3D, méthodes de votes, détection de visages et Adaboost.
- Classification d'images : sacs de caractéristiques visuelles et machines à vecteurs de support, grilles et pyramides, réseaux convolutionnels.
- Détection de catégories d'objets : constellations de caractéristiques visuelles, assemblages de fragments, méthodes de fenêtre glissantes, apprentissage faiblement supervisé de modèles.
- Aller plus loin : analyse de scène, analyse des activités dans les vidéos.
Bibliographie :
D.A. Forsyth and J. Ponce, ``Computer Vision: A Modern Approach'',Prentice-Hall, 2003.
J. Ponce, M. Hebert, C. Schmid, and A. Zisserman, ``Toward Category-Level Object Recognition'', Lecture Notes in Computer Science 4170, Springer-Verlag, 2007.
(Cours Info & MVA : 4 ECTS) Cours le mercredi après-midi de fin septembre à fin décembre.
Sémantique
et application à la vérification de programmes 
(Xavier Rival)
Descriptif :
Dans ces 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.
Plan du cours :
En complément de la partie théorique, les TDs et TPs présenteront des applications concrêtes de ces techniques.
(Cours Info :6 ECTS) Nouveau cours en 2013-2014.
Cours du 2e semestre : cours et TD le mercredi après-midi
(mise à jour de ce descriptif : juin 2013)
(Cours DMA)
Objectifs : Ce cours vise à donner aux étudiants les bases fondamentales du raisonnement et de la modélisation statistique. L'accent est particulièrement mis dans cet enseignement sur l'utilisation pratique des nouveaux objets rencontrés.
Prérequis : Une bonne connaissance du calcul des probabilités et de l'algèbre linéaire.
Thèmes abordés :
- Rappels de probabilités, estimation ponctuelle, estimation par intervalles, tests.
- Estimateurs par maximum de vraisemblance.
- Modèle linéaire : estimation, intervalles de confiance et tests.
- Modèles exponentiels, exhaustivité.
(Cours de Maths : 12 ECTS)
(maj ce descriptif : juillet 2012)
Voir la page de ce cours sur le site du DMA : http://www.math.ens.fr/enseignement/catalogue.html?annee=2013-2014#
Structures
et Algoritmes
Aléatoires 
(Anne Bouillard)
Système
digital : de
l'algorithme au circuit 
(Jean Vuillemin, Timothy Bourke)
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.
1. Circuit
digital synchrone : Circuit combinatoire et portes
logiques. Registre et circuit digital synchrone. Réalisation d’un
circuit de montre numérique.
Complexité et synthèse
BDD de circuits.
2. Nombres
binaires :
des bits
aux entiers 2-adiques ; algèbre et anneau de Boole ;
hyper-cube et
ensembles d’entiers. Arithmétique 2-adique et circuits en séries.
Opérations
logiques et ensemblistes sur les entiers : algèbre binaire.
3. Circuits
électroniques :
des
portes aux transistors ; de la logique à son dessin sur
silicium. Schémas
électriques et dessin au micron d'un additionneur série.
Mémoires ROM et
RAM. Technologies de
fabrication : ASIC, FPGA. Lois de Moore.
4. Arithmétique
sur silicium :
additionneurs et multiplicateurs, en série et en parallèle ;
profondeur
minimale. Compromis optimaux entre surface et temps. Unité arithmétique
et
logique. Division par les poids faibles ; racine 2-adique.
5. Machines
universelles :
machine de Turing sur silicium. Microprocesseur programmable à la
Church. Nombre réel
calculable, et limites du calcul
automatique. Arithmétiques en ligne : réels vs. 2-adiques.
Logique
programmable FPGA et systèmes dynamiquement reconfigurables.
6. Physique
numérique :
algorithme
(transformée de Hough rapide) et réalisation d’un circuit
d’identification de
lignes droites dans des images digitales
haute fréquences du détecteur ATLAS du LHC ; principe et
réalisation d’un
circuit pour connaitre les flux thermiques d’un microprocesseur en
marche, par
résolution numérique massivement parallèle de l’équation
de la chaleur.
7. Télécommunications :
introduction à la théorie de Shannon,
source et canal ; entropie des données, algorithme de Huffman,
compression
LZW. Contrôle des erreurs ; entropie du bruit ; code de
Hamming ;
code de Viterbi.
8. Audio
et vidéo :
convertisseurs A/D et D/A ; compromis vitesse/résolution.
Saisie, codage
et transmission des images ; compression sans perte visible à
l'œil :
images fixes JPEG et séquences vidéo MPEG. Codage MP3 et transmission
du
son.
(Cours Info
: 9 ECTS à
compter de 2013-2014, 6 ECTS auparavant)
validation : examen et projet.
Pour plus de renseignements sur ce cours, consulter : http://www.di.ens.fr/~jv/HomePage/teaching.html
Cours du 1er semestre le mardi après-midi.
(maj descriptif : juin 2013)
(Marc Pouzet)
Le cours de systèmes présente les concepts fondamentaux des systèmes d'exploitation, leur utilisation et leur mise en œuvre dans un système UNIX.
Ce cours abordera, en autres, les points suivants :
- gestion des processus;
- mémoire virtuelle;
- communication et synchronisation entre processus concurrents (mémoire partagée, signaux, sémaphores, sockets);
- ordonnancement préemptif et non-préemptif; OS temps réel;
- modèles de concurrence de haut niveau.
Les notions introduites seront illustrées par l'écriture d'applications en C ou en Ocaml, en utilisant l'interface POSIX.
(Cours Info : 9 ECTS à compter de 2013-2014, 6 ECTS auparavant)
Cours du 2e semestre : cours et TD le jeudi après-midi.
La page du cours : http://www.di.ens.fr/~pouzet/cours/systeme/
Systèmes synchrones
(Marc Pouzet, Jean Vuillemin)
Les langages synchrones ont été crés pour programmer les systèmes réactifs embarqués à la fois très complexes et très sûrs. Ils ont connu, depuis, un succès industriel majeur dans la programmation de systèmes critiques: avions, trains, automobiles, centrales électriques, etc. Le système de commande de vol des Airbus, par exemple, est développé avec l'outil SCADE issu du langage synchrone Lustre.
Ces langages ont évolué sans cesse depuis pour traiter des applications et domaines nouveaux: calcul vidéo intensif (TVHD); grandes simulations (réseaux électriques, réseaux de capteurs); systèmes mixtes continu/discrets (environnement physique, interface analogique/discret en électronique).
Ils sont fondés sur un modèle original dit du parallélisme synchrone qui combine parallélisme et déterminisme. Le programme est décrit dans un langage parallèle de haut niveau mais pour lequel le compilateur garantit des propriété de sûreté fortes: sémantique déterministe, absence de blocage (deadlock), génération de code séquentiel s'exécutant en temps et mémoire bornés, etc. En somme, les langages synchrones permettent de programmer dans un formalisme de haut niveau, le code final embarqué étant produit directement par le compilateur.
Le cours donne une introduction au modèle synchrone et aux principaux langages qui en sont issus. Il présente leurs fondements sémantiques et logiques, les techniques de compilation vers du logiciel et des circuits, leur vérification formelle (par model-checking) et certains travaux de recherche récents. Nous montrerons dans ce cours les liens étroits entre la théorie des langages synchrones et la théorie des langages fonctionnels typés.
Pour plus de renseignements sur ce cours, consulter sa page sur le site du MPRI : https://wikimpri.dptinfo.ens-cachan.fr/doku.php?id=cours:c-2-23-1
Théorie de
l'information et
codage 
(Marc Lelarge, Anne Bouillard)
- Notions
de base :
Entropie,
information mutuelle, suites
typiques, inégalité de Fano.
-
Compression de données :
Codage de
source, inégalité de Kraft, codages
de Huffman, Ziv-Lempel, théorie de la distorsion.
- Capacité
d'un canal :
Théorème de
Shannon.
- Codes
correcteurs d'erreur :
codes
linéaires, codes cycliques, codes de
Hamming, BCH, Reed-Solomon.
Bibliographie :
- R.J. McEliece, The Theory of Information and Coding, 1982.
- T. Cover, J. Thomas, Elements of Information Theory, Wiley, 1991.
- C. Shannon, A Mathematical Theory of Communication, 1948.
- http://cm.bell-labs.com/cm/ms/what/shannonday/shannon1948.pdf
Plus de renseignements sur : http://www.di.ens.fr/~lelarge/info.html
(Cours Info : 6 ECTS)
Cours du 2e semestre : cours et TD le mardi matin.
(maj descriptif : juin 2013)
(Stéphane Mallat)
Ce cours présente le traitement du signal digital en lien avec les outils d'analyse harmonique, de probabilité et de statistique sur lequel il repose.
On verra des applications et algorithmes pour le traitements des sons et de l'image. Les sujets suivants seront couverts :
Chaque séance de cours sera suivi par un TD ou quelques TP sur ordinateur.
(Cours Info : 6 ECTS en 2012-2013 mais 12 ects en 2013-2014 où ce cours devient le cours spécifique à la filière maths-informatique de L3 de Maths et à la filière info-mathématique de la L3 d'Info)
Cours du 2e semestre : cours et TD le jeudi matin.
(maj descriptif : mai 2013)
1 L'intégration d'étudiants français ou étrangers peut aussi s'envisager en deuxième année de scolarité, c'est-à-dire à l'entrée du master : le diplôme de l'ENS est alors délivré au terme des deux années du master (M1 et M2).