No description
- C 71.3%
- Makefile 13.3%
- Lua 12.5%
- TeX 2.7%
- Shell 0.2%
| examens | ||
| exemples | ||
| ressources | ||
| slides | ||
| tp | ||
| .gitignore | ||
| LICENSE.md | ||
| README.md | ||
| todo.md | ||
Programmation séquentielle ISC_14 / sISC_12
Informations sur le cours
- mardi A503 20h – 21h30
- jeudi A503 17h — 18h30
Les séances annoncées comme théoriques sont obligatoires, les autres sont là pour vous permettre d’avancer vos travaux pratiques.
Plan du cours
- Semaine 01 – Présentation
- Semaine 01 – Le terminal
- Semaine 01 – Mon premier programme
- Semaine 01 – Les variables
- Semaine 01 – TP 1
- Semaine 01 – Git
- Semaine 02 – TP 2 – Les types
- Semaine 02 – Les structures de contrôle
- Semaine 03 – TP 3 – Le nombre secret
- Semaine 03 – Les fonctions
- Semaine 03 – TP 4 – Les structures de contrôle, suite…
- Semaine 03 – TP 5 – Les fonctions
- Semaine 04 – Créons nos propres types
- Semaine 04 – Les limites du
scanf - Semaine 04 – TP 6 – Le crible d’Ératosthène
- Semaine 04 – TP 7 – Anagrammes et palindromes
- Semaine 05 – Les pointeurs et l’allocation dynamique
- Semaine 05 – TP 8 – Le calcul d’intégrale
- Semaine 06 – La compilation séparée
- Semaine 06 – Introduction à make
- Semaine 06 – TP 9 – Pointeurs et mémoire dynamique
- Semaine 08 – Évaluation machine automne + débrief éval
- Semaine 10 – Les piles statiques À séparer en deux, partie gestion d’erreur
- Semaine 10 – TP 10 – Démineur
- Semaine 11 – Les piles dynamiques
- Semaine 11-12 – TP 11 – Annuaire
- Semaine 13 – La file d’attente
- Semaine 13 – TP 11 bis - Annuaire en liste chainée
- Semaine 14 – TP 12 – Piles et tri à deux piles
- Semaine 16 – Évaluation machine hivers + débrief éval
- Fin de semestre
- Semaine 17 – Types opaques et
static - Semaine 17-18 – TP 13 – File circulaire opaque
- Semaine 18 – Lecture de fichiers
- Semaine 19-20 – TP 14 – Morse
- 28 – examen machine hiver
- 32 – Listes doublement chainées
- 32 – TP 15 – Listes doublement chaînées
- 29 – Tests unitaires
- XX – Puissance 4
- Dojo
- Puissance 4
- arbres quaternaires (algo 21+22)
- tp image
- b-arbres (algo-23+24)
- graphes (algo-25)
Objectifs d’apprentissage
À la fin du cours, l’étudiant·e doit être capable de :
- maîtriser les bases de la programmation séquentielle ;
- choisir et implémenter les structures de données appropriées à la résolution des problèmes proposés ;
- implémenter un algorithme dans un langage de programmation impérative ;
- mettre au point un programme complet ;
- collaborer et travailler en groupe ;
- appliquer des tests unitaires avec une méthodologie de développement piloté par les tests ;
- utiliser un outil de gestion de version et d’intégration continue.
Contenus
Programmation impérative
- Structure d’un programme
- Structures de contrôles
- Déclarations, types de base
- Notion de variable
- Structures statiques et dynamiques
- Fonctions et procédures, récursivité, librairies
- Pointeurs
Structures de données
- Tableaux statiques, dynamiques
- Les listes simplement et doublement chainées, les listes circulaires
- Les piles et les files d’attentes
- Les arbres
Organisation des travaux pratiques
- Exercices courts (sur une ou deux séances).
- Travaux pratiques long découpés en sous parties indépendantes. Ces parties sont intégrées dans une application complète.
- Présentation orale avec support des travaux pratiques longs.
- Introduction aux tests unitaires et au développement piloté par les tests.
- Introduction à l’utilisation d’un logiciel de gestion de version et à l’intégration continue.
Les ressources
Le langage C
- The C Book, de Mike Banahan, Declan Brady & Mark Doran, janvier 1991
- Le C en 20 heures, d’Eric Berthomier & Daniel Schang, juin 2013
- A tutorial on pointers and arrays in C, de Ted Jensen, v1.2 septembre 2003
- C Traps and Pitfalls, d’Andrew Koenig
Les débogeurs
- Debugging with GDB, de Richard Stallman, Roland Pesch, Stan Shebs, et al.
- Decouverte du débogueur DDD, de Hiko Seijuro, août 2007
Aide-mémoires
- Bite Size Command Line, par Julia, 2018
- VIM — Carte de référence rapide, de Laurent Grégoire, v1.7 2003
- Aide mémoire sur les Makefiles
Me contacter
- Gregory Trolliet
- gregory.trolliet@hesge.ch
- @gregory.trolliet:matrix.org
Informations de compilation
Latex svg
Il faut avoir le paquet librsvg2-bin.
Évaluations
Automne
- aléatoire
- string
- allocation dynamique
- récursivité
- tableaux
Hiver
- récursivité
- factorielle?
- liste chainée et récursivité: triangle de Pascal (https://gitedu.hesge.ch/programmation_sequentielle/examens/2022_aut_b/-/blob/main/ex3/ex3.md?ref_type=heads)
- listes/piles
- liste chainée (https://gitedu.hesge.ch/programmation_sequentielle/examens/2022_aut_b/-/blob/main/ex2/ex2.md?ref_type=heads)
- stock que des nombres positifs, les nombres négatifs en entrée sont les indices à supprimer
- types opaques +
Printemps
- lecture de fichier
À modifier
- rajouter un cours spécifique sur les listes chainées simples
- rajouter un cours sur les erreurs (Sanitizers) : heap buffer overflow