Teaching
CSE142 - Computer Programming I.
Basic programming-in-the-small abilities and concept,
including procedural and functional abstraction with
simple built-in data type manipulation. (Winter 2006)
CSE451 - Introduction to Operating
Systems. An introductory undergraduate
course on the principles of OS's. The course involves
Linux kernel hacking projects; as an interesting
wrinkle, students use VMware on top of Win2K to test/run
their hacked up Linux kernels. (Winter 2001, Winter 2005)
CSE461 - Introduction to
Computer-Communication Networks. Covers
computer network architectures, protocol layers,
routing, transport, security. (Autumn 2005)
CSE551 - Operating Systems. A
graduate-level course on systems design, focusing on
operating systems but also including issues relating to
Internet-scale systems and mobility. (Spring 2001, Spring 2002, Spring 2003, Spring 2004, Spring 2005)
CSE552 - Distributed Systems. An
advanced graduate course on distributed systems,
focusing on both classical and modern results. (Winter 2002, PMP Winter 2004)
CSE590IS - Readings on Internet Systems and
Services. Covered topics such as clusters,
security, Web systems, CDNs, content transport, and
service programming models. (Winter 2003)
CS39C - Communications Infrastructures and Mobile
Computing. A freshman seminar on the history and
societal implications of computing and communications
infrastructure, taught at UC Berkeley in 1999 with Profs.
Randy Katz and Armando Fox.