1. Calendrier¶
Items du programme officiel, juste les titres. L’ordre est celui que je vais suivre.
1.1. Premier semestre S1¶
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
Base de programmation en Python, rappels de syntaxe pour rafraîchir tout le monde
Terminal sous UNIX via une VM
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
1.2. Second semestre S2¶
Structures de données, deuxième passage :
Structures de données séquentielles 2/2 (tableaux 2D 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
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