University of Cambridge

Royaume-Uni · 2026-27

University of Cambridge

36 travaux pratiques pour le programme Cambridge.

Le Computer Science Tripos de Cambridge, Parts IA et IB : algorithmique, bases de données, programmation orientée objet, C et C++. Chaque séance est progressive, compilée et vérifiée par une véritable chaîne d'outils sur votre propre machine — le modèle relit votre code ensuite, il ne décide pas si vous avez réussi.

Mis à jour

Semestre par semestre

Formation : Computer Science Tripos. Régime : Course pages 2026–27. Ouvrez un cours pour voir ses unités pratiques et la séance de TP que GroutCode propose pour chacune.

  1. Part IA

    4 UE24 leçons de TPJavaSQL
    • ALGORITHM1Java

      Algorithms 1

      3

      leçons

      • Sorting from quadratic to linear time — and finding the median without sorting
      • Divide and conquer, dynamic programming and greedy — one problem set, three strategies
      Voir les 3 leçons
      1. 1Sorting from quadratic to linear time — and finding the median without sortingChapitre 1 · Sorting
      2. 2Divide and conquer, dynamic programming and greedy — one problem set, three strategiesChapitre 2 · Strategies for algorithm design
      3. 3Stacks to red-black trees — building Unit 3's data structures by handChapitre 3 · Data structures
    • ALGORITHM2Java

      Algorithms 2

      3

      leçons

      • Graph search and shortest paths — BFS, DFS, Bellman-Ford, Dijkstra, Floyd-Warshall and Johnson
      • Spanning trees, topological order, max flow and bipartite matching
      Voir les 3 leçons
      1. 1Graph search and shortest paths — BFS, DFS, Bellman-Ford, Dijkstra, Floyd-Warshall and JohnsonChapitre 1 · Graphs and path-finding algorithms
      2. 2Spanning trees, topological order, max flow and bipartite matchingChapitre 2 · Graphs and subgraphs
      3. 3Amortized analysis, binomial heaps, Fibonacci heaps and disjoint setsChapitre 3 · Advanced data structures
    • DATABASESSQL

      Databases

      8

      leçons

      • From a key-value store and a flat file to a relational table
      • Designing a college database: keys, relationships and integrity
      Voir les 8 leçons
      1. 1From a key-value store and a flat file to a relational tableChapitre 1 · Introduction
      2. 2Designing a college database: keys, relationships and integrityChapitre 2 · Relational databases
      3. 3Relational algebra in SQL: from selection to set differenceChapitre 3 · Relational queries
      4. 4NULLs, aggregation, transactions and normalising a sales tableChapitre 4 · Further SQL
      5. 5Storing and querying JSON documents in SQLChapitre 5 · Document-oriented data
      6. 6A property graph in SQL — vertices, edges and Cypher-style pattern matchingChapitre 6 · Graph-oriented data
      7. 7Recursive CTEs — walking an org chart and searching a flight networkChapitre 7 · Recursive queries
      8. 8Row stores vs column stores — OLTP and analytics on the same dataChapitre 8 · Database system trade-offs
    • OOPROGJava

      Object-Oriented Programming

      10

      leçons

      • From functions to classes — static methods and an exact Fraction type
      • Designing classes — an encapsulated Account, immutable values and generic containers
      Voir les 10 leçons
      1. 1From functions to classes — static methods and an exact Fraction typeChapitre 1 · Types, Objects and Classes
      2. 2Designing classes — an encapsulated Account, immutable values and generic containersChapitre 2 · Designing Classes
      3. 3References, the call stack and the heap — pass-by-value made visibleChapitre 3 · Pointers, References and Memory
      4. 4A shape hierarchy — inheritance, overriding, overloading, casting and shadowingChapitre 4 · Inheritance
      5. 5Polymorphism three ways — generic functions, interfaces and the diamondChapitre 5 · Polymorphism and Multiple Inheritance
      6. 6An object's life — constructor chains, clean-up and two garbage collectorsChapitre 6 · Lifecycle of an Object
      7. 7Comparing objects and working the Collections framework — Money, rankings and a RangeChapitre 7 · Java Collections and Object Comparison
      8. 8A bank account and a config loader — from return codes to exceptions and assertionsChapitre 8 · Error Handling
      9. 9Generics, type erasure, lambdas and streams — modern Java one feature at a timeChapitre 9 · Language evolution
      10. 10Six design patterns, built and tested — Singleton to ObserverChapitre 10 · Design Patterns
  2. Part IB

    1 UE12 leçons de TPCC++
    • PROGCCC++

      Programming in C and C++

      12

      leçons

      • C from the ground up — integers, bits and hand-written string functions
      • Functions, linkage and the preprocessor across two compilation units
      Voir les 12 leçons
      1. 1C from the ground up — integers, bits and hand-written string functionsChapitre 1 · Introduction to the C language
      2. 2Functions, linkage and the preprocessor across two compilation unitsChapitre 2 · Introduction to the C language (continued)
      3. 3Pointer ranges, callbacks, structs and a tagged unionChapitre 3 · Introduction to the C language (continued)
      4. 4Heap-backed strings, a growable vector and formatted I/OChapitre 4 · Introduction to the C language (continued)
      5. 5Overflow-proof arithmetic and bounded buffers without undefined behaviourChapitre 5 · C semantics and tools
      6. 6A bump-pointer arena, a malloc'd BST and shared expression DAGsChapitre 6 · Memory allocation, data structures and aliasing
      7. 7A reference-counted heap with a mark-and-sweep collector in CChapitre 7 · Further memory management
      8. 8Cache-aware C: struct layout, intrusive lists, SoA and loop blockingChapitre 8 · Memory hierarchy and cache optimization
      9. 9A debugging toolkit in C: test runner, invariants, trace buffer, bisect and shrinkChapitre 9 · Debugging
      10. 10From C to C++: references, overloading, default arguments and std::stringChapitre 10 · Introduction to C++
      11. 11C++ objects: a Fraction type, an RAII buffer, virtual shapes and a diamond of devicesChapitre 11 · Objects in C++
      12. 12C++ templates and meta-programming — from max_of to compile-time type listsChapitre 12 · Other C++ concepts

