Aller au contenu principal

Examen 3 (20%)

Avant la séance (2h)

L'examen porte sur l'ensemble du contenu du cours. Afin de vous aider dans vos révisions, il est bon de:

  • Revoir les exercices et identifier ceux que vous ne savez pas faire sans votre solution ou le prof
  • Reprendre les éléments de contenu qui y correspondent (vidéos et présentations)

Temps suppl.

Si vous avez droit à du temps supplémentaire, vous devez aviser votre professeur de votre intention de l'utiliser.

Séance d'examen

L'examen dure 2h (plus si vous avez droit à du temps supplémentaire). Il s'agit d'exercices pratiques. On vous donne des fichiers de départ et/ou une description du résultat attendu. Vous rendrez les fichiers complétés.

Vous avez le droit à :

  • Une feuille de note manuscrite recto-verso de format lettre. (Soit 8½ x 11)
Éléments d'évaluation et pondération
  • Implémenter des interfaces et manipuler des listes d’objets à partir d’un diagramme fourni (~30 min, 25 %)

    Évaluer la capacité à implémenter des interfaces et des classes en respectant un diagramme de classes fourni, incluant l’application des principes de programmation orientée objet, les validations requises et la gestion des exceptions. L’évaluation porte également sur la manipulation de collections d’objets.

    Critères de performance :

    • Respect du diagramme de classes fourni.
    • Interfaces et classes correctement implémentées.
    • Encapsulation, validations et exceptions adéquates.
    • Objets créés et manipulés correctement.
    • Manipulation correcte des listes d’objets.
    • Code lisible et structuré.

  • Définir des classes avec héritage et polymorphisme à partir d’un diagramme fourni (~30 min, 25 %)

    Évaluer la capacité à implémenter une hiérarchie de classes en respectant un diagramme fourni, à créer des objets dérivés et à utiliser adéquatement l’héritage et le polymorphisme.

    Critères de performance :

    • Respect du diagramme de classes fourni.
    • Relations d’héritage correctement implémentées.
    • Utilisation adéquate du polymorphisme.
    • Objets dérivés créés et manipulés correctement.
    • Code lisible et structuré.

  • Manipuler des listes et exploiter les relations entre objets (~20 min, 30 %)

    Évaluer la capacité à créer des objets, développer des méthodes permettant de manipuler des listes d’objets et utiliser les propriétés de navigation entre objets.

    Critères de performance :

    • Objets correctement créés.
    • Méthodes conformes aux exigences.
    • Utilisation adéquate des propriétés de navigation.
    • Code lisible et structuré.

  • Définir des tests unitaires (~15 min, 20 %)

    Évaluer la capacité à créer des tests unitaires ciblés pour valider le comportement de méthodes et de propriétés spécifiques. Critères de performance :

    • Les tests demandés sont correctement implémentés.
    • Les tests sont clairs, structurés et exécutés sans erreur.