Teaching
I have been teaching at Sorbonne Université (formerly UPMC) since September 2013, across every level from first-year undergraduates to second-year Master’s students, in the Computer Science programmes and in the Innovation Management Master (EdTech track). My average annual load is about 238 hours (eqTD), roughly 124 % of the statutory service.
Course names are given in English; hover or tap a dotted title to reveal the original French name. Codes are the official Sorbonne Université UE codes. For the students I have supervised, see Supervision.
Teaching approach
My teaching is closely tied to my research on technology for education. I favour project-based assessment and build in techniques that support metacognition — short activation quizzes at the start of a session, summary prompts at the end, and large Moodle question banks for formative self-assessment. Several of my courses (notably Data Mining and Data Visualisation) are taught entirely from Jupyter notebooks, used at once as lecture support, lab material, and submission format, with sources kept open on GitLab.
At the boundary of teaching and research, I introduced an activity-tracing system in MrPython (the tool used in first-year programming), implemented in the standard xAPI format, to enable learning-analytics studies of how students write code over time.
Courses
Licence (B.Sc.)
| Code | Course | Role | Period |
|---|---|---|---|
LU1IN001 |
Introduction to Programming 1 (Python) | Tutorials & labs | 2015–2023 |
LU1IN002 |
Introduction to Programming 2 (C) | Lecturer (amphi) & course coordination (700+ students) | 2021–2026 |
LU2IN018 |
Advanced C | Tutorials & labs | 2019–2025 |
LU2IN006 |
Data Structures | Tutorials & labs | 2021–2022 |
| (code to confirm) | Introduction to Object-Oriented Programming | Tutorials & labs | 2024–2025 |
| (code to confirm) | Advanced Data Structures | Tutorials & labs | 2025–2026 |
LU3MT551 |
Innovative Science-Outreach Projects | Lecture & tutorials | 2020–2021 |
| (code to confirm) | Research-Initiation Project | Supervision | 2024–2025 |
Master — Innovation Management (EdTech track)
| Code | Course | Role | Period |
|---|---|---|---|
MU4MN010 |
Data Mining and Data Visualisation | Head of course (since 2018), principal instructor | 2018–2024 |
MU5MN022 |
AI for Education | Lectures & tutorials | 2018–2026 |
MU5MN023 |
Innovative EdTech Systems | Lectures & tutorials | 2018–2021 |
MU5MN025 / MU5MN026 |
Applied & Research EdTech Projects | Head of course (since 2019) | 2018–2021 |
MU5MN027 |
Internship Supervision (professional or research) | Supervision & defence jury | 2014–2026 |
Data Mining and Data Visualisation (MU4MN010, M1) — under my responsibility since its 2018–2019 creation. It serves a deliberately heterogeneous cohort (students from biology, physics, chemistry, mechanics, computer science…) and runs entirely on Jupyter notebooks. It covers observational vs. experimental data collection, descriptive and inferential statistics, data manipulation and visualisation (numpy, pandas, matplotlib, seaborn), then supervised and unsupervised learning with scikit-learn. Most of the grade rests on a data analysis tied to each team’s cross-cutting project — assessment by project.
AI for Education (MU5MN022, M2 EdTech) — introduces real educational datasets, the analyses they support and the pre-processing precautions they require, drawing directly on my research in educational data mining and learning analytics. Since 2020 it relies on a bank of several hundred questions used for both formative and (randomised, time-limited) summative assessment.
Advanced C (LU2IN018, L2) — I am part of the small recurring teaching team that revises the exercises and co-writes the exams; I contributed to the redesign when the UE moved from 6 to 3 ECTS, introducing generics through a lab on a generic linked-list and binary-tree library.
Highly Interactive Virtual Environments (MU5IN252, M2 ANDROIDE) — head of course since 2022. My sessions cover natural-language processing, conversational agents and dialogue in video games, and the tracing/analysis of player and learner activity. I funded the physiological sensors (ECG, EEG, stress sensors) and eye-trackers that students borrow for the course project.
Before the courses above, I taught at UPMC under the previous course-code scheme and in the now-discontinued Ingénierie et Management de la Formation en Ligne (IMFL) Master:
1I001→ nowLU1IN001,1I002→ nowLU1IN002,2I001(Programming and Data Structures in C) → nowLU2IN018,5I252(Interactive Virtual Environments and Video Games) → nowMU5IN252.1XM02/LX-ONC— Digital Communication Tools (L1 transversal), head of the ONC strand, 2014–2018.NI246— Knowledge Engineering & Natural Language Processing (M2), course created from scratch with NLTK/Python, 2013–2014.- IMFL Master (M2):
5Z001Knowledge Management for Online Learning,5Z003AI / Learner Modelling then Educational Data Mining (co-head with Vanda Luengo from 2015),5Z004Learning Analytics,5Z005Internship. - M1 Research Methodology (
4Z003/4Z010), created ex nihilo in 2015.