Teacher at the Distributed Systems Group of the Faculty of Engineering, Mathematics and Computer Science (EEMCS/EWI), Delft University of Technology.
I am involved in a variety of bachelor level course mostly centered around the ones in the algorithmics track:
- Reasoning & Logic [TI1306]: A first year first quarter course teaching students the fundamentals of propositional logic, predicate logic, methods of proof (including mathematical induction), set theory, and relations & functions. Together with Neil Yorke-Smith I taught this course for the first time in 2017-2018.
- Algorithms & Datastructures [TI1316]: A first year third quarter course teaching students about different data structures such as lists, maps, sets, trees, and graphs. Additionally we also teach students different sorting algorithms, graph traversal, and Dijkstra's algorithm. In 2017-2018 I supported Robbert Krebbers and Joana Gonçalves in teaching the course, focusing on lab and ta-management, proofreading and grading exams, and offering extra tutorial sessions for mathematics students.
- Algorithm Design [TI2306]: A second year second quarter course teaching students about different algorithmic paradigms: greedy algorithms, divide & conquer algorithms, dynamic programming, and network flow models. Together with Mathijs de Weerdt I taught this course for the first time in 2017-2018.
- Automata, Languages & Computability [TI2316]: A second year fourth quarter course teaching students about fundamental computer science, focusing on state machines, automata and turing machines. In 2017-2018 I will support Matthijs Spaan in teaching the course, focusing on lab management and proofreading and grading exams.
- Complexitytheory [TI3306]: A third year third quarter course that wraps up the algorithmics track in the bachelor teaching students about different complexity classes, Karp reductions, approximation algorithms, probabilistic algorithms, and the effects of quantum computing on complexity problems. Together with Cees Witteveen I have taught this course for the first time in 2017-2018.
In addition to those I have also been involved in:
- Computer Organisation [TI1406]: A first year first quarter course teaching students about the different components that make up a computer and how they work together. How does a CPU do what it does? What can pipelining do to speed up program execution? In 2017-2018 I have supported Koen Langendoen, Otto Visser, and Jesse Donkervliet by giving several instruction classes for this course and being involved in the creation of the exams.
- Object-Oriented Programming [TI1206]: A first year first quarter course teaching students the basics of OO programming in Java. As the first programming course it teaches students the basics of the Java language, but also focuses on testing, inheritance, and code quality metrics. In 2017-2018 I have supported Andy Zaidman by proof reading and grading the exams.
- Computer Networks [TI2406]: A second year third quarter course teaching students the basics of computer networks, focusing on the different layers of the OSI-model. In 2017-2018 I have supported Johan Pouwelse and Jesse Donkervliet by proof reading the exams and giving several instruction classes in which I practiced the computational aspects of the course with students.
- Computer Graphics [TI1806]: A first year fourth quarter course teaching students the basics of computer graphics, focusing on different rendering techniques. In 2017-2018 I will support Elmar Eisemann together with Jesse Donkervliet by managing the lab and proof reading the exams.
- Contextproject [TI2806]: A second year fourth quarter project that tasks the students with creating a large piece of software over the course of 10 weeks. In 2017-2018 I will supervised 5 groups together with Otto Visser, and Jesse Donkervliet that will develop several prototype applications for use in education at TU Delft.
- Bachelor Final Project [TI3806]: The final project in the bachelors that tasks students to create a large piece of software over the course of 10 weeks. In 2017-2018 I will function as a customer for one project related to a Teaching Assistant-database system.
Outside of these courses from the CSE bachelor, I have also been or will be involved in:
- Algorithms & Datastructures for Mathematics students [Course code to be determined]: A variant of the TI1316 course outlined above specifically for mathematics students. In 2018-2019 I will teach this course for the first time, offering a tailor-made version for mathematics students that also uses Python as the programming language as opposed to Java used in CSE.
- Teaching Assistant recruitment [The entire CSE bachelor]: To support the growing bachelor Computer Science and Engineering bachelor, Jesse Donkervliet and I have centralised the recruitment of Teaching Assistants. Are you a student looking to be a TA or a staff member in need of TA's? Feel free to contact me!
In addition to the above activities I have presented several "assemblies" (essentially information sessions) for all years of the bachelor, related to choosing a minor, curriculum changes, and other administrative information.