This is an introductory computer systems course, designed to expose students to a broad set of fundamental concepts in computer systems and their practical applications. It is best suited for students who have completed the intro sequence, and to those who may want to deepen their understanding of systems concepts. Programming languages used in assignments likely include C and C++ or Go.

Lectures 1:00pm-2:20pm on Tuesdays and Thursdays
Room BARHOL 168 (Barus & Holley, Room 168)
Lecture Notes Published after each class
Textbook None
Prerequisites CSCI 0160, CSCI 0180, CSCI 0190; or instructor permission.
Instructor Malte Schwarzkopf (
Office Hours Tuesday 3-4pm, CIT 525
Head TA
  • Shelley Jain (sjain16)
  • Casey Nelson (cnelso13)
  • William Adriance (wadrianc)
  • Ilan Bigio (ibigio)
  • Jarod Boone (jboone)
  • Raghu Nimmagadda (knimmaga)
  • Lisa Phinisee (lphinise)
  • Star Su (ssu6)
  • Lucy Wolff (lwolff)
Assignments Five individual programming projects, several smaller labs, and post-lecture quizzes.
Incompletes We expect everyone to complete the course on time. If unforeseen circumstances prevent you from doing so, please discuss with the instructor. Full incomplete policy described in the course missive.
Late Policy 72 late hours for use with projects. The full late policy is described in the course missive.
Grading Projects: 56%; labs: 12%; final exam: 20%; post-lecture quizzes: 12%.
Collaboration We encourage collaboration, but require students to submit their own, individual solutions. The full collaboration policy is described in the course missive.
Course Time Students will spend approximately 3 hours per week in class, and 2 hours per week doing labs, and 7-18 hours per week on projects. Assignment work for projects will vary.