2024-2025 / INFO0027-2

Programming techniques

Algorithmics

Software patterns

Durée

Algorithmics : 14h Th, 14h Pr, 40h Proj.
Software patterns : 10h Th, 10h Pr, 30h Proj.

Nombre de crédits

 Bachelier en sciences informatiques5 crédits 
 Master en science des données, à finalité spécialisée5 crédits 
 Master : ingénieur civil en science des données, à finalité spécialisée5 crédits 
 Master : ingénieur civil en informatique, à finalité spécialisée en "management"5 crédits 
 Master : ingénieur civil en informatique, à finalité spécialisée en "intelligent systems"5 crédits 
 Master : ingénieur civil en informatique, à finalité spécialisée en "computer systems security"5 crédits 
 Master en sciences mathématiques, à finalité approfondie6 crédits 
 Master en sciences mathématiques, à finalité didactique6 crédits 

Enseignant

Algorithmics : Laurent Mathy
Software patterns : Laurent Mathy

Coordinateur(s)

Laurent Mathy

Langue(s) de l'unité d'enseignement

Langue anglaise

Organisation et évaluation

Enseignement au deuxième quadrimestre

Horaire

Horaire en ligne

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 de l'unité d'enseignement

Algorithmics

Cette 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 aux patterns de programmation, 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.

Software patterns

Cette 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 aux patterns de programmation, 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.

Acquis d'apprentissage (objectifs d'apprentissage) de l'unité d'enseignement

Algorithmics

- Principes de décomposition de programmes complexes; - conception de programmes efficaces; - connaissances de techniques d'algorithmiques avancée; - application des patterns de programmation

Software patterns

- Principes de décomposition de programmes complexes; - conception de programmes efficaces; - connaissances de techniques d'algorithmiques avancée; - application des patterns de programmation

Savoirs et compétences prérequis

Algorithmics

Connaissances en algorithmique de base. Connaissances pratiques du C et de Java.
INFO0902 ou INFO2050
INFO0062

Software patterns

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

Algorithmics

Classe inversée, 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.

Software patterns

Classe inversée, 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, à distance, hybride)

Algorithmics

Combinaison d'activités d'apprentissage en présentiel et en distanciel


Explications complémentaires:

Q2. Classe inversée.
En fonction de la situation sanitaire, la séance hebdomataire pourrait être tenue en ligne.

Software patterns

Combinaison d'activités d'apprentissage en présentiel et en distanciel


Explications complémentaires:

Q2. Classe inversée.
En fonction de la situation sanitaire, la séance hebdomataire pourrait être tenue en ligne.

Supports de cours, lectures obligatoires ou recommandées

Algorithmics

Lectures recommandées:
Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press.
Algorithms in C; Sedgewick; Addison Wesley.
Design patterns; Gamma, Helm, Johnson, Vlissides; Addison-Wesley.

Software patterns

Lectures recommandées:
Introduction to algorithms; Cormen, Leiserson, Rivest and Stein; MIT press.
Algorithms in C; Sedgewick; Addison Wesley.
Design patterns; Gamma, Helm, Johnson, Vlissides; Addison-Wesley.

Modalités d'évaluation et critères

Algorithmics

Examen(s) en session

Toutes sessions confondues

- En présentiel

évaluation écrite

Travail à rendre - rapport

Interrogation(s) hors session


Informations complémentaires:

Examen écrit, et projets. Les projets comptent pour 40% de la cote finale, alors que l'examen compte pour 60%. 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 myULiege du cours.

Il y aura une interrogation obligatoire sur chaque projet, après leur soumission. La note obtenue à cette interrogation comptera pour 15% de la note de ce projet, la soumission comptant pour 85%. Cependant, si la note obtenue à l'interrogation est inférieure ou égale à 9/20, la soumission recevra une note de 0 (et ne sera pas corrigée).

Toute utilisation d'outils non documentée, y compris des outils d'intelligence artificielle générative, peut résulter en une suspicion de fraude.

Les étudiants qui ne soumettent pas au moins la moitié des projets se verront attribuer une cote d'absence pour la session correspondante.

Toutes les ressoumissions sont individuelles.
Il n'y a aucune garantie de suivi pour les projets qui doivent être remis en deuxième session.

Software patterns

Examen(s) en session

Toutes sessions confondues

- En présentiel

évaluation écrite

Travail à rendre - rapport

Interrogation(s) hors session


Informations complémentaires:

Examen écrit, et projets. Les projets comptent pour 40% de la cote finale, alors que l'examen compte pour 60%. 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 myULiege du cours.

Il y aura une interrogation obligatoire sur chaque projet, après leur soumission. La note obtenue à cette interrogation comptera pour 15% de la note de ce projet, la soumission comptant pour 85%. Cependant, si la note obtenue à l'interrogation est inférieure ou égale à 9/20, la soumission recevra une note de 0 (et ne sera pas corrigée).

Toute utilisation d'outils non documentée, y compris des outils d'intelligence artificielle générative, peut résulter en une suspicion de fraude.

Les étudiants qui ne soumettent pas au moins la moitié des projets se verront attribuer une cote d'absence pour la session correspondante.

Toutes les ressoumissions sont individuelles.
Il n'y a aucune garantie de suivi pour les projets qui doivent être remis en deuxième session.

Stage(s)

Remarques organisationnelles et modifications principales apportées au cours

Contacts

Algorithmics

  • Coordinateur: L. Mathy
  • Assistant: Loïc Champagne, lchampagne@uliege.be

Software patterns

  • Coordinateur: L. Mathy
  • Assistant: Loïc Champagne, lchampagne@uliege.be

Association d'un ou plusieurs MOOCs