 |  |  |
| INFO0027-2 | Programming techniques
|

 |
| Durée : | 30h Th, 30h Pr |
 |
| Nombre de crédits : |
|
 |
| Nom du professeur : | Laurent Mathy |
 |
Langue(s) du cours :
 |
| Langue anglaise |
 |
Organisation et évaluation :
 |
| Enseignement durant l'année complète, avec partiel en janvier |
 |
Contenus du cours :
 |
| Le cours se déroule en deux parties: la première partie aborde l'algorithmique comme technique de résolution de problèmes, présentant des algorithmes avancés, en utilisant le C comme langage de référence. La deuxième partie est une introduction à la programmation parallèle sur systèmes multi-coeurs, en utilisant Java comme langage de référence.
Dans la première partie, les sujets suivants sont présentés: programmation du point de vue de la résolution de problèmes; techniques avancées de tri; recherches équilibrées; recherches numériques; algorithmes externes; algorithmes de graphes. Le deuxième partie aborde: les principes de la programmations de processeurs multiples; contention et verrouillage à grande échelle; introduction aux structures de données et algorithmes parallèles; ordonnacement et distribution du travail. |
 |
Acquis d'apprentissage (objectifs d'apprentissage) du cours :
 |
| - Principes de décomposition de programmes complexes;
- conception de programmes efficaces;
- connaissances de techniques d'algorithmiques avancée;
- techniques de programmation parallèle. |
 |
Prérequis et corequis / Modules de cours optionnels recommandés :
 |
| Connaissances en algorithmique de base. Connaissances pratiques du C et de Java. |
 |
Activités d'apprentissage prévues et méthodes d'enseignement :
 |
| Séances de cours et répétitions, impliquant de la résolution de problèmes en classe. Les étudiants font 4 projets: 2 projets individuels (un pour chaque partie du cours) et 2 projets en groupe (un pour chaque partie du cours). |
 |
Mode d'enseignement (présentiel ; enseignement à distance) :
 |
| Séances de cours hedomadaires en présentiel:
- Partie 1 au Q1 semaines 8-14,
- partie 2 au Q2 semaines 7-13. |
 |
Lectures recommandées ou obligatoires et notes de cours :
 |
| Lectures recommandées:
Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press.
Algorithms in C; Sedgewick; Addison Wesley.
The Art of Multiprocessor Programming; Herlihy and Shavit; Morgan Kaufmann. |
 |
Modalités d'évaluation et critères :
 |
| Examens écrits et projets. Les projets comptent pour 40% de la cote finale, alors que les examens comptent pour 60%. Chaque partie du cours contribue de manière égale à la cote finale.
Les examens sont à "notes ouvertes", c'est-à-dire que les étudiants peuvent utiliser les notes officiellement distribuées sur la page myULG du cours.
La première partie du cours sera examinée lors d'un examen partiel en janvier; la deuxième partie du cours sera examinée en juin. Les étudiants qui ne complètent pas les projets seront exclus de l'examen correspondant.
Seul un examen écrit sera organisé en deuxième session: les cotes des projets seront automatiquement reportées en deuxième session, avec les cotes d'absences transformées en zéro. En deuxième session, l'examen portera sur les deux parties du cours. |
 |
Stage(s) :
 |
| |
 |
Remarques organisationnelles :
 |
| |
 |
Contacts :
 |
|
|
 |