# Calendrier Items du programme officiel, juste les titres. L'ordre est celui que je vais suivre. ## 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* ---- ## 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` et `HAVING` - Quand ? *Juin, 2/3 CM et 2 TP + 1/2 TD*