Teaching

Courses taught at Sorbonne Université since 2013.
Modified

23 June 2026

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 → now LU1IN001, 1I002 → now LU1IN002, 2I001 (Programming and Data Structures in C) → now LU2IN018, 5I252 (Interactive Virtual Environments and Video Games) → now MU5IN252.
  • 1XM02 / LX-ONCDigital Communication Tools (L1 transversal), head of the ONC strand, 2014–2018.
  • NI246Knowledge Engineering & Natural Language Processing (M2), course created from scratch with NLTK/Python, 2013–2014.
  • IMFL Master (M2): 5Z001 Knowledge Management for Online Learning, 5Z003 AI / Learner Modelling then Educational Data Mining (co-head with Vanda Luengo from 2015), 5Z004 Learning Analytics, 5Z005 Internship.
  • M1 Research Methodology (4Z003 / 4Z010), created ex nihilo in 2015.