Le programme complet, soit 77 cours, est transcrit dans l'application, cours théoriques compris. Les séances sont rédigées à partir des codes de cours comportant des travaux pratiques, et la liste s'étoffe à chaque version.

GroutCode n'est ni affilié à University of Cambridge, ni approuvé par cet établissement. Les codes et intitulés de cours sont transcrits à partir des documents de programme publiés par l'établissement.

Comment se déroule un TP

Les mêmes cinq étapes pour chaque séance, dans chaque langage.

  1. 1

    Choisissez votre programme

    Sélectionnez votre université ou votre académie, puis le semestre ou la classe où vous êtes. La liste des cours reprend le référentiel officiel transcrit, pas une approximation.

  2. 2

    Ouvrez une séance de TP

    Chaque séance est un TP progressif rattaché à un cours précis, avec un fichier de départ que vous modifiez et un fichier de tests auquel vous ne touchez pas.

  3. 3

    Écrivez le code vous-même

    Le fichier de départ contient les signatures et les TODO. C'est à vous de les implémenter dans l'éditeur, dans le langage réellement utilisé par votre cours.

  4. 4

    Lancez les vérifications

    La chaîne d'outils compile et exécute les tests — de 8 à 15 sur l'ensemble de la séance, un par étape, pour que vous sachiez quelle modification a cassé quoi.

  5. 5

    Recevez la relecture

    Une fois les tests passés, le modèle lit votre implémentation et vous indique l'entrée qui la met en défaut. Il n'annonce jamais lui-même la réussite ou l'échec.

Pourquoi c'est le compilateur qui évalue, pas le modèle

La manière évidente de construire un outil de TP piloté par l'IA consiste à laisser le modèle lire le code de l'élève et dire s'il est correct. C'est aussi la manière de produire un outil auquel personne ne peut se fier. Un modèle vous dira que votre code fonctionne alors que le compilateur affirme le contraire, et vous recalera pour un style qui, ce jour-là, ne lui plaît pas.

Les deux rôles sont donc séparés :

  • Le modèle conçoit la séance, écrit le fichier de départ et les tests, puis — une fois les tests passés — lit ce que vous avez réellement écrit et vous indique l'entrée qui le met en défaut.
  • La chaîne d'outils décide si le code compile et si chaque étape passe. Ce verdict n'est pas négociable et le modèle ne le prononce jamais.

Et pourquoi des étapes plutôt qu'une seule grande tâche

Un TP de 40 à 60 minutes avec une unique exécution à la fin ne donne au débutant qu'un seul retour par heure, et ce retour arrive une fois toutes les décisions déjà prises. Chaque séance compte ici 8 à 15 étapes, chacune avec sa consigne et sa vérification, pour que vous découvriez quelle modification a cassé quoi pendant que vous vous en souvenez encore.

Questions fréquentes

GroutCode couvre-t-il le programme Cambridge 2026-27 ?

Oui. GroutCode intègre le programme Cambridge 2026-27 transcrit pour Computer Science Tripos — soit 77 cours — avec 36 séances de TP rédigées et rattachées à des codes de cours précis. Le programme a été transcrit à partir des documents officiels, et la source ainsi que la somme de contrôle de chacun sont consignées dans l'application.

Quels langages utilisent les TP Cambridge ?

Java (16 séances), C (9 séances), SQL (8 séances), C++ (3 séances). Le langage est défini par code de cours plutôt que deviné d'après l'intitulé, car une même matière est enseignée dans des langages différents selon les établissements.

L'IA fait-elle le TP à ma place ?

Non. Le fichier de départ contient les signatures et les TODO ; c'est à vous de les implémenter. C'est la chaîne d'outils — et non le modèle — qui décide si votre code compile et si chaque étape passe : l'IA ne peut donc pas vous annoncer que votre code fonctionne alors que le compilateur dit l'inverse. Ce qu'elle fait ensuite, c'est lire votre implémentation et pointer l'entrée qui la met en défaut.

Les TP fonctionnent-ils hors ligne ?

Les séances, le programme et l'exécuteur de tests sont embarqués dans l'application et s'exécutent en local : la boucle compilation-vérification fonctionne donc sans aucune connexion. L'étape de relecture finale fait appel à un modèle, qui peut être local ou bien dans le cloud avec votre propre clé.

Que dois-je avoir installé ?

GroutCode détecte les chaînes d'outils présentes sur votre machine et vous indique ce qui manque et comment y remédier. Il vous faut le compilateur ou l'interpréteur du langage utilisé par votre cours — un compilateur C, un JDK, Python, Node ou SQLite.

Faites vos TP Cambridge avec les vérifications intégrées

GroutCode est inclus dans chaque licence Grout Suite. Téléchargement gratuit pour Windows et macOS.

Télécharger GroutCode