Version sans JavaScript, en lecture seule : les ateliers, les quiz et l’exécution du code n’y sont pas. Version complète · Catalogue · Se connecter
Support de cours
Le contrat du module, et la carte des notions
Ce qui est attendu, comment c'est noté, ce que l'assistant a le droit de faire, et les vingt-huit notions du module avec la question d'épreuve de chacune des treize certifiées.
Ce texte est à lire en séance 0, avec le test des prérequis. Il contient tout ce que le module vous demandera, et rien d'autre ne sera exigé en fin de module.
Le contrat
Le calendrier réel
Le module comprend neuf créneaux de cours, deux créneaux de projet, une journée avec Fabien ESCOURBIAC et une soutenance, soit 15 h 45 de cours au total.
| Quand | Quoi |
|---|---|
| mer 23/09, 8 h 30 | Cours : relations entre classes, héritage et composition, interfaces |
| mar 06/10, 13 h 30 | Lancement du projet, constitution des équipes, à distance, avec F. ESCOURBIAC |
| jeu 15/10, journée | Tests unitaires et pratiques professionnelles, avec F. ESCOURBIAC |
| mar 20/10, 13 h 30 | Projet : second suivi, à distance, avec F. ESCOURBIAC |
| mer 21/10, journée | Cours : 6 séquences |
| ven 23/10, 10 h 15 | Cours |
| mar 03/11, 13 h 30 | Cours, remédiation, révision |
| mer 04/11, 13 h 30 à 17 h | Soutenance, salles 315 et 316 |
| après les cours | Épreuve écrite individuelle, sur papier |
Il y a trois périodes sans cours : du 24/09 au 05/10, du 07/10 au 19/10 et du 24/10 au 02/11. Chacune a sa feuille de route, prévue pour deux heures de travail par semaine au plus, ce qui tient compte de votre rythme d'alternance.
Organisation des séquences
Chaque notion est traitée en une séquence de 45 minutes, toujours dans le même ordre : une situation, sept minutes d'explication, une pause où vous choisissez votre niveau, et un exercice vérifié par des tests fournis.
Le module distingue trois niveaux d'exigence, annoncés dès le départ :
- Socle : 13 notions, certifiées individuellement, sur papier et sans machine. Ce sont les compétences que le module garantit.
- Lecture : le polycopié et les quiz. Ces contenus sont abordés, mais ne sont pas certifiés en profondeur.
- Projet : évalué sur votre production, avec l'assistant autorisé, et à l'oral.
À chaque pause, vous choisissez librement votre niveau. Il n'y a pas de groupes de niveau : personne n'est classé une fois pour toutes.
Les exercices du socle proposent trois indices, du plus vague au plus détaillé. Les consulter n'est pas pénalisé ; si vous êtes bloqué, il vaut mieux s'en servir que perdre du temps.
L'assistant de génération de code
L'assistant est interdit dans certaines activités et attendu dans d'autres.
Interdit : pendant les exercices du socle, les quiz, le test des prérequis et l'épreuve écrite. Ces activités servent à vérifier que vous savez lire un code, y repérer un défaut et le corriger. Si un assistant répond à votre place, le résultat ne dit plus rien de votre niveau, et vous perdez une indication utile.
Attendu : sur le projet, sur les défis et à l'oral. Formuler une demande précise, vérifier la réponse, garder ce qui est correct et écarter le reste fait partie du métier. Cette compétence est évaluée, en particulier votre capacité à repérer les erreurs de l'assistant.
Aucun détecteur ni logiciel de surveillance n'est utilisé. Les vérifications se font sur papier, ou à l'oral en vous demandant de justifier votre propre code.
Ce qui est noté
La note repose sur deux évaluations, et la première conditionne la seconde.
- L'épreuve écrite, sans IA, après la fin des cours : treize questions, une par notion du socle, sur du code à lire, diagnostiquer et corriger, en 1 h 30 à 2 h. Il n'y a pas de question de cours : chaque question porte sur un code fourni, dont il faut repérer et expliquer les défauts.
- Le projet et sa soutenance, avec IA autorisée. Sont évalués la maîtrise des concepts, la qualité de la conception, le travail en équipe et votre capacité à expliquer et défendre votre code.
Le test des prérequis de la séance 0 n'est pas noté ; il sert à repérer ce que vous devez revoir.
Pourquoi ce format
Ce format peut donner l'impression d'apprendre moins qu'en cours magistral, puisque l'exposé dure sept minutes par séquence au lieu d'une heure. Les mesures montrent pourtant qu'on apprend davantage ainsi. Un cours fluide donne une impression de compréhension, mais c'est l'effort pour retrouver une notion en mémoire qui permet de la retenir.
Vous aurez sans doute vu moins de choses que dans d'autres modules, mais vous saurez en faire davantage.
La carte des notions
Une notion est une chose que vous devez savoir faire, énoncée par un verbe dont on peut vérifier la réalisation. Le module en compte vingt-huit : 13 au socle (S), 3 acquis de COOA (A), 8 en lecture (L) et 4 en projet (P).
Les treize notions du socle et leur question d'épreuve
Le tableau donne la forme exacte des treize questions de l'épreuve écrite. Chaque question porte sur un extrait de code fourni avec le sujet.
| Séq. | Date | Notion | La question d'épreuve | Chapitre |
|---|---|---|---|---|
| 1 | 23/09 | N8 Nommer la relation entre deux classes, et dire ce que sa modification entraîne | « Nommez la relation entre A et B dans ce code, puis dites ce qui casse si on la remplace par une agrégation. » | 3 |
| 2 | 23/09 | N3 Choisir entre héritage et composition, et justifier | « Ce code utilise l'héritage ; dites si la composition conviendrait mieux, et justifiez en une phrase. » | 4 |
| 3 | 23/09 | N10 Faire dépendre une classe d'une interface, et dire ce que ça permet | « Réécrivez la signature de ce constructeur pour que la classe ne dépende plus de l'implémentation, et dites ce que cela permet de faire. » | 5 |
| 4 | 21/10 | N2 Repérer une rupture d'encapsulation et la corriger | « Voici une classe ; indiquez par où son état peut être modifié de l'extérieur, et corrigez. » | 7 |
| 5 | 21/10 | N9 Repérer un défaut de couplage ou de cohésion et proposer une coupure | « Listez les dépendances de cette classe, proposez une coupure en deux, et dites ce que fait chaque moitié. » | 8 |
| 6 | 21/10 | N13 Repérer une violation d'un principe SOLID et la nommer | « Ce code viole un principe SOLID ; nommez-le, et dites ce qu'il faudra modifier à la prochaine évolution. » | 8, 13 |
| 7 | 21/10 | N15 Prédire le flot d'un try/catch/finally | « Qu'affiche ce programme, et que retourne la méthode ? Donnez l'ordre exact des lignes. » | 9 |
| 7 | 21/10 | N16 Repérer un anti-patron de gestion d'exception et le corriger | « Repérez les trois fautes de gestion d'exception dans ce code et corrigez-les. » | 9 |
| 8 | 21/10 | N19 Utiliser try-with-resources, et dire pourquoi finally ne suffit pas | « Ce code ferme sa ressource dans un finally ; montrez quelle exception est perdue, puis réécrivez-le avec try-with-resources. » | 9 |
| 9 | 21/10 | N14 Choisir entre exception vérifiée et non vérifiée, et justifier | « Pour chacune de ces trois situations, quelle exception lever, vérifiée ou non, et pourquoi ? » | 9 |
| 10 | 23/10 | N11 Reconnaître le problème qu'un patron résout | « Ce code présente un problème que résout un patron connu ; nommez le problème, puis le patron. » | 10 |
| 11 | 03/11 | N18 Écrire les préconditions d'une méthode ; vérifier ou documenter | « Écrivez les préconditions de cette méthode ; dites lesquelles vous vérifiez à l'exécution, lesquelles vous documentez. » | 14 |
| 12 | 03/11 | N28 Reconnaître le problème que résout un Observateur ou un Adaptateur | « Ce code doit brancher une classe à l'interface étrangère, ou prévenir plusieurs objets d'un changement ; nommez le patron, et dites ce qu'il découple. » | 10 |
La treizième séquence, le 03/11, est une séquence de réserve, consacrée à la remédiation et à la révision des points les moins bien acquis.
Ordre des notions
Certaines notions en supposent d'autres. Dans le schéma, une flèche signifie que la première notion est nécessaire pour comprendre la seconde.
flowchart LR
N8["N8 · relations<br>séq. 1"] --> N3["N3 · hériter ou composer<br>séq. 2"]
N3 --> N10["N10 · interface<br>séq. 3"]
N8 --> N10
N10 --> N11["N11 · patrons, 1re série<br>séq. 10"]
N11 --> N28["N28 · patrons, 2e série<br>séq. 12"]
N8 --> N9["N9 · couplage, cohésion<br>séq. 5"]
N9 --> N13["N13 · SOLID<br>séq. 6"]
N15["N15 · flot try/finally<br>séq. 7"] --> N16["N16 · anti-patrons<br>séq. 7"]
N15 --> N19["N19 · try-with-resources<br>séq. 8"]
N14["N14 · vérifiée ou non<br>séq. 9"] --> N18["N18 · préconditions<br>séq. 11"]
N2["N2 · encapsulation<br>séq. 4"]La chaîne du haut, N8 → N3 → N10, occupe tout le cours du 23/09 : ce sont les notions nécessaires pour découper correctement votre projet le 06/10. N2 relève de la POO que la fiche matière considère comme acquise ; le module la reprend sous l'angle de l'invariant à protéger.
Les acquis de COOA
Vous avez travaillé ces trois notions en Concepts orientés objets avancés, et elles ont été évaluées au partiel du 3 avril. Elles ne sont pas réenseignées, et elles ne sont pas à l'épreuve écrite. Un diagnostic de quinze minutes, le 21/10 au matin, vérifie qu'elles tiennent toujours ; si l'une ne tient plus, la feuille de route qui suit le 23/10 dit quoi reprendre.
| Notion | Chapitre |
|---|---|
| N1 Prédire quelle méthode s'exécute quand le type déclaré diffère du type réel | 6 |
N4 Écrire equals et hashCode cohérents | 11 |
| N20 Choisir la collection adaptée à un besoin | - |
Les notions en lecture
Ces notions font chacune l'objet d'une question de quiz et d'un passage du polycopié, mais ne sont pas certifiées. Aucune ne sera à l'épreuve écrite.
| Notion | Chapitre |
|---|---|
| N5 Écrire une énumération qui porte un comportement, plutôt que des constantes | 12 |
| N6 Lire une signature générique et dire quels types elle accepte | 12 |
| N7 Expliquer pourquoi un code générique ne compile pas (effacement, variance) | 12 |
| N17 Écrire une exception personnalisée, et dire ce qu'elle apporte | 9 |
| N21 Prédire le coût d'une opération sur une collection | - |
| N22 Lire un pipeline de Streams et dire ce qu'il produit | - |
| N23 Repérer un effet de bord dans un stream, ou une capture fautive dans une lambda | - |
| N24 Repérer une course critique dans un code multi-thread | - |
Les notions du projet
Ces notions sont mises en œuvre dans le projet, avec l'assistant, et défendues à l'oral.
| Notion |
|---|
| N12 Choisir le patron adapté à un besoin, ou justifier de ne pas en mettre |
| N25 Lire et écrire un fichier, accéder à une base |
| N26 Repérer dans du code généré par un assistant une erreur de conception ou d'exception, et la corriger |
| N27 Justifier à l'oral une décision de conception de son projet, sans l'assistant |
Ce que le module ne certifie pas
En 15 h 45 de cours, il a fallu faire des choix, et ce sont les notions les moins prioritaires de la carte qui ont été réduites :
- le multi-threading n'est vu qu'en lecture (N24) ;
- les fichiers et bases de données ne sont vus qu'en projet (N25) ;
- Git et les tests unitaires sont traités pendant la journée du 15/10, avec F. ESCOURBIAC, et ne font pas partie de l'épreuve écrite.