INF7845 - Principes avancés des langages à objets

Session d’automne 2025

Documents

Échéancier approximatif

Laboratoires

Dans le cadre du cours, 4 laboratoires notés seront mis en place.

Une connaissance minimale préalable sera demandée (créer des classes, compiler, exécuter). Des connaissances spécifiques seront indiquées environ une semaine avant le début des lab.

  • Rappel d’installation et de compilation pour les langages étudiés en lab.
  • Lab1: spécialisation et sous-typage: Java (et/ou C#), C++ (et/ou Nit), Python 3 et Ruby. Première partie (à faire à la maison)
  • Lab2: généricité: Java, C#, C++, Python3 (et/ou Ruby) et Nit (et/ou Eiffel)
  • Lab3: meta: Ruby (ou Python3) et Java (et/ou C#)
  • Lab4: raffinement: Nit et Java (et/ou C#)

Présentation d’articles

Une liste d’articles est disponible dans ce répertoire partagé OneDrive. Un article qui n’est pas dans la liste peut être acceptable, demandez au professeur.

  • Préparer une présentation orale avec support visuel (diapositives en pdf) + présentation imprimée (3x2)
  • 20 minutes + 10 minutes de questions
  • Contenu :
    • Mise en contexte : année, domaine de la conférence/ du journal
    • Problématique générale, état de l’art
    • Question de recherche, cadre de la recherche (scope)
    • Méthodologie, réalisation, expérimentation
    • Validation
    • Résultats et discussion
    • Limites

Artices choisis et ordre de présentation

  • Capabilities for Java: Secure Access to Resources. Hugo Genesse
  • Java Typestate Checker. Benjamin Zhang
  • Understanding Type script from the share point. Hamidreza Maneshti
  • The concept of class invariant in object-oriented programming. Kenza Homce
  • Modular Moose: A new generation software reverse engineering environment. Kémo Sané
  • Do Developers Benefit from Generic Types? Mehdi Medkour

Travail de session

Sujets choisis

  • Programmation parallèle avec des Acteurs. Benjamin Zhang
  • Développement d’une mini-bibliothèque en Nit pour la manipulation d’images. Kenza Homce
  • Développement de bibliothèque en Pharo. Kémo Sané
  • Étude d’un langage de programmation: Kotlin. Mehdi Medkour

Anciens examens