In my teaching, I focus on programming skills and learning about how to build and understand large computer systems, software and hardware. Below are the courses I have taught so far, and a tentative schedule for future semesters.
Official Teaching Evaluations
Below, overall evaluation scores (course / instructor, out of 5) are listed, as is the number of students turning in evaluation forms. Click on the links to see the scanned evaluation sheets, summarizing the results of the official evaluation forms handed out toward the end of the semester.
| CS361 Computer Systems
| Fall 2013
| CS385 Operating System Concepts and Design
| Spring 2012
|| 4.47 / 4.7
| Spring 2011
|| 4.38 / 4.65
| CS450 Introduction to Computer Networks
| Fall 2012
|| 4.77 / 4.88
| Fall 2011
|| 4.82 / 4.92
| Fall 2010
|| 4.38 / 4.48
| Fall 2009
|| 5.0 / 5.0
| Spring 2009
|| 4.44 / 4.69
| CS594 Wireless Networks
| Spring 2010
|| 4.57 / 4.71
Worth noting is that my courses are consistently rated around 1.5 on a scale of 1 (very hard) to 5 (very easy). Thus, please take care not to oversubscribe yourself on semesters when you are taking a class with me.
Students that come well prepared to my classes tend to enjoy themselves. On the other hand, students that come without the prerequisites, or without an interest in programming and networks, tend to suffer. You can read some of my teaching reviews at RateMyProfessor
. Just remember that these represent neither a full, nor an unbiased sample.
CS385 Operating System Concepts and Design
This is a required course for Computer Science majors, covering both how programs interact with the operating system, and how the operating system itself is designed. The course has a heavy focus on C programming experience, with many demanding, but also fascinating, programming assignments. We also spend several lectures studying the Linux source code to see how some of the things we talk about in theory are implemented in practice. For more information about this course, and to watch recorded lectures from prior years, refer to the CS385 course wiki
CS450 Computer Networks
This course covers most of what you need to know about the Internet and its inner workings. I taught it for the first time in Spring '09, and will probably continue to offer it annually for the next few years. For more information about this course, and to watch recorded lectures from prior years, refer to the CS450 course wiki
CS594 Wireless Networks
This is a graduate seminar course in wireless networks, where we read and present a number of interesting and/or influential papers from past years of wireless networks research. For more information about this course, refere to the CS594 course wiki