INF411 : Les bases de la programmation et
de l'algorithmique
(moodle)
(la page des TD)
Enseignant responsable
: Jean-Christophe
Filliâtre
Année 2022 (promotion X2021)
Présentation
Ce cours entend amener les élèves de niveau INF361
(Introduction à l'informatique) au niveau de fin de
INF371,
afin de pouvoir poursuivre le cursus d'informatique de
l'École.
L'enseignement porte essentiellement sur les structures de
données (listes, piles, files, arbres, graphes), sur l'algorithmique,
et sur un minimum de théorie de la complexité. Ce cours est également
l'occasion de se perfectionner en Java. Les TDs explorent en
profondeur une partie du matériel presenté en amphi.
Poly
Le polycopié du cours (disponible sur moodle)
couvre tout ce qui est abordé en amphis. Il
contient de nombreux exercices, tous corrigés.
Vous trouverez ici le code Java du poly.
Pour ceux qui souhaitent aller plus loin que le poly, voici deux
ouvrages recommandés :
Amphis
Amphi Arago, lundi 17:00-18:30.
-
introduction (lundi 22 août)
amphi 1 (lundi 22 août)
Tableaux redimensionnables et listes chaînées
poly : chapitres 1 à 4 /
code
: Amphi1.java
vidéo
-
amphi 2 (lundi 30 août)
Tables de hachage, mémoïsation
poly : chapitres 1, 5 et 11 /
code
: MarkovChains.java
/ le projet Gutenberg
/ Amphi2memo.java
vidéo
-
amphi 3 (lundi 5 septembre)
Classes disjointes
poly : chapitre 9 /
code
: Amphi3Connectivity.java
/ Amphi3Maze.java
/ CongruenceClosure.java
vidéo
-
amphi 4 (lundi 12 septembre)
Rebroussement
poly : chapitre 12 /
code
: Amphi4.java (Sudoku)
/ DancingLinks.java
/ ScottDLX.java
vidéo
-
amphi 5 (lundi 19 septembre)
Arbres 1/2
poly : chapitre 6 /
code
: AVLSet.java
vidéo
-
amphi 6 (lundi 26 septembre)
Arbres (2/2)
poly : section 6.4 et chapitre 7
/ code Java (tous les
préfixes)
/ Boggle.java
/ le concours de programmation
mentionné en amphi /
Rope.java
vidéo
-
amphi 7 (lundi 3 octobre)
Files de priorité
poly : chapitres 8 et 14 /
code : Wiki.java /
Huffman.java
vidéo
-
amphi 8 (lundi 17 octobre)
Tri
(poly : chapitre 13 /
code : ConvexHull.java)
vidéo
-
amphi 9 (lundi 24 octobre)
Graphes (1/2)
(poly : chapitres 15 et 16.1)
/ code Java (parcours
dans Wikipedia)
vidéo
-
amphi 10 (lundi 7 novembre)
Graphes (2/2)
(poly : section 16.2 /
code : gps.zip /
données :
region-parisienne.osm
et osm-0.5.dtd ;
cf www.openstreetmap.org)
GPS.java
GUI.java
XMLHandler.java
Graph.java
Vertex.java
Edge.java
VertexDist.java
FindPath.java)
vidéo
TDs
Mardi, 8:00-10:00 ou 10:15-12:15.
La page des TD.
Enseignants :
- Groupes 1- 7 - salle 36 - Marc Mezzarobba - Aly-Bora Ulusoy
- Groupes 2- 8 - salle 31 - Marie Albenque - Louis de Monterno
- Groupes 3- 9 - salle 32 - Emmanuel Haucourt - Yamen Haddad
- Groupes 4-10 - salle 33 - Malika Izabachène - Bertrand Marchand
- Groupes 5-11 - salle 34 - Pierre Lairez - Maria Luiza Costa Vianna
- Groupes 6-12 - salle 35 - Vincent Pilaud - Nelly Barret
Si vous n'êtes pas familier de l'environnement Unix utilisé en salles
info, voici une
brève
documentation des commandes les plus utiles
ainsi qu'une introduction
au terminal de Linux.
Quelques raccourcis utiles d'Eclipse :
- Ctrl-Shift-F : reformater le code (et l'indenter correctement)
- Ctrl-espace : expanser un raccourci (template),
comme par exemple main ou sysout. (La liste
complète se trouve
dans Preferences->Java->Editor->Templates.)
- Ctrl-1 : proposer des corrections, sur une ligne
contenant une erreur.
- Ctrl-Alt-R : renommer l'identificateur se trouvant sous
le curseur (et toutes ses occurrences).
Contrôle classant
Archives :
Moodle