Academic/Teaching Experience
-
University of Waterloo, School of Computer Science
Lecture (September 2006 - December 2006)
CS 350 (Operating Systems, 3rd-year course) – Threads and synchronization; deadlocks and starvation; CPU scheduling; memory management and paging; device I/O and file systems; inter-process communication; security. The course is based on Nachos, an educational operating system sitting next to a simulated MIPS machine.
-
University of Waterloo, School of Computer Science
Lecture (January 2006 - April 2006)
CS 241 (Foundations of Sequential Programs, 1st-/2nd-year course) – MIPS assembler; regular expressions, finite automata, and scanning; context-free grammars, LL(1) and LR(1) parsing; semantic analysis and code generation; linking and loading; introduction to C and C++.
-
University of Waterloo, School of Computer Science
Marking and tutorials (May 2005 - August 2005)
CS 448 (Introduction to Database Management, 4th-year course) – Entity relationship model; relational algebra; SQL and embedded SQL; query processing and optimization; transaction management.
-
University of Waterloo, School of Computer Science
Marking and tutorials (September 2004 - April 2005, September 2005 - December 2005)
CS 360 (Introduction to the Theory of Computation, 3rd-year course) – Languages and automata: Regular, context-free, and recursive languages; Chomsky hierarchy; different kinds of automata and their relationships; closure properties.
-
University of Waterloo, School of Computer Science
Marking (May 2004 - August 2004)
CS 134 (Principles of Computer Science, 1st-year course) – Basic data structures; program design; simple correctness proofs; programming in Java.
-
University of Erlangen, Institute of Computer Science
Marking and weekly tutorials (October 2003 - February 2004)
Exercises to Introduction to Algorithms I (Algorithmik I, Prof. Dr. M. Philippsen, 1st-year course) – Introduction to the Java programming language, object-oriented programming, UML, formal specification of computer programs, correctness proofs, basic algorithms.
-
University of Erlangen, Institute of Computer Science
Weekly tutorials (October 2002 - February 2003)
Exercises to Introduction to Theoretical Computer Science II (Einführung in die Theoretische Informatik II, Prof. Dr. K. Leeb, 2nd-year couse) – Formal logic, groups, rings, finite fields.
-
University of Erlangen, Institute of Computer Science
Weekly tutorials (May 2002 - July 2002, April 2003 - July 2003)
Exercises to Introduction to Theoretical Computer Science III (Einführung in die Theoretische Informatik III, Prof. Dr. V. Strehl, 2nd-year course) – Introduction to complexity theory, analysis of algorithms (in particular of those of the divide&conquer type), sorting and searching, lower bounds, complexity types, NP-completeness.
-
University of Erlangen, Institute of Applied Mathematics
Marking and weekly tutorials (October 2001 - July 2002)
Exercises to Mathematics for Computer Science students I, II (Mathematik für Informatiker I, II, Prof. Dr. W. Borchers, 1st-year course) – Linear algebra, calculus, basic differential equations.