Polytechnique Montréal | Automne 2026 | Prof. Martine Bellaïche

INF1010 - Programmation orientée objet

Manuel : Horstmann, Big C++: Late Objects, 3e éd. | Évaluation : TP 27 % (TP1 3 %, TP2 5 %, TP3 8 %, TP4 9 %, TP5 2 %) | 9 quiz 8 % | Contrôle périodique 25 % (vendredi 23 octobre, 18h30) | Examen final 40 % (lundi 7 décembre, 9h30)

Ce site reprend la matière du cours, semaine par semaine, avec des démonstrations interactives (exécution pas à pas, « devinez l'affichage », simulateurs de pointeurs intelligents, de vecteurs, de conversions, d'exceptions), un quiz par module, des exercices du type de ceux des intras passés avec corrigés dépliables, une page de préparation à l'intra, une autre pour le final, et un aide-mémoire imprimable, permis à l'examen. Tout fonctionne hors ligne : copiez le dossier sur une clé USB.

Matière de l'intra (modules 1 à 7)

Module 1 - 25 août

Concepts de base et allocation dynamique

Classe et objet, encapsulation, constructeurs et destructeur, liste d'initialisation, pile et tas, new / delete, tableaux dynamiques.

3 démos interactives | quiz de 15 questions | 6 exercices corrigés

Module 2 - 1er septembre

Méthodes constantes, passage de paramètres, vecteurs

const, valeur / référence / référence constante / pointeur, résolution de surcharge, std::vector et boucles sur intervalle.

3 démos interactives | quiz de 15 questions | 6 exercices corrigés

Module 3 - 4 septembre

Pointeurs intelligents, composition et agrégation

Possède ou utilise, qui détruit, unique_ptr et std::move, shared_ptr et compteur de références, le modèle des TP1 et TP2.

3 démos interactives | quiz de 15 questions | 6 exercices corrigés

Module 4 - 8 septembre

Pointeur this, surcharge d'opérateurs, copie et affectation

Appels en cascade, membre ou friend, signatures de tous les opérateurs, copie superficielle et profonde, règle des trois.

2 démos interactives | quiz de 15 questions | 6 exercices corrigés

Module 5 - 15 septembre

Héritage et polymorphisme (partie 1)

est un, droits d'accès, ordre de construction et de destruction, redéfinition, virtual et override, liaison statique ou dynamique.

5 démos interactives | quiz de 15 questions | 6 exercices corrigés

Module 6 - 22 septembre

Classes abstraites et conversion d'objets

Méthodes virtuelles pures, interfaces, collections hétérogènes, découpage, static_cast, dynamic_cast, dynamic_pointer_cast.

2 démos interactives | quiz de 15 questions | 5 exercices corrigés

Module 7 - 6 octobre

Héritage multiple, fonctions et classes génériques

Bases multiples, ambiguïtés, diamant et héritage virtuel, template, Liste<T>, sommer et filtrerParType du TP3.

2 démos interactives | quiz de 13 questions | 5 exercices corrigés

Contrôle périodique - vendredi 23 octobre, 18h30

Préparation à l'intra

Stratégie par type de question, quiz de révision de 31 questions, quatre exercices de synthèse au format examen, chronomètre et liste de vérification.

quiz de 31 questions | 4 exercices corrigés

Référence - permise à l'examen

Aide-mémoire C++ imprimable

Toute la syntaxe du cours en tableaux : signatures des opérateurs, règle des trois, héritage, casts, templates, STL, exceptions, Python, et les erreurs de compilation fréquentes.

Matière du final (modules 8 à 10, avec les modules 1 à 7)

Module 8 - 27 octobre

STL : conteneurs et itérateurs

vector, deque, list, set, map, multimap, unordered_map, adaptateurs, itérateurs et invalidation, choisir le bon conteneur.

3 démos interactives | quiz de 14 questions | 5 exercices corrigés

Module 9 - 3 novembre

STL : algorithmes, foncteurs, fonctions lambda

find_if, count_if, sort avec comparateur, accumulate, transform, erase-remove, foncteurs avec état, lambdas et captures.

3 démos interactives | quiz de 13 questions | 5 exercices corrigés

Module 10 - 10 novembre

Variables de classe, exceptions, introduction à Python

static, throw / try / catch, hiérarchie std::exception, classes d'exception, dépilement, et la traduction des concepts du cours en Python.

2 démos interactives | quiz de 15 questions | 5 exercices corrigés

Examen final - lundi 7 décembre, 9h30

Préparation au final

Stratégie pour les questions STL, foncteurs, lambdas, exceptions et Python, quiz de révision sur les dix modules, cinq exercices de synthèse au format examen, chronomètre et liste de vérification.

1 démo interactive | quiz de 33 questions | 5 exercices corrigés

Calendrier de la session

Les quiz comptabilisés (3 essais, meilleure note retenue) sont ouverts du mercredi 18h30 au vendredi 23h59 de la semaine du cours. Les notes de TP ne comptent que si l'intra ou le final est réussi à 40 % ou plus.

Comment utiliser ce site

  1. Théorie : chaque module suit l'ordre du cours, avec le code des TP comme fil conducteur. Les encadrés « Question d'examen classique » signalent ce qui est tombé aux intras passés.
  2. Démos : exécutez le code pas à pas (constructions, destructions, pointeurs), devinez l'affichage avant de vérifier, manipulez les simulateurs (shared_ptr, vector, liaison dynamique, conversions, exceptions, algorithmes).
  3. Quiz : 12 à 15 questions par module ; le meilleur score est mémorisé dans ce navigateur. Lisez les explications, elles contiennent la justification attendue aux vrai/faux.
  4. Exercices : écrivez le code sur papier ou dans un éditeur avant de déplier la solution ; cochez « Fait ». Les énoncés marqués « Intra » viennent des séances de révision d'intras passés (A2018, H2019).
  5. Avant l'examen : les pages Intra et Final (stratégie, quiz de révision, synthèses chronométrées) et l'aide-mémoire à imprimer ou à mettre sur la clé USB avec le site.

Rappels du plan de cours

Les données de progression (scores de quiz, exercices cochés, thème) sont stockées uniquement dans ce navigateur. Aucune connexion internet n'est nécessaire.