Teaching
Since the beginning of my PhD, I’ve been a teaching assistant in Python, Cryptology, Discrete Mathematics and C.
2024-2025
- First semester: Cryptography Engineering (M2). See the page of the course.
- First semester: Advanced cryptography (M2). See the page of the course.
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.
- First semester: Discrete Mathematics (L2). Teaching assistant in the course “Mathématiques Discrètes” (Licence 2, Sorbonne Université), organized by Béatrice Bérard.
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
- 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…