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 :

TP et mini projet

 

Séance 1 : découverte du Shell Linux et de l'outil de gestion de version Git

TP Shell Linux

 

 

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...

Exercices - 01

 

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"