Programme des cours 2015-2016
INFO0027-2  
Programming techniques
Durée :
30h Th, 24h Pr, 70h Proj.
Nombre de crédits :
Bachelier en sciences informatiques6
Master en ingénieur civil en informatique, à finalité 5
Master en ingénieur civil en informatique, à finalité 5
Master en sciences informatiques, à finalité6
Master en sciences mathématiques, à finalité6
Master en sciences mathématiques, à finalité6
Nom du professeur :
Laurent Mathy
Langue(s) du cours :
Langue anglaise
Organisation et évaluation :
Enseignement au deuxième quadrimestre
Unités d'enseignement prérequises et corequises :
Les unités prérequises ou corequises sont présentées au sein de chaque programme
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.
Savoirs et compétences prérequis :
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 plusieurs projets: des projets de programmation individuels et en groupes. Le nombre et type de projets varie d'année en année, mais la charge de travail reste similaire.
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 oraux, et projets. Les projets comptent pour 40% de la cote finale, alors que les examens comptent pour 60% (30% chacun). Chaque partie du cours contribue de manière égale à la cote finale.
L'examen écrit est à "notes ouvertes", c'est-à-dire que les étudiants peuvent utiliser les notes officiellement distribuées sur la page myULG du cours.
Les étudiants qui ne soumettent pas au moins la moitié des projets se verront attribuer une cote d'absence pour la session correspondante.
Il n'y a aucune garantie de suivi pour les projets qui doivent être remis en deuxième session.
Stage(s) :
Remarques organisationnelles :
Contacts :