Teaching
Programming with C
Advanced programming techniques with C. Pointers, call by reference, recursion, structures. Working with files. Abstract data types. Algorithms and complexity. Introduction to data structures. Lists, stacks, queues. Introduction to C++ and Java.
Introduction to Programming
Algorithms and programming languages. Programming with C. Program structure. Stepwise refinement. Variables and operators. Statements, data structures, arrays, structures, pointers, functions. Call by value and by reference. Structured programming. Debugging.
Theory of Computation
Finite automata and regular expressions. Pushdown automata and context-free grammars. Turing machines and Church's thesis. Undecidability. Computational complexity.
