System programmers are "hackers" in the good sense of the word: Programmers who understand computer and software systems on a variety of levels. They are the people managers and other programmers turn to when they need to implement, maintain, or improve critically-important systems or solve especially tricky software problems. This course is intended to develop the skills system programmers need to write both system software and applications that make use of system capabilities. It also provides experience in the construction of small-to-medium scale, single-developer software systems.