CSC_41011 (anciennement INF411)
Les bases de la programmation et de l'algorithmique

(moodle) (la page des TD)
Enseignant responsable : Jean-Christophe Filliâtre

Année 2024 (promotion X2023)

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 13:30-15:00.

  1. introduction (mercredi 28 août)
    amphi 1 (mercredi 28 août) Tableaux redimensionnables et listes chaînées
    poly : chapitres 1 à 4 / code : Amphi1.java
  2. amphi 2 (lundi 2 septembre) Tables de hachage, mémoïsation
    poly : chapitres 1, 5 et 11 / code : MarkovChains.java / le projet Gutenberg / Amphi2memo.java
  3. amphi 3 (lundi 9 septembre) Classes disjointes
    poly : chapitre 9 / code : Amphi3Connectivity.java / Amphi3Maze.java / CongruenceClosure.java
  4. amphi 4 (lundi 16 septembre) Rebroussement
    poly : chapitre 12 / code : Amphi4.java (Sudoku) / DancingLinks.java / ScottDLX.java
  5. amphi 5 (lundi 23 septembre) Arbres 1/2
    poly : chapitre 6 / code : AVLSet.java / Amphi5.java
  6. amphi 6 (lundi 25 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
  7. amphi 7 (lundi 9 octobre) Files de priorité
    poly : chapitres 8 et 14 / code : Wiki.java / Huffman.java
  8. amphi 8 (lundi 16 octobre) Tri
    (poly : chapitre 13 / code : ConvexHull.java)
  9. amphi 9 (lundi 23 octobre) Graphes (1/2)
    (poly : chapitres 15 et 16.1) / code Java (parcours dans Wikipedia)
  10. 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)

TDs

Mardi, 8:00-10:00 ou 10:15-12:15.

La page des TD.

Enseignants :

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.

Pale machine

Archives :

Contrôle classant

Archives :


Moodle