ENSE3 1A
UE Approfondissements filière SICOM
Informatique
1. Actualités
A faire avant la séance 5 - 6 du 25/05
-
Relire attentivement le code écrit en séance pour la question 1 du TP chanson,
disponible dans le dépot "livecoding" des enseignants 1a_ense3_pre_sicom_livecoding_2025
A votre avis, le 2eme programme de test test-song-02.c fonctionne-t-il correctement ? - Lire les question 3 et 4 du TP Chanson :
Sujet tp chansons
Réfléchir à la la fonction song_parse (question 3), qui sera corrigée en début de séance.
- Première lecture des fiches sur les listes chaînées. Compter une petite heure : Le type abstrait "Liste" Introduction aux liste chaînées dynamiques en C, partie 1 Introduction aux liste chaînées dynamiques en C, partie 2
A faire avant les séance 2 et 3 :
- Réviser les commandes du Terminal vues en cours, et celles relatices au gestionnaire de version Git exemples de commande dans le Terminal ou bien le TP en PDF : TP Shell Linux - jusqu'au 3.1 point 5 seulement
- Lire la fiche "compilation séparée en C" : Compilation séparée et options de gcc
- Travailler la fiche pédagogique Introduction à la notion de type abstrait de données"
- Lire la première page du sujet de TP "bibliothèque de chanson", pour être efficace en séance: Sujet TP "bibliothèque de 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 : nicolas.castagne@grenoble-inp.fr, francois.cayre@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
- Compilation et Makefile
Compléments Makefile [© ENSIMAG] Notion de module en C et fichier header .h Memento des commandes Shell (© Michel Blanc)
Types abstraits et structures de données en C
Notion de type abstrait
[indispensable] Introduction à la notion de type abstrait de donnéesListes en langage C
[optionnelle] Du besoin du type abstrait Liste en programmation [indispensable] Le type abstrait "Liste" Introduction aux liste chaînées dynamiques en C, partie 1 Introduction aux liste chaînées dynamiques en C, partie 2 [indispensable] Implémentation de référence des listes chaînées dynamiques en C [optionnelle] Listes en langage C : quelques variantes Introduction aux listes génériques en CPiles et Files en langage C
Le type abstrait "Pile" et son implémentation par liste chaînée Le type abstrait "File" et son implémentation par liste chaînée circulaire [optionnelle] Pile et File : implémentation au moyen d'un tableauDictionnaires / tables de hachage en langage C
Table d'association ou table de HashageStructures arborescentes
[optionnelle] TAD tas (heap), Arbres Binaires Parfait et tri par tas [optionnelle] Structures arborescentes en C [optionnelle] Arbre Binaire de RechercheTP et mini projet
Séance 1 : découverte du Shell Linux et de l'outil de gestion de version Git
TP Shell Linux - jusqu'au 3.1 point 5 seulement
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 : 1a_ense3_pre_sicom_livecoding_2025
Quelques exercices qu'on pourra utiliser au fil des séances...
Exercices - 014. Liens et autres ressources complémentaires
Compléments sur le langage C
Contrat de fonction, préconditions et fonction assert() Prototype de la fonction main() Types énumérés Les flux standard en C : stdin, stdout, stderrSlides Phelma 1A
Slides cours Phelma 1A 1er semestre. Voir : Pointeurs, Allocation dynamique, Fichiers, Chaînes de caractèresAutres fiches langage C [en cours de rédaction]
Introduction aux pointeurs Arithmetique de pointeurs Pointeurs et tableaux Pointeurs et fonctions [*** en cours de rédaction ***]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
-
Sur Windows ou MacOSX, installer l'outil de virtualisation et la machine virtuelle phelma.
- Suivre ces instructions
- Si vous rencontrez des problèmes pour l'installation, cherchez d'abord dans la : FAQ
- Et si la réponse à votre problème ne s'y trouve pas, envoyez-nous sa description précise par mail
-
Votre machine est déjà sous Linux ?
- Installer les paquetages suivants avec votre gestionnaire de paquetage préféré :
autotools-dev autoconf make gcc clang valgrind atom
- Installer les paquetages suivants avec votre gestionnaire de paquetage préféré :