Mes cours en DUT

J'ai créé à l'IUT 5 cours différents. je les décris dans l'ordre chronologique.

Architecture

J'ai fait à mon arrivée à l'IUT de Villetaneuse un cours d'architecture plus orienté vers le processeur que vers l'ensemble des composants de la machine. Il devait beaucoup à Tannenbaum pour ce qui est de la présentation des micro-instructions. J'ai changé plusieurs fois de machine depuis et je ne trouve plus trace du polycopié.

Système

J'ai été à l'initiative de la séparation du cours système en deux parties : un cours d'initiation en première année, et un cours un peu plus fondamental en seconde année.

Première année

Le plan du cours système de première année figure dans le tableau. Les polycopiés sont assez succincts, car je prenais le temps d'expliquer au tableau. Les TD ne couvrent en général qu'une partie du cours. Un des objectifs était de montrer le fonctionnement d'un interpréteur de commandes, au moins de façon rudimentaire.

Cours TD
1. Structure d'un SE, différents types d'interface. 1. Initiation aux commandes d'Unix.
2. Le cycle programme 1 : Compilation : différentes étapes, compilation de fichiers séparés, portée et variables externes, fonctions externes 2. Travail du pré-processeur, du compilateur, du linker
3. La mémoire allouée au processus : différences entre le code exécutable et le processus en mémoire (données non initialisées, pile). Allocation dynamique, durée de vie, portée 3. gestion des malloc(), free()et de la pile, variables statiques, externes, globales. (supprimer le suffixe tar du fichier pour garder un .zip, puis décompresser)
4. Bibliothèques, appels système (en C : system(), etc.) 4. hostname(), time(), stat(), system().
5. Processus et multitàche ; tàche de 1er plan, tàche de fond 5. Visualiser les processus.
6. Le programme et le SE : argv, env Options de la ligne de commande. lire l'environnement dans un programme. 6. Lecture et utilisation de l'environnement
7. Les fichiers (types de fichier, programmation en C sous Unix, entrée et sortie standard) 7. un ou deux exercices sur les fichiers + compléter le mini-interpréteur pour qu'il exécute des scripts
8. Compléments sur les utilitaires Unix 8. Exemples d'utilisation
9. écrire des scripts sous Unix (C-shell) 9. Exemple de scripts, .cshrc, avec le corrigé
10. (pas le temps cette année) Debuguer et mettre au point : outils pour la programmation ( make et la re-compilation, tracer un programme (C et Java))

Seconde année

L'objectif était là de donner des notions plus fondamentales sur le système d'exploitation comme instrument de partage de ressources (processeur, mémoire, etc.) entre processus. La première version des TD a été entièrement rédigée par Amal el Fallah et Sylvie Szulmann.

Partage du temps, Partage du/des processeurs : ordonnancement (1) TD1 Alloc processeur ou TD1 Alloc processeur (court) + processus
Partage du/des processeurs : ordonnancement(2) TD/TP Alloc processeur (suite) + code
Partage de la mémoire : Mémoire linéaire, segmentation, swapping TD3 mémoire linéaire
Partage de la mémoire : Mémoire virtuelle TD4 gestion de la mémoire virtuelle
Communication et synchronisation entre processus : tubes et signaux TD5 tubes et signaux
Partage de mémoire et de code : Threads et DLL TD5 tubes et signaux
Synchronisation des Threads : sémaphores, moniteurs TD8-threads
Les E/S TD E/S
Le SGF TD SGF
Gestion des terminaux TD Terminaux

Algorithmique avancée

C'est un cours de seconde année qui s'étend sur 10 semaines. Les cours et les TD sont assez denses, aussi il n'y en a que 8. j'ai cette année fait beaucoup de place à une présentation théorique, mais il n'est pas évident à ce stade de la formation que l'accès direct à l'abstraction soit plus rapide. Le TD1 entre autre est trop long. L'année prochaine sera sans doute un peu plus expérimentale.

Les enseignants peuvent me demander le code si cela les intéresse.

Cours 1 : introduction, piles, files, listes TD 1 : piles, files, listes
Cours 2 : implémentation des SDA TD 2 : implémentation des SDA
Cours 3 :SDA et conception de logiciel TD 3 : Un robot manipulateur de palettes
Cours 4 et 5 : arbres et expressions arithmétiques TD 4 : Arbres TD5 : conversion d'écritures pré-, post- et infixées
Cours 6 : tas, tris , complexité TD 6 : tas
Cours 7 : mesures de performances TD 7 : comparaison des performances de quelques tris
Cours 8 : programmation récursive TD 8 : programmation récursive

Introduction à l'informatique

J'ai essayé deux fois de faire un petit cours en début de formation, pour rassembler quelques notions de base qui ont un impact immédiat sur les manipulations (par exemple la différence entre texte dans une fenètre/buffer et fichier sur le disque, ou la notion de codage implicite dans toute définition de données) et mettre en perspective les cours les uns par rapport aux autres. Ci-dessous la seconde version.
Cours 1 L'ordinateur TD1 Premier contact
Cours 2 Utiliser Unix TD2 Quelques commandes
Cours 3 Codage TD3 Bases, ascii
Cours 4 Entiers TD4 Binaire, octal, hexa
Cours 5 Formats de données, sauvegardes TD5 Exemples de formats
Cours 6 Disques durs TD6 Capacité, temps d'accès
Cours 7 Couche logicielle TD7 Figures dans un terminal
Cours 8 Réseau d'ordinateurs TD8 Disques distants, exécution à distance

Autres cours

Compléments d'algorithmique en L3 informatique appliquée

Le parcours appliqué de la licence informatique est co-organisé par l'Institut Galilée et l'IUT. J'y donne au titre de l'IUT un cours centré sur les automates et les expressions régulières - théorie et pratique. Je n'ai pas encore eu le temps de tout rédiger ; c'est donc une version provisoire que vous trouverez ici. Si vous décelez des erreurs, merci de me les signaler.

Cours de logique modale et représentation des connaissances en master 2 MICR

Je faisais depuis plusieurs années une initiation de 8 à 10h à la logique modale en DEA. C'est maintenant devenu un cours de base du master 2 recherche qui dure 36h (TD compris). J'en ai profité pour faire une rédaction qui, là encore, n'est qu'un premier jet. Par la suite, j'aimerai renvoyer les rappels des bases de la logique à une phase préparatoire et faire plus de place aux extensions ...