I teach graduate and undergraduate courses in systems and networking. Recent courses include:
- Graduate Systems:
course covers the common foundation for research in operating systems, databases, cluster and wide area distributed systems, networking, and parallel systems.
- Graduate Distributed Systems for Professional Masters: advanced study of distributed systems, including client server computing, the web, cloud computing, peer-to-peer systems, and distributed storage systems.
- Graduate Networks: advanced study of computer networks and communication protocols.
- Graduate Networks for Professional Masters: advanced study of computer networks and communication protocols.
- Undergraduate Networks: course on basics of networking, ranging from sending bits over wires to the Web and distributed computing.
- Undergraduate Distributed Systems (circa 2000s): models of asynchronous distributed computing systems, fundamental concepts of concurrency, synchronization.
- Parallel Computing (circa 2000s): practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations.
- Undergraduate Operating Systems (circa 2000s): undergraduate course on the design and implementation of operating systems.