 |  |  |
| INFO0027-2 | Programming techniques
|

 |
| Durée : | 30h Th, 24h Pr, 70h Proj. |
 |
| Nombre de crédits : |
|
 |
| Nom du professeur : | Laurent Mathy |
 |
Langue(s) du cours :
 |
| Langue anglaise |
 |
Organisation et évaluation :
 |
| Enseignement au deuxième quadrimestre |
 |
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.
INFO0902 ou INFO2050
INFO0062 |
 |
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, Q2 |
 |
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.
Il n'y a aucune garantie de suivi pour les projets qui doivent être remis en deuxième session. |
 |
Stage(s) :
 |
| |
 |
Remarques organisationnelles :
 |
| |
 |
Contacts :
 |
|
|
 |