INF1010 - Programmation orientée objet
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
- mar. 20 octobreRemise du TP3 avant 23h30 ; cours de révision
- ven. 23 octobreContrôle périodique, 18h30 à 20h30, sur Moodle Examen, documentation papier ou clé USB permise (modules 1 à 7)
- mar. 27 octobreCours : STL, conteneurs et itérateurs ; quiz 7 du mercredi 18h30 au vendredi 23h59 ; début du TP4 en labo
- mar. 3 novembreCours : STL, algorithmes, foncteurs, lambdas ; quiz 8
- mar. 10 novembreCours : variables de classe, exceptions, introduction à Python ; quiz 9
- mar. 17 novembreCours de révision ; remise du TP4 avant 23h30 ; début du TP5 (Python)
- mar. 1er décembreRemise du TP5 avant 23h30 (pas de cours les 24 novembre et 1er décembre)
- lun. 7 décembreExamen final, 9h30, sur Moodle Examen, toute la matière, documentation permise
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
- 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.
- 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).
- 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.
- 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).
- 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
- Contrôle périodique (1 h 50) et examen final : sur Moodle Examen, toute documentation sur papier ou sur clé USB ; questions de programmation C++ (analyse du problème, conception du programme, écriture de code). Vérifiez vous-même que vos fichiers s'ouvrent sur la clé.
- TP en équipe de deux, de la même section ; remise sur Moodle, un seul membre soumet, les deux vérifient ; retard = 0. Compilation sans erreur ni avertissement (
-std=c++20 -Wall -Wextra -pedantic-errors), liste d'initialisation obligatoire, définitions dans le .cpp dans l'ordre du .h. - Les systèmes d'IA générative sont interdits pour les TP, quiz, intra et final.
- Centre de consultation du lundi au vendredi, 11h30 à 14h30, au M-4018.
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.