Teaching: active pedagogy, designed as a methodology
Twenty years designing learning systems that actually work — not just delivering lectures. Since joining the faculty in 2006, I have taught computer science from first-year undergraduate to master’s level at UFR IM2AG, averaging 217 teaching-equivalent hours per year, with responsibility for several courses.
This teaching practice was built over time, questioned and measured every year: an explicit course contract, automated assessment tools, project-based learning. The methods described here were formalised alongside my research activity — they are a natural extension of it.
One conviction runs through all of this: learning content is only worth as much as a student can appropriate autonomously, with fast feedback on their own practice — exactly what you’d ask of a good prototyping tool.
The course contract: the flipped classroom in practice
FDD XML course (lead 2010–2017, then teaching assistant to support continuity of the teaching team) and APO — Object-Oriented Algorithms and Programming (lead since 2018) L3 MIAGE, Université Grenoble Alpes
On the courses I took responsibility for, I flipped the classic model on its head: lectures no longer happen in the classroom. It’s an explicit contract, formalised and communicated from the very first session.

The APO course contract, as presented to students
How it works
- At home: a hundred-page course booklet, written for self-study, to be read before each session
- In CTD (supervised tutorials): a 10-minute Quick check followed by exercises — never a lecture recap
- In TD (tutorials): paper-and-pencil deepening exercises, done in teams
- In TP (labs): individual work in Java on Caseine
- Grading: 2/3 final exam, 1/3 continuous assessment (average of Quicks, written and machine-based midterms)
This principle has taken on new weight each year with the rise of LLMs in student habits: since only genuine mastery counts at the exam, delegating a lab to generative AI brings no benefit — a reminder that has mattered more since 2023.
Why this is a transferable skill
Designing a course contract is designing a specification: precisely defining what’s expected at each stage, with what deliverables and what success criteria. It also means accepting to measure what works — and to redesign a course when it doesn’t.
Caseine: designing an assessment tool instead of enduring one
Rather than using a simple code skeleton to hand in, I contributed to Caseine, a Moodle instance enhanced with an automated code grader (VPL — Virtual Programming Lab). Each lab becomes a self-contained exercise that continuously evaluates compilation, execution and correctness, with individualised feedback.

A Caseine/VPL lab: automated compilation, execution and grading, with instructions built in
Context
I built several dozen of these labs, for cohorts of 40 to 95 students — a scale at which manual grading would become unmanageable. Each lab combines instructions, constraints (allowed/forbidden files, exam conditions) and real-time grade feedback.
Skills involved
- Designing automated assessment tooling at scale
- Active contribution to a shared digital platform (Caseine, UGA’s Moodle instance)
- Formalising objective, reproducible grading criteria
From paper labs to interactive notebooks
In image processing, I evolved the lab format from a Java skeleton to complete, into Jupyter notebooks accessible directly from the course page.

Excerpt from an image processing lab: histogram stretching across RGB channels
Students work with a real image, see the result immediately, and iterate — rather than filling in a code skeleton blind, with no intermediate visual feedback.
Learning by doing: where teaching meets prototyping
GMCAO and TDM2i courses, co-created with Emmanuel Promayon — 5th-year TIS programme, Polytech Grenoble Integrative Applied Project — L3 MIAGE (launched in 2015)
With Emmanuel Promayon, I co-designed the GMCAO and TDM2i courses (Technology for Smart and Innovative Medical Devices) for TIS engineering students, built entirely around project-based learning.
The logic mirrors that of a medical prototype climbing the TRL scale: state a clinical problem, iterate on a technical solution, confront it with a real need. That’s also the spirit of the Integrative Applied Project I launched in L3 MIAGE in 2015, bringing together teachers and students from several courses (Networks, HCI, FDD, APO, Operations Research) around a shared project.
Skills involved
- Designing curricula with progressive, staged complexity
- Coordinating a multidisciplinary teaching team
- Assessing deliverables under near-real conditions
Making it accessible to non-technical audiences
Teaching algorithms and programming to students who didn’t choose computer science (TIS and Géothec programmes at Polytech Grenoble) demands a precise skill: demystify, ground examples in their own field, never lose the pedagogical thread.
That’s exactly the skill called on when working with clinicians or business teams on a medical prototyping project: translating a non-technical need into a workable specification, and back again.
What this practice has taught me
Twenty years of teaching have taught me to design systems — not just content. A good course, like a good prototype, is defined by a clear contract, fast feedback on practice, and constant iteration on what isn’t working.
Responsible for several courses, co-creator of two of them, active contributor to the Caseine platform: these teaching responsibilities have forged a method I now put to work in medical application prototyping.