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 |