Journal des modifications
Ce cours n’est pas figé. Il est corrigé, complété et parfois réorganisé pendant la session, et comme les inscriptions sont continues, deux étudiants peuvent avoir lu deux versions différentes d’une même page. Cette page rassemble les changements apportés au cours au fil de la session, comme les nouvelles sections, les changements aux travaux notés, les corrections de faits ou les adresses de pages modifiées.
La présentation suit la convention Keep a Changelog d’Olivier Lacan, dont le premier principe veut que les changelogs soient « pour les êtres humains, pas les machines ». Chaque entrée est datée, la plus récente en haut, et ses changements sont regroupés en ajouts, modifications et corrections. Les livres PDF et EPUB étant produits à chaque mise à jour du site, la date de leur page de titre dit à quelle entrée de ce journal ils correspondent.
Les changements aux travaux notés sont signalés par la mention « Travaux notés ». Une exigence ajoutée après votre inscription ne s’applique pas à vous : elle vous est recommandée, et son absence ne sera pas pénalisée. Une exigence retirée ou assouplie s’applique à tous. En cas de doute, c’est la date de votre inscription qui fait foi.
29 octobre 2026
Modifié
- La recherche du site fonctionne autrement. Elle trouve mieux les mots qui contiennent une apostrophe, surligne le terme cherché dans un extrait, et affiche les cinq résultats les plus pertinents.
28 octobre 2026
Ajouté
- Architecture et modularité : une section sur UML, réduite aux deux diagrammes qui ont survécu à l’usage, celui de classes et celui de séquence, écrits en texte avec Mermaid. Les livres PDF et EPUB les reproduisent en images.
Corrigé
Trente-cinq erreurs factuelles, relevées par une vérification systématique des
faits à leur source. Chaque lien « voir le diff » ouvre sur GitHub la différence exacte
entre l’ancien texte, en rouge, et le nouveau, en vert, ce que git diff
affiche au terminal :
- Lectures et Pourquoi la concurrence : l’article de Moore fait quatre pages, et il évoque la vitesse en passant (voir le diff : lectures, concurrence).
- Environnements : Steve Ballmer a qualifié Linux de « cancer » en 2001, pas dans les années 1990 (voir le diff).
- Ce qui casse : le projet Ptolemy d’Edward Lee existe depuis 1993, et c’est Ptolemy II qui commence en 2000 (voir le diff).
- Ne pas partager : dans l’article de Hoare de 1978, les processus se désignent par leur nom, et les canaux ne viennent qu’ensuite (voir le diff).
- Ne jamais bloquer : le bassin de processus de l’exemple ne lance qu’un interpréteur, pas un par coeur, parce qu’il démarre ses processus à la demande (voir le diff).
- Les tests : coverage.py a été écrit par Gareth Rees, Ned Batchelder le maintient depuis 2004 (voir le diff).
- La gestion des dépendances :
la PlayStation et la Mazda 3 illustrent la numérotation des versions, pas le
versionnage sémantique, qui leur est postérieur. Le fichier
uv.lockn’est jamais vide (voir le diff). - Le versioning : le sous-répertoire d’un objet git porte le préfixe de son hash, pas son suffixe (voir le diff).
- Les APIs : SOAP
répondait
500à toute erreur, et non toujours200(voir le diff). - Perspective historique des interfaces : la souris a été inventée en 1963-1964, et présentée au public en 1968 (voir le diff).
- Les frameworks JavaScript : Vue s’appuie lui aussi sur un DOM virtuel (voir le diff).
- Desktop, web et mobile : WebAssembly est arrivé dans les navigateurs en 2017, et le W3C l’a standardisé en 2019 (voir le diff).
- Les bases de données : les migrations de Rails datent de 2005, et sont une contribution de Tobias Lütke. Les bases colonnaires analytiques, comme Sybase IQ et C-Store, ne sont pas les wide-column stores comme Bigtable, Cassandra et HBase (voir le diff : stockage, lectures).
- Au-delà des bases de données : Git stocke des instantanés, il ne rejoue pas un historique d’événements, et Amazon QLDB a été fermé en juillet 2025 (voir le diff).
- La conteneurisation (Docker) : le fichier Compose du tutoriel publie maintenant le port 8080 qu’utilisent les commandes qui suivent (voir le diff).
- Le déploiement continu : le terme « blue-green » vient de Daniel Terhorst-North et Jez Humble, et c’est leur livre qui l’a popularisé (voir le diff).
- L’observabilité : les ingénieurs de Google à l’origine de Prometheus n’ont pas fondé SoundCloud, ils l’ont rejoint, et l’intervalle de collecte par défaut de Prometheus est d’une minute (voir le diff).
- La fiabilité et les incidents : le livre SRE de Google plafonne l’astreinte à 25 % et le travail opérationnel à 50 %, et John Allspaw n’est devenu CTO d’Etsy qu’en 2015 (voir le diff).
- La fiabilité et les incidents : Netflix a publié les Principles of Chaos Engineering en 2015, pas en 2014 (voir le diff : incidents, lectures).
- La sécurité : la fuite chez
Desjardins a touché près de 9,7 millions de personnes, dont ses 4,2 millions
de membres particuliers, et l’outil d’audit des dépendances Python s’appelle
pip-audit(voir le diff). - La scalabilité : les marchands de Shopify ont vendu pour 9,3 milliards de dollars pendant le weekend du Black Friday 2023, et les navigateurs ne partagent plus leur cache entre les sites (voir le diff).
- L’open source : les quatre libertés du logiciel libre se sont formalisées après 1985, la licence d’Ext JS a changé en 2008, et GitHub n’est pas un logiciel open source offert en service (voir le diff).
- Monopoles et régulation : Google a payé environ 20 milliards de dollars à Apple en 2022, et non 26 milliards par an (voir le diff).
- Catastrophes, éthique et responsabilité : Curam a été développé par l’entreprise irlandaise Cúram Software, et non par IBM (voir le diff).
- Le métier de développeur : Smalltalk est un langage orienté objet, pas un langage fonctionnel (voir le diff).
- Le développement assisté par IA : GitHub rapportait en 2023 que Copilot écrivait 46 % du code de ses utilisateurs, et non plus de la moitié du code de la plateforme (voir le diff).
11 octobre 2026
Ajouté
- Travaux notés : Un projet qui survit au cours, une invitation à viser une application réelle, avec de vrais utilisateurs ou de vrais clients, et les conditions pour qu’elle reste évaluable, dont un environnement de démonstration pour les correcteurs.
Modifié
- Historique du génie logiciel : Margaret Hamilton, morte le 30 septembre 2026, reçoit ses dates.
Corrigé
- Historique du génie logiciel : trois erreurs, sur Grace Hopper, qui n’a pas inventé le mot « bug », sur le principe de Liskov, énoncé en 1987 et formulé avec Jeannette Wing en 1994, et sur Python, qui précède Java de quatre ans (voir le diff). Neuf précisions aussi, sur le programme stocké, l’ENIAC, FORTRAN, COBOL, l’A-0, C et Unix, le modèle en spirale et AWS (voir le diff).
- L’économie du logiciel : Tobias Lütke n’a pas créé Ruby on Rails, il a fait partie de son équipe principale (voir le diff).
1er octobre 2026
Ajouté
- Le cours en livres PDF et EPUB, produits à chaque mise à jour du site.
24 septembre 2026
Ajouté
- Accueil : une section « Pourquoi ce cours, au temps de l’IA agentique ? », bâtie sur la défense au tableau blanc de Mitchell Hashimoto, que l’entretien de suivi des travaux notés met en pratique. Le principe rejoint la page des principes.
18 septembre 2026
Modifié
- Travaux notés : la remise officielle se fait dans l’ENA, dans la section Évaluations du cours, et chaque jalon et chaque entretien porte le lien direct de son activité.
16 septembre 2026
Ajouté
- Travaux notés : Montrer en vidéo. Les vidéos sont encouragées, pour faire voir l’application, parcourir le code ou raconter un bogue. Elles ne sont pas obligatoires.
8 septembre 2026
Ajouté
- Travaux notés : Les problèmes, et la manière dont vous les avez réglés. Les problèmes rencontrés et leur résolution font désormais partie de la documentation attendue, et chacun devrait avoir son issue GitHub.
- Scrum : les
mots-clés de fermeture, comme
Fixes #12, qui relient une issue au commit qui la règle.
Modifié
- Travaux notés : le jalon 3 exige désormais un problème de programmation réglé par une technique de débogage, et un problème de gestion du code source réglé avec git. Le jalon 4 demande un bilan des problèmes de toute la session.
- Les adresses des sections Interfaces utilisateur, Données, Agilité et
Infrastructure ne contiennent plus de préfixe numérique, par exemple
module4/agile/scrum/au lieu demodule4/20-agile/scrum/. Les anciens liens ne fonctionnent plus.
4 au 7 septembre 2026
Ajouté
- Une nouvelle section au module 2, Le débogage :
l’histoire du mot, le
print, le débogueur pdb, et une chasse au bogue pas à pas dans VS Code. - Des encarts « Dans VS Code » dans les sections sur les tests, le versioning et la gestion des dépendances.
- Environnements : la boucle interactive (REPL), IPython et les notebooks.
- Travaux notés : le jalon 3 suggère de documenter une activité de débogage. C’est devenu une exigence le 8 septembre.
1er au 3 septembre 2026
Ajouté
- Une nouvelle section au module 2, Concurrence et parallélisme, en cinq sous-sections, reliée au reste du cours.
- Accueil : pourquoi le cours est touffu, et ce qu’on y appelle le sens du possible.
- Survol rapide de la programmation : une mise en garde de Daniel Lemire, professeur à la TÉLUQ, sur le temps constant des tables de hachage.
- Environnements : VS Code présenté comme une vue sur les outils.