Teaching

Since the beginning of my PhD, I’ve been a teaching assistant in Python, Cryptology, Discrete Mathematics and C.

2024-2025

2023−2024

  • First semester: Initiation to Modern Cryptography (L3). Teaching assistant in the course “Initiation to Modern Cryptography” (Licence 3, Universiteit van Amsterdam), organized by Christian Schaffner.

2022−2023

  • Firs semester: Initiation to Modern Cryptography (L3). Teaching assistant in the course “Initiation to Modern Cryptography” (Licence 3, Universiteit van Amsterdam), organized by Christian Schaffner.

2020−2021

  • Second semester: C Programming (L1). Teaching assistant in the course “Programmation C” (Licence 1, Sorbonne Université), organized by Isabelle Mounier.

2019−2020

  • Second semester: Cryptology (L2). Teaching assistant in the course “Introduction à la cryptologie” (Licence 3, Sorbonne Université), organized by Valérie Ménissier-Morain and Jeremy Berthomieu.
    • Most of my teaching materials are available on moodle (videos, saved blackboard, QCM…).
    • You can find here a correction I made during the strikes.
  • First semester: Discrete Mathematics (L2). Teaching assistant in the course “Mathématiques Discrètes” (Licence 2, Sorbonne Université), organized by Béatrice Bérard.
    • You can find here a few corrections I made.
    • Here is a general method where I explain how you can write formally a proof without even thinking (almost…).
    • The official page of the course is available here.

2018−2019

  • Second semester: Cryptology (L2). Teaching assistant in the course “Introduction à la cryptologie” (Licence 3, Sorbonne Université), organized by Valérie Ménissier-Morain and Jeremy Berthomieu.
  • First semester: Python (L2). Teaching assistant in the course (Licence 2 “AGRAL”, Polytech), organized by Xavier Tannier.

Tutoring

I’m also tutoring a high-school student since 2017 to prepare him to some very important and competitive national exams in Israel (he is now, in 2020, starting his first year at the university). I taught him notably:

  • High-level programming (Python, C, Javascript, PHP, SQL, Ocaml, Assembly), including the following paradigms:
    • Functional Programming
    • Object-Oriented Programming
    He also learnt how to develop a website using the Django framework.
  • Low-level programming and system architecture (C, Assembly). My student did several projects under my supervision:
    • a compiler, compiling a C– language into 64 bit assembly. He started from the template given in this course, that provides a parser, and his goal was to produce the 64 bit assembly code from the AST (Abstract syntax tree).
    • a mini-OS: he learnt how to code an OS from scratch, that could boot in real mode (16 bits). We saw how to use interruptions to draw on the screen, how to create custom interruptions/traps, and how to use in / out assembly commands to control the hardware.
    • he also learnt how a computer is built, starting from the laws of physics, continuing with the transistors, building fundamental circuits from them, and implementing (with pen and papers) a simple Von Neumann machine.
  • Network: he learnt how famous protocols work (TCP, UDP), and how they are related to the OSI model.
  • Security: he learnt most famous attack vectors and tried to practice them on some toy websites.
  • AI: he is now starting a project on opinion mining, that should involve Machine Learning, SVM…