Undergraduate courses: 1. Operating Systems, 2. Compilers
Postgraduate courses:
1. Advanced Compilers
This course covers the following topics:
    1. Code optimization
    2. Data flow analysis
    3. Register assignment
    4. Vectorization and parallelization of code
    5. Generation of high quality target code
    6. Selected current topics, e.g., exploiting multi-core CPUs
For each topic, we cover the classical techniques and a few
research papers.
The course will contain homework assignments (with very little
weightage),
group projects, individual paper
reading & presentation assignments, and exams.
The primary sources for the first few lectures are:
    1. The Aho-Lam-Sethi-Ullman Compilers book.
    2. Slides on code optimization and data flow analysis
( pdf version.)
    3. Slides on partial redundancy elimination
and a brief paper on E-path based PRE
    4. Advanced Compiler Design &
Implementation, Steven S Muchnick, Harcourt Asia/Morgan Kaufmann, 1997.
2. Distributed Operating Systems