
Royaume-Uni · 2026/27
The University of Edinburgh
43 travaux pratiques pour le programme Edinburgh.
Informatics à Édimbourg, Years 1 à 4 : programmation, algorithmique et structures de données, systèmes informatiques, compilation et bases de données. 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 BSc (Hons) / Informatics MInf. Régime : DRPS 2026/27. Ouvrez un cours pour voir ses unités pratiques et la séance de TP que GroutCode propose pour chacune.
Year 1
1 UE3 leçons de TPPython- INFR07004Python
Informatics 1 - Introduction to Programming
3
leçons
- Python fundamentals — types, operators, loops, conditionals and functions
- A tested gradebook — debugging, refactoring and test-driven code
- 1Python fundamentals — types, operators, loops, conditionals and functionsChapitre I · Fundamental Principles of Programming
- 2A tested gradebook — debugging, refactoring and test-driven codeChapitre II · Software Engineering Practice in Code
- 3Reviewing AI-generated code — find the errors and inefficienciesChapitre III · Extended Principles and AI-Assisted Coding
Year 2
3 UE13 leçons de TPPythonCJava- INFR08026Python
Informatics 2 - Introduction to Algorithms and Data Structures
5
leçons
- Measuring algorithms — case analysis, asymptotics and recurrences
- Stacks, queues, linked lists and sorting from scratch
- 1Measuring algorithms — case analysis, asymptotics and recurrencesChapitre I · Asymptotic Notation and Algorithmic Analysis
- 2Stacks, queues, linked lists and sorting from scratchChapitre II · Sequential Data Structures and Sorting
- 3Heaps, binary search trees and a chained hash map — built from listsChapitre III · Trees, Heaps and Hashing
- 4Graph algorithms — traversal, ordering, shortest paths, spanning trees and backtrackingChapitre IV · Graphs and Graph Algorithms
- 5Dynamic programming, spelling correction and the edge of computabilityChapitre V · Dynamic Programming and Complexity Classes
- INFR08027C
Informatics 2C - Introduction to Computer Systems
4
leçons
- Bits, fields, two's complement and IEEE floats in C
- A MIPS simulator in C — decode, execute, and compile a loop by hand
- 1Bits, fields, two's complement and IEEE floats in CChapitre I · Data Representation and the C Language
- 2A MIPS simulator in C — decode, execute, and compile a loop by handChapitre II · Instruction Set Architecture
- 3Caches, page tables, a TLB and a scheduler — the environment a program runs inChapitre III · Program Execution Environment
- 4From gates to a MIPS processor — adders, an ALU, registers and a multi-cycle CPUChapitre IV · Digital Logic and Processor Structure
- INFR08032Java
Informatics 2 - Software Engineering and Professional Practice
4
leçons
- Requirements toolkit — parsing, checking, prioritising and tracing a changing specification
- From UML to Java — an order system built from its class diagram and state machine
- 1Requirements toolkit — parsing, checking, prioritising and tracing a changing specificationChapitre I · Requirements Analysis
- 2From UML to Java — an order system built from its class diagram and state machineChapitre II · Software Design with UML
- 3A team's toolbench — test runner, diff and patch, issue tracker and review gate in JavaChapitre III · Construction and Testing in Java
- 4A compliance toolkit for a student-records serviceChapitre IV · Professional, Legal and Ethical Issues
Year 3
3 UE14 leçons de TPJavaC++SQL- INFR10065Java
Compiling Techniques
4
leçons
- A compiler front end: lexer, recursive descent and LL(1) tables
- Semantic analysis: abstract syntax, scoped symbol tables and a type checker
- 1A compiler front end: lexer, recursive descent and LL(1) tablesChapitre I · Lexical Analysis and Parsing
- 2Semantic analysis: abstract syntax, scoped symbol tables and a type checkerChapitre II · Abstract Syntax and Semantic Analysis
- 3Intermediate code: frames, three-address translation, basic blocks and tracesChapitre III · Intermediate Code
- 4A compiler back end: liveness, graph-colouring register allocation and RISC-V selectionChapitre IV · Code Generation and Register Allocation
- INFR10079C++
Operating Systems
5
leçons
- A toy kernel: traps, system calls, interrupts and a preemptive timer
- CPU schedulers, a bounded pipe, and fork versus threads
- 1A toy kernel: traps, system calls, interrupts and a preemptive timerChapitre I · The OS Kernel
- 2CPU schedulers, a bounded pipe, and fork versus threadsChapitre II · Process and Time Management
- 3Semaphores, a monitor, races and the Banker's algorithmChapitre III · Resource Management
- 4Memory management: allocators, page tables, a TLB and page replacementChapitre IV · Memory Management
- 5Disk scheduling, file-system structures, nested paging and containersChapitre V · Storage Management and Virtualization
- INFR10080SQL
Introduction to Databases
5
leçons
- Querying a course database: relations, multisets and aggregation in SQL
- Relational algebra, calculus and Datalog, translated into SQL
- 1Querying a course database: relations, multisets and aggregation in SQLChapitre I · The Relational Model and SQL
- 2Relational algebra, calculus and Datalog, translated into SQLChapitre II · Query Languages
- 3Constraints that refuse bad data, and a BCNF decompositionChapitre III · Database Design
- 4Nested queries, NULLs and certain answers, and triggersChapitre IV · Advanced SQL and Application Access
- 5Schedules, locks, indexes and cost estimates, analysed in SQLChapitre V · Transactions, Indexing and Query Evaluation
Year 4
3 UE13 leçons de TPJavaCPython- INFR11217Java
Advanced Database Systems (UG)
5
leçons
- Row stores, column stores and the disk beneath them
- Index structures: B+-trees, hashing, z-order and a learned index
- 1Row stores, column stores and the disk beneath themChapitre I · Architectures and Storage
- 2Index structures: B+-trees, hashing, z-order and a learned indexChapitre II · Indexing
- 3Query operators and a dynamic-programming join optimiserChapitre III · Query Evaluation and Optimisation
- 4Transactions: serialisability, locking, MVCC and recoveryChapitre IV · Transaction Management
- 5Distributed data: partitioning, 2PC, consistent hashing and vector clocksChapitre V · Distributed and Big Data Systems
- INFR11226C
Parallel Programming Languages and Systems (Level 11) (UG)
4
leçons
- Models of parallelism in Pthreads: decomposition, reduction, scan and a bag of tasks
- Shared-variable synchronization: locks, semaphores, barriers and monitors in Pthreads
- 1Models of parallelism in Pthreads: decomposition, reduction, scan and a bag of tasksChapitre I · Models of Parallelism
- 2Shared-variable synchronization: locks, semaphores, barriers and monitors in PthreadsChapitre II · Shared Variable Programming
- 3Message passing from channels up: an MPI-style communicator with collectivesChapitre III · Message Passing Programming
- 4Linda tuple spaces and TBB-style parallel_for and parallel_reduceChapitre IV · Alternative Approaches
- INFR11229Python
Text Technologies for Data Science (UG)
4
leçons
- A search engine's text pipeline: tokenise, normalise, stop, stem, then Zipf and Heaps
- A search engine from scratch — inverted index, Boolean, phrase and ranked retrieval
- 1A search engine's text pipeline: tokenise, normalise, stop, stem, then Zipf and HeapsChapitre I · Text Processing Foundations
- 2A search engine from scratch — inverted index, Boolean, phrase and ranked retrievalChapitre II · Indexing and Search
- 3An IR evaluation script — precision, recall, MAP, nDCG and significance testsChapitre III · Evaluation
- 4Text classification and corpus analysis — features, Naive Bayes, evaluation and RAG retrievalChapitre IV · Text Classification and Analysis
Le programme complet, soit 34 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é à The University of Edinburgh, 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
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
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
É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
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
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 Edinburgh 2026/27 ?
Oui. GroutCode intègre le programme Edinburgh 2026/27 transcrit pour Computer Science BSc (Hons) / Informatics MInf — soit 34 cours — avec 43 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 Edinburgh ?
Java (13 séances), Python (12 séances), C (8 séances), C++ (5 séances), SQL (5 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.
Autres programmes

Oxford
University of Oxford
Les course synopses Computer Science 2026-27 de l'université d'Oxford : bases de données, implémentation de systèmes de bases de données et IA.
27
leçons de TP

Cambridge
University of Cambridge
Le Computer Science Tripos de Cambridge, Parts IA et IB : algorithmique, bases de données, programmation orientée objet, C et C++.
36
leçons de TP

Imperial College
Imperial College London
Le BEng/MEng Computing d'Imperial College London : TP de programmation, algorithmique, bases de données, systèmes d'exploitation et apprentissage automatique.
24
leçons de TP
Faites vos TP Edinburgh 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