Three courses are offered in the area of operating systems. CS 537 introduces the subject, providing hands-on experience with building parts of operating systems in simple environments; there are several large programming assignments. CS 736 is an advanced course, often run as a seminar, which discusses a selection of advanced topics. This course often has a large project associated with it. CS 739 takes up where CS 736 leaves off. It covers distributed systems in greater depth, studying a wide variety of systems and examining issues such as replication, fault tolerance, load balancing, and security. The Ph.D. qualifying exam covers material in CS 537 and 736 and advanced material from CS 739.