Items du programme officiel, juste les titres. L'ordre est celui que je vais suivre.
-
Hors du programme mais nécessaire au début :
- Organisation de l'année pour ce cours d'informatique
- Conseils méthodologiques
- Rapide histoire de l'informatique
- Matériel constituant d'un ordinateur
- Terminal sous UNIX via une VM
- Base de programmation en Python, rappels de syntaxe pour rafraîchir tout le monde
- Méthode de programmation, premier passage
- Algorithmes et programmes (historique)
- Quand ? Septembre : 2/3 CM + 1/2 TD QCM et frise historique + 1 TP terminal
-
Programmation en OCaml :
- pourquoi et comment OCaml, comment s'en servir : avec https://BetterOCaml.ml, puis dans un terminal ou dans Emacs en mode tuareg, avec VM CapesOS à utiliser depuis Windows ou Mac (à faire en TP)
- bases du langage OCaml
- approche impérative, ressemble à Python
- approche fonctionnelle, nouveau
- Quand ? Septembre : 1 CM + 1 TP
-
Structures de données, premier passage :
- Types et abstractions
- Structures de données séquentielles 1/2 (listes, tableaux 1D, piles et files)
- Quand ? Octobre : 2 CM + 1 TD
-
Méthode de programmation, premier passage
- Algorithmes et programmes
- Discipline de programmation
- Validation, test
- 1 CM + 1 TP + dans chaque TP suivant les faire écrire des tests en binôme ?
- Quand ? Octobre : 1 CM + 1 TD
-
Programmation en C :
- bases du langage C, modèle de calcul, syntaxe
- ? pas possible de faire pas de pointeur ni gestion mémoire ni fichier car gestion mémoire est au S1
- Quand ? Novembre : 2 CM + 1 TD
-
Récursivité et induction, premier passage
- Fonctions récursives simples
- Induction sur les entiers comme en maths
- Quand ? Novembre/Décembre : 1 CM + 1 TD
-
Gestion des ressources de la machine
- Gestion de la mémoire d'un programme : en C uniquement,
malloc
/free
- Gestion des fichiers et entrées-sorties
- Bases de Bash et de la philosophie UNIX des pipes et stdin/stdout "tout est fichier"
- Quand ? Décembre : 2 CM + 1 TP
- Gestion de la mémoire d'un programme : en C uniquement,
-
Structures de données, deuxième passage :
- Structures de données séquentielles 2/2 (tableaux 2D, sérialisation et plus)
- Structures de données hiérarchiques (arbres, tableaux associatifs, tables de hachage)
- Structures de données relationnelles (graphes et arbres)
- Quand ? Janvier : 2/3 CM + 3 TP + 3 TD
-
Algorithmique
- Exploration exhaustive, back tracking
- Décomposition d'un problème en sous-problème =
- algorithme glouton exacts,
- et diviser pour régner / dichotomie,
- programmation dynamique bottom-up ou mémoïsation.
- Algorithmique des textes (recherche sous-chaîne, codage/compression Huffman)
- Algorithmique des graphes : bases = parcours en largeur et profondeur
- Quand ? Février/mars : 4 CM + 4 TP + 4 TD
-
Méthode de programmation, deuxième passage
- Discipline de programmation :
- exceptions,
- explications choix conception programmation
- Quand ? Mars : 0.5 CM et max 1 TP
- Discipline de programmation :
-
Programmation en OCaml, deuxième passage :
- filtrage,
- fichiers,
- exceptions,
- Quand ? Mars : 1 CM + dans les TP suivants
-
Programmation en C :
- pointeurs,
- gestion mémoire avec
malloc
/free
, - utilisation de fichiers
- Quand ? Avril, 2 CM et 2 TP + 1 TD max
-
Logique
- Syntaxe des formules logiques
- Sémantique de vérité du calcul propositionnel
- Quand ? Mai, 3/4 CM et 1/2 TP + 2 TD
-
Récursivité et induction, deuxième passage
- Récursivité croisée
- Induction structurelle (sur des graphes, des arbres, des formules logiques, etc.)
- Quand ? Mai, 0.5 CM et max 1 TP
-
Bases de données
- Modèle relationnel, exemples
- Syntaxe du SQL
- Constructions avancées comme
WHERE
etHAVING
- Quand ? Juin, 2/3 CM et 2 TP + 1/2 TD