Composante
Polytech Grenoble - INP, UGA
Description
Ce cours présente et approfondit le paradigme de la programmation impérative. Il donne aux étudiants les outils pour modéliser des situations complexes et concevoir des solutions efficaces.
À l'issue de cet enseignement, l'étudiant sera capable de maîtriser la programmation avancée en langage C :
- Manipuler des fichiers textes et binaires
- Manipuler des pointeurs
- Manipuler les arguments de la ligne de commande
- Déterminer le coût en temps des algorithmes dans le pire des cas
- Élaborer des algorithmes récursifs
- Manipuler les structures de données complexes du langage C
1. Pointeurs, allocation dynamique, Makefile et manipulation des fichiers
2. Récursivité : appels de sous-programmes et la pile d'exécution, paradigme « diviser pour régner »
3. Algorithmes de tri et leur complexité : tri par sélection, tri rapide, tri par insertion séquentielle, tri fusion
4. Structures de données élémentaires : Liste, Ensemble, Pile, File
5. Listes chaînées : simplement chaînées, doublement chaînées
6. Arbres : arbres binaires, arbres binaires de recherche
Objectifs
Heures d'enseignement
- Algorithmique et programmation 2 / Algorithms and programming - CMTDCours magistral - Travaux dirigés66h
Pré-requis recommandés
- Cours "ALGORITHMIQUE ET PROGRAMMATION 1" (IESE3)
- Connaissance des bases de la compilation
- Maîtrise de l'environnement de programmation Linux
Période
Semestre 6
Évaluation initiale / Session principale - Épreuves
Libellé | Nature de l'enseignement | Type d'évaluation | Nature de l'épreuve | Durée (en minutes) | Nombre d'épreuves | Coefficient de l'épreuve | Remarques |
---|---|---|---|---|---|---|---|
70/100 |
Bibliographie
"Types de données et Algorithmes" par Christine Froidevaux, Marie-Claude Gaudel et Michèle Soria
"Le langage C - Norme ANSI" par Brian W. Kernighan et Dennis M. Ritchie