ENSE3 1A
UE Approfondissements filière SICOM
Informatique
1. Actualités
Pour la séance 3 :
Il vous est demandé de vous préparer à la notion de contrat de fonction
L'objectif de cette séance est de finir l'exercice n°2 du TP Chansons
2. Présentation du module
Objectifs
Affermir vos connaissances en programmation, en préparaton de la 2A SICOM :
- Sur l'outillage du programmeur :
- Shell Linux, Compilation, Git, Makefile, Valgrind, Debugger
- En programmation et génie logiciel :
- Gestion de projet logiciel, analyse, définition de contrat et prototypes de fonctions, test, debuggage, ...
- En langage C :
- Pointeurs, Allocation dynamique, Types structurés, Entrées/sorties (fichiers), chaînes de caractères.
- Types abstraits de données ; listes, listes génériques en C...
Organisation
10 séances de 2 heures.
Cours | TD | TP à chaque séance.
TP : pour l'essentiel, un sujet progressif en mode "projet".
Évaluation
Contrôle continu + DS 1h, sur papier. Modalités précisées ultérieurement.
Contacter les enseignants
Par mail, avec SVP [App ENSE3] dans l'objet : vincent.fristot@grenoble-inp.fr .
3. Ressources documentaires du Cours
Ces ressources ne regroupent pas l'ensemble des éléments de cours pour ce module. Elles seront complétés par divers documents (live coding, slides, ...) qui seront précisés durant les séances.
Environnement de travail et outillage
Outillage pour développer en C A connaître notamment (liens sur le site précédent) :
- Gestionnaire de version Git
- Valgrind et débugger
Memento des commandes Shell (© Michel Blanc) Compléments Makefile [© ENSIMAG]
Rappels en programmation et langage C
Polycopié cours Phelma 1A 1er semestre Voir notamment :
- Types du langage C
- Pointeurs, Allocation dynamique, Fichiers, Chaînes de caractères
- Contrat de fonctions, assertion
- Compilation et Makefile
Types abstraits et structures de données en C
Polycopié cours Phelma 1A 2eme semestre Voir notamment :
- Notion de type abstrait
- Fiches listes chaînées
- Diapos listes chaînées
TP et mini projet
Séance 1 : découverte du Shell Linux et de l'outil de gestion de version Git
Séance 1 et suivantes : mini-projet "bibliothèque de chansons"
Sujet TP "bibliothèque de chansons" fichier texte de chansons sans erreur (utliser clic droit, enregistrer sous) fichier texte de chansons avec des erreurs (utliser clic droit, enregistrer sous)
Accès au dépot "livecoding" des enseignants : https://gitlab.ensimag.fr/fristotv/1a_e3_pre_sicom_livecoding_2026
Quelques exercices qu'on pourra utiliser au fil des séances...
4. Liens et autres ressources complémentaires
Supports de cours Phelma 1A S5 - polycopié et jeu de transparents
https://ens_phelma.pages.ensimag.fr/www_info_1a_s1_25_26/site_du_module/supports.html
Supports de cours Phelma 1A S6
Polycopié cours Phelma 1A 2eme semestre
Outillage pour développer en C, Phelma 1A
Outillage pour développer en C
Bibliographie :
- Robert Sedgewick : Algorithms in C, Parts 1-5 (Bundle): Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms, Addison-Wesley, 2002, 0201756080
- C.Froidevaux, M.C.Gaudel, M.Soria : Types de données et algorithmes , McGraw-Hill, 1990
- A. Aho, J. Hopcroft, J. Ullman. Data structures and algorithms .Addison-Wesley, 1983.
- Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest : Introduction to Algorithms. MIT Press and McGraw-Hill., Third Edition. MIT Press, 2009. ISBN 978-0-262-53305-8.
5. Travailler sur son poste personnel
... comme si vous étiez sous Linux, c'est possible ! Avec soit une machine virtuelle, soit Docker. Voir le Docker ou la machine virtuelle sur le site "environnement de travail en C de Phelma"

ENSE3 1A - Approfondissement SICOM - informatique
