Site de l'Université | English version
Programme des cours 2012-2013Dernière mise à jour : 18/06/2013
INFO0027-2  Programming techniques

Durée :  30h Th, 30h Pr
Nombre de crédits :  
Bachelier en sciences informatiques, 2e année6
Année préparatoire au master en sciences informatiques6
Master en ingénieur civil en informatique, à finalité approfondie, 2e année5
Master en sciences informatiques6
Master en sciences mathématiques, à finalité spécialisée en informatique, 2e année6
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 :  


imageAccueil
imageRecherche par faculté
imageRecherche par enseignant
imageRecherche par cours

Administration de l'Enseignement et des Etudiants - Responsable de l'information : Monique Marcourt, Direction générale à l'Enseignement et à la Formation - Réalisation SEGI