Sorbonne Université

France · 2025-26

Sorbonne Université

27 lab practicals for the Sorbonne syllabus.

Sorbonne Université’s Licence d’Informatique, L1 to L3: programming, C, object-oriented Java, data structures and databases. Every lesson is stepped, compiled and checked by a real toolchain on your own machine — the model reviews your code afterwards, it does not decide whether you passed.

Updated

Semester by semester

Programme: Licence d'Informatique (Faculté des Sciences et Ingénierie). Scheme: Offre de formation 2025-2026. Open a course to see its practical units and the lab lesson GroutCode ships for each.

  1. L1 · S1

    1 course4 lab lessonsPython
    • UL1IN001Python

      Elements de programmation

      4

      lessons

      • An interpreter that gives a tiny imperative language its meaning
      • Safe programming: type contracts, simulation tables and loop invariants
      See all 4 lessons
      1. 1An interpreter that gives a tiny imperative language its meaningUnit I · la programmation impérative avec une sémantique semi-formelle
      2. 2Safe programming: type contracts, simulation tables and loop invariantsUnit II · des techniques générales de programmation sûre
      3. 3Measuring efficiency and classifying problems: search, duplicates, subset sum, coinsUnit III · des concepts d'algorithmique
      4. 4Sets, dictionaries and comprehensions: counting, grouping and indexingUnit IV · la manipulation de constructions spécifiques au langage Python
  2. L1 · S2

    1 course8 lab lessonsC
    • UL1IN002C

      Elements de programmation 2

      8

      lessons

      • From Python to C: ten integer functions in the imperative core
      • From bits to a working CPU — binary, two's complement and a Little Man Computer
      See all 8 lessons
      1. 1From Python to C: ten integer functions in the imperative coreUnit I · Noyau impératif des langages: de Python à C
      2. 2From bits to a working CPU — binary, two's complement and a Little Man ComputerUnit II · Principes de fonctionnement des ordinateurs
      3. 3Arrays, pointers and malloc — building a growable vector and a 2-D matrixUnit III · Tableaux, pointeurs et allocation
      4. 4Array algorithms — search, rotate, deduplicate, Kadane and selection sortUnit IV · Algorithmes avec les tableaux
      5. 5Pointer arithmetic and C strings — rebuilding string.h by handUnit V · Arithmétique de pointeurs et chaînes de caractères
      6. 6Structs and pointers — exact fractions and a student registerUnit VI · Enregistrement (structures) et pointeurs
      7. 7Linked lists and queues in C — nodes, pointers to pointers and a circular bufferUnit VII · Structure de données linéaires (liste, files d'attente)
      8. 8Binary search trees in C — insertion, traversals, breadth-first order and deletionUnit VIII · Structures arborescentes
  3. L2 · S3

    2 courses4 lab lessonsJavaC
    • LU2IN002Java

      Introduction à la programmation objet

      1

      lesson

      • Objects in Java — encapsulated points and accounts, a shape hierarchy and polymorphism
      See the units
      1. 1Objects in Java — encapsulated points and accounts, a shape hierarchy and polymorphismUnit I · Introduction à la programmation objet
    • LU2IN018C

      C avancé

      3

      lessons

      • Memory and I/O in C — heap strings, a growable vector, text and binary streams
      • Generic C with void * and function pointers — a type-agnostic toolkit beside qsort and bsearch
      See all 3 lessons
      1. 1Memory and I/O in C — heap strings, a growable vector, text and binary streamsUnit I · Approfondissement des connaissances acquises sur ce langage
      2. 2Generic C with void * and function pointers — a type-agnostic toolkit beside qsort and bsearchUnit II · Code générique et réutilisable
      3. 3Debugging four broken functions, then building a C testing toolkitUnit III · Méthodes et outils permettant de rendre ces programmes complexes fonctionnels
  4. L2 · S4

    2 courses2 lab lessonsCSQL
    • LU2IN006C

      Structures de données

      1

      lesson

      • The everyday data structures in C: array, stack, queue, hash table, BST and heap
      See the units
      1. 1The everyday data structures in C: array, stack, queue, hash table, BST and heapUnit I · Structures de données
    • LU2IN009SQL

      Introduction aux bases de données relationnelles

      1

      lesson

      • Relational databases in practice: algebra, SQL queries and constraints on a course database
      See the units
      1. 1Relational databases in practice: algebra, SQL queries and constraints on a course databaseUnit I · Introduction aux bases de données relationnelles
  5. L3 · S5

    2 courses9 lab lessonsJavaSQL
    • LU3IN002Java

      Programmation objet avancée

      4

      lessons

      • Object fundamentals in Java: encapsulation, abstraction, inheritance, composition and delegation
      • Polymorphism and typing in Java: generics, wildcards, lambdas and a sealed expression tree
      See all 4 lessons
      1. 1Object fundamentals in Java: encapsulation, abstraction, inheritance, composition and delegationUnit I · Concepts fondamentaux de la programmation objet
      2. 2Polymorphism and typing in Java: generics, wildcards, lambdas and a sealed expression treeUnit II · Polymorphisme et typage
      3. 3A unit-testing framework in miniature, then test suites that catch broken codeUnit III · Programmation robuste
      4. 4A shop back end built from the fundamental design patternsUnit IV · Architecture logicielle
    • LU3IN009SQL

      Systèmes de gestion de bases de données

      5

      lessons

      • Relational algebra in SQL: from selection to division
      • Query evaluation and optimisation: indexes, access paths and query plans
      See all 5 lessons
      1. 1Relational algebra in SQL: from selection to divisionUnit I · Algèbre relationnelle
      2. 2Query evaluation and optimisation: indexes, access paths and query plansUnit II · Évaluation et optimisation des requêtes
      3. 3Transactions and concurrency control: commit, savepoints and schedule analysis in SQLUnit III · Transactions et contrôle de la concurrence
      4. 4Functional dependencies and normal forms, computed in SQLUnit IV · Optimisation de schéma
      5. 5Views and triggers that keep a registration database honestUnit V · Outils classiques de bases de données

The full 33-course syllabus is transcribed in the app, including the theory courses. Lessons are authored against the course codes that have practical work, and the list grows with each release.

GroutCode is not affiliated with or endorsed by Sorbonne Université. Course codes and titles are transcribed from the institution’s published scheme documents.

How a practical runs

The same five steps for every lesson, in every language.

  1. 1

    Pick your syllabus

    Choose your university or board and the semester or class you are in. The course list is the transcribed official scheme, not an approximation.

  2. 2

    Open a lab lesson

    Each lesson is a stepped practical for a specific course, with a starter file you edit and a test file you do not.

  3. 3

    Write the code yourself

    The starter has the signatures and the TODOs. You implement them in the editor, in the language your course actually uses.

  4. 4

    Run the checks

    The toolchain compiles and runs the tests — 8 to 15 of them across the lesson, one per step, so you find out which change broke what.

  5. 5

    Get the review

    Once the tests pass, the model reads your implementation and tells you the input that breaks it. It never reports the pass or fail itself.

Why the compiler grades, not the model

The obvious way to build an AI lab tool is to let the model read the student’s code and say whether it is correct. It is also the way that produces a tool nobody can trust. A model will tell you your code works when the compiler says otherwise, and it will fail you for a style it happens to dislike.

So the two jobs are split:

  • The model designs the lesson, writes the starter and the tests, and — after the tests pass — reads what you actually wrote and tells you the input that breaks it.
  • The toolchain decides whether it compiles and whether each step passes. That verdict is not negotiable and the model never issues it.

And why steps instead of one big task

A 40-to-60 minute practical with a single Run at the end gives a beginner one bit of feedback an hour, and it arrives after every decision has already been made. Each lesson here is 8 to 15 steps, each with its own instruction and its own check, so you find out which change broke what while you still remember making it.

Frequently asked questions

Does GroutCode cover the Sorbonne 2025-26?

Yes. GroutCode ships the transcribed Sorbonne 2025-26 for Licence d'Informatique (Faculté des Sciences et Ingénierie) — 33 courses — with 27 authored lab lessons mapped to specific course codes. The syllabus was transcribed from the official documents, and the source and checksum of each one is recorded in the app.

Which languages do the Sorbonne practicals use?

C (12 lessons), SQL (6 lessons), Java (5 lessons), Python (4 lessons). The language is set per course code rather than guessed from the title, because the same subject is taught in different languages at different institutions.

Does the AI just write the practical for me?

No. The starter file has the signatures and the TODOs; you implement them. The toolchain — not the model — decides whether your code compiles and whether each step passes, so the AI cannot tell you your code works when the compiler disagrees. What it does afterwards is read your implementation and point out the input that breaks it.

Do the practicals work offline?

The lessons, the syllabus and the test runner are bundled in the app and run locally, so the compile-and-check loop works with no connection. The review step at the end uses a model, which can be a local one or a cloud one with your own key.

What do I need installed?

GroutCode detects which toolchains are present on your machine and tells you what is missing and what would fix it. You need the compiler or interpreter for the language your course uses — a C compiler, a JDK, Python, Node or SQLite.

Do your Sorbonne lab work with the checks built in

GroutCode is included in every Grout Suite license. Free download for Windows and macOS.

Download GroutCode