Principles of Computer Systems

Course Description

Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities; security, and encryption; and performance optimizations. 

Course Details

  • Grading Basis: Letter Grade or Credit/No Credit
  • Unit-Range Information: Matriculated Stanford graduate students may enroll for 3, 4, or 5 units; everyone else must take the course for 5 units. All students do 5 units worth of work, including Stanford graduate students enrolled for 3 or 4 units.
  • Intensive Studies: This course is offered as part of the Computer Science Intensive and must be taken for 5 units. See the Intensive Studies page for more information on how to receive an official Document of Completion.


CS 106B/X and CS 107 or consent of instructor

Group 3GroupGroup 2