Graduate Networks: 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.

Distributed Systems: models of asynchronous distributed computing systems, fundamental concepts of concurrency, synchronization.

Parallel Computing: practical introduction to parallel programming, emphasizing techniques and algorithms suitable for scientific and engineering computations.

Operating Systems: undergraduate course on the design and implementation of operating systems.