Université Grenoble Alpes

France · 2026-27

Université Grenoble Alpes

41 lab practicals for the Grenoble Alpes syllabus.

Université Grenoble Alpes’s Licence Informatique (UFR IM2AG): imperative programming in C, software projects 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 Informatique (UFR IM2AG) — Portail IMA, parcours Informatique et MIAGE, parcours Informatique générale. Scheme: Accréditation 2021-2026 (MCCC 2026-2027). Open a course to see its practical units and the lab lesson GroutCode ships for each.

  1. L1·S1

    1 course3 lab lessonsPython
    • INF101Python

      Méthodes informatiques et techniques de programmation

      3

      lessons

      • A grade book in Python — variables, types, control flow, functions and lists
      • Analysing algorithms in Python — counting cost and choosing the efficient solution
      See all 3 lessons
      1. 1A grade book in Python — variables, types, control flow, functions and listsUnit I · Introduction à l'algorithmique et à la programmation
      2. 2Analysing algorithms in Python — counting cost and choosing the efficient solutionUnit II · Démarche analytique et complexité
      3. 3A calculator in Python — implement it, test it, fix it, document itUnit III · Implémentation impérative (Python)
  2. L1·S2

    1 course5 lab lessonsC
    • INF203C

      Système et environnement de programmation: principes d'utilisation

      5

      lessons

      • Deterministic finite automata in C — build, run, analyse and complement them
      • Coding information and managing memory in C — bases, two's complement, UTF-8 and heap strings
      See all 5 lessons
      1. 1Deterministic finite automata in C — build, run, analyse and complement themUnit I · Introduction aux automates
      2. 2Coding information and managing memory in C — bases, two's complement, UTF-8 and heap stringsUnit II · Programmation en C
      3. 3What the shell does before the kernel — paths, modes, wildcards and variablesUnit III · Éléments de système
      4. 4Inside make, gcc and gdb — a dependency engine and the tools' own outputUnit IV · Outils
      5. 5A small command interpreter — lexer, parser, expansion and builtinsUnit V · Projet
  3. L2·S3

    2 courses9 lab lessonsC
    • INF301C

      Algorithmique et programmation impérative

      5

      lessons

      • From intention to realisation — ten algorithms with their invariants
      • Sequences, sets and dictionaries — three abstract types and their realisations
      See all 5 lessons
      1. 1From intention to realisation — ten algorithms with their invariantsUnit I · Raisonnement algorithmique
      2. 2Sequences, sets and dictionaries — three abstract types and their realisationsUnit II · Structures de données
      3. 3Arrays, linked lists and binary search trees behind the abstract sequenceUnit III · Structures bas-niveau pour représenter les structures haut-niveau
      4. 4Iteration, recursion and loop invariants — ten algorithms built from what stays trueUnit IV · Structures algorithmiques itératives et récursives
      5. 5Measuring algorithmic complexity — counting operations and beating O(n^2)Unit V · Analyse d'algorithmes
    • INF304C

      Bases du développement logiciel: modularisation, tests

      4

      lessons

      • An opaque stack module and the RPN calculator that uses it
      • A testing toolkit — oracles, unit-test reports, random tests, shrinking and growth probes
      See all 4 lessons
      1. 1An opaque stack module and the RPN calculator that uses itUnit I · Programmation modulaire
      2. 2A testing toolkit — oracles, unit-test reports, random tests, shrinking and growth probesUnit II · Test de logiciel
      3. 3Generic code in C — void pointers, comparators and an abstract vectorUnit III · Abstraction, généricité
      4. 4Rebuilding make, diff and a test harness in CUnit IV · Outils d'aide au développement de logiciel
  4. L2·S4

    2 courses3 lab lessonsSQLC
    • INF403SQL

      Gestion de données relationnelles et applications

      2

      lessons

      • Relational algebra in SQL — selection to division on a student database
      • From a UML class diagram to SQLite tables and views
      See the units
      1. 1Relational algebra in SQL — selection to division on a student databaseUnit I · Modèle relationnel de données
      2. 2From a UML class diagram to SQLite tables and viewsUnit II · Conception
    • INF404C

      Projet logiciel

      1

      lesson

      • Vectorising a bitmap — contour tracing, Douglas-Peucker and Bezier fitting
      See the units
      1. 1Vectorising a bitmap — contour tracing, Douglas-Peucker and Bezier fittingUnit LAB · Projet logiciel: vectorisation
  5. L3·S5

    2 courses9 lab lessonsCSQL
    • GBIN5U03C

      Programmation et projet d'études

      4

      lessons

      • Heap memory, streams and function parameters in C
      • Inside the shell and make — word splitting, globbing and a rebuild planner
      See all 4 lessons
      1. 1Heap memory, streams and function parameters in CUnit I · Points techniques de programmation
      2. 2Inside the shell and make — word splitting, globbing and a rebuild plannerUnit II · Outils pour l'automatisation
      3. 3A version-control module in C — hashes, line diffs and commit historyUnit III · Outils et techniques pour le développement
      4. 4Bits, bytes and a binary wire format — implementing to a written specUnit LAB · Projet logiciel de fin de semestre
    • GBIN5U06SQL

      Conception et exploitation des bases de données

      5

      lessons

      • Querying a relational faculty database in declarative SQL
      • Relational algebra to SQL — eleven operators as eleven views
      See all 5 lessons
      1. 1Querying a relational faculty database in declarative SQLUnit I · Systèmes de gestion de bases de données relationnelles
      2. 2Relational algebra to SQL — eleven operators as eleven viewsUnit II · Algèbre relationnelle et SQL
      3. 3Normalising a flat enrolment table to 3NF, measured with SQLUnit III · Normalisation
      4. 4From a UML class diagram to a relational schemaUnit IV · Conception UML
      5. 5Integrating a database into an application — views, triggers and transactionsUnit V · Intégration dans une application
  6. L3·S6

    3 courses12 lab lessonsCJava
    • GBIN6U01C

      Introduction aux systèmes et réseaux

      3

      lessons

      • What the OS does for you — permissions, paths, pages, bytes and the scheduler
      • IPv4 from a program — addresses, subnets, checksums and routing
      See all 3 lessons
      1. 1What the OS does for you — permissions, paths, pages, bytes and the schedulerUnit I · Systèmes d'exploitation
      2. 2IPv4 from a program — addresses, subnets, checksums and routingUnit II · Réseaux
      3. 3A shell's front end in C — words, quotes, variables, globs and pipelinesUnit III · Shell et programmation C
    • GBIN6U03Java

      Programmation et projet logiciel

      4

      lessons

      • Bank accounts and shapes — encapsulation, inheritance and polymorphism in Java
      • Six design patterns in Java — Strategy, Factory, Observer, Decorator, Composite, Command
      See all 4 lessons
      1. 1Bank accounts and shapes — encapsulation, inheritance and polymorphism in JavaUnit I · Programmation orientée objet en Java
      2. 2Six design patterns in Java — Strategy, Factory, Observer, Decorator, Composite, CommandUnit II · Design patterns
      3. 3Event-driven programming — a widget toolkit's event system, without the screenUnit III · Programmation évènementielle
      4. 4Connect Four with an observer-driven game loop and an alpha-beta AIUnit LAB · Projet logiciel
    • GBIN6U08C

      Méthodes et outils pour la conception avancée

      5

      lessons

      • A reusable string-builder library, compiled separately
      • Coverage probes, mutants and test suites that earn their keep
      See all 5 lessons
      1. 1A reusable string-builder library, compiled separatelyUnit I · Maintenabilité et réutilisabilité du code
      2. 2Coverage probes, mutants and test suites that earn their keepUnit II · Tests et qualité des tests
      3. 3A heap checker and a symbolic executor for finding defectsUnit III · Détection de défauts et erreurs
      4. 4Hardening parsers against overflows, injection and HeartbleedUnit IV · Analyse de vulnérabilité
      5. 5Measuring performance: operation counts and a cache simulatorUnit V · Analyse de performances

The full 22-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 Université Grenoble Alpes. 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 Grenoble Alpes 2026-27?

Yes. GroutCode ships the transcribed Grenoble Alpes 2026-27 for Licence Informatique (UFR IM2AG) — Portail IMA, parcours Informatique et MIAGE, parcours Informatique générale — 22 courses — with 41 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 Grenoble Alpes practicals use?

C (27 lessons), SQL (7 lessons), Java (4 lessons), Python (3 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 Grenoble Alpes lab work with the checks built in

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

Download GroutCode