As lecturer
Course | @ | |
---|---|---|
Kleene Algebra | ||
Introduction to Kleene Algebra, its extensions, and its applicability to reasoning about program equivalence. We start with the syntax, relational semantics, and axioms, and build towards Kozen's completeness result. Along the way, we'll learn how to convert rational expressions to automata, and vice versa. | ||
Formalizing and Proving Theorems in Coq | ||
Hand-written proofs can be tricky to get right, and moreover tedious to review properly; proof assistants can help alleviate this problem. This course is aimed at introducing students with a background in formal logic to the Coq proof assistant. Students learn about basic techniques, before moving on to more advanced matters and formalizing a proof of their choice. | ||
Introduction to Computing Using Python (CS 1110) |
|
|
Introductory programming course, aimed at exposing students to elementary concents from programming. The material included variables, conditional branching, loops, lists, and the basics of recursion. This was an intensive six-week course, with daily lectures and lab assignments, as well as weekly homework and two tests. |
As a teaching assistant
Course | @ | Tutorials |
Grading |
Lab |
|
---|---|---|---|---|---|
Design and Professional Skills(Python programming) | UCL |
|
|||
Computability and Complexity | UCL |
|
|||
Scenario week(competition à la HashCode) | UCL | ||||
Complexity | LU | ||||
Distributed Algorithms | VU |
|
|||
Programming Methods(introductory programming course) | LU | ||||
Challenges in Computer Science(creative programming course) | LU |