The courses I normally teach are:
  • Advanced Operating Systems: CS 6378. Here is the syllabus for the section I am teaching in Spring 2010.
  • Mobile Computing Systems: CS 6392
  • Operating Systems Concepts: CS 4348
In addition, from time to time I have also taught the following courses:
  • Advanced Computer Networks: CS 6390
  • Computer Networks: CS 4390
  • Algorithm Analysis and Data Structures: CS 3345
  • Distributed Computing: CS 6380
During Spring '10 semester I am also teaching one of the CS 4385: Computer Science Project sections.

Course-specific information is available through eLearning onto to students enrolled in the class(es).

Suggestions for students planning to take my classes

If you have heard rumors that you will have to work a lot, let me reassure you that the rumors are true. At the same time, I hope you will be able to enjoy the course, participate vigorously in class discussions, and learn something along the way.  In the words of my colleague, Balaji Raghavachari, you may be cursing the instructor now, but hopefully you will be thankful for this ordeal five years hence.

While preparing for my examinations please try to understand the assumptions and system model for which an algorithm/protocol has been developed, consider the various ways in which the assumptions could be modified, and ask yourself if the solution would still work with the changed assumptions and why