C'est l'édition par simulateur de la compétence : il n'y a ni vrais threads ni mesure du temps. Un thread est une courte liste d'étapes, un ordonnancement dit à qui est la prochaine étape, et la machine que vous écrivez les exécute, de sorte qu'un bug de concurrence devient une liste de numéros de threads que l'on peut afficher et rejouer. Chaque cours enseigne une idée avec de petits exemples et leur sortie, puis un labo noté étend la même machine. Vous apprenez à voir comment un entrelacement perd une mise à jour, à énumérer tous les ordonnancements d'un petit programme, à énoncer ce qu'une file sans verrou garantit et à prouver un invariant d'une diffusion de données de marché sur tous les ordonnancements.
Être à l'aise avec les fonctions, listes et dictionnaires de Python suffit ; ni C ni C++ ne sont nécessaires, car la machine est un simulateur que vous écrivez. La compétence sur la localité du cache aide pour le faux partage et les lignes de cache, mais n'est pas obligatoire.