Teaching

Course syllabi

  1. Analysis and Complexity of Algorithms

    Analysis and Complexity of Algorithms

    This course is an introduction to models of computation, computability and complexity. It presents a view of computer science beyond computers. That is, computer science as a set of mathematical tools to understand complex systems.

  2. Formal Languages and Automata Theory

    Formal Languages and Automata Theory

    Automata theory is the study of abstract machines or automata, as well as computational problems that can be solved using these objects.

  3. Advanced Programming Techniques

    Advanced Programming Techniques

    This course introduces students to the design and implementation of fundamental data structures and algorithms. The course covers basic data structures, search and ordering algorithms, basic analysis of algorithms.