⚠️ This is not the current iteration of the course! Head here for the current offering.


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 include C and C++.

Lectures 1:00pm-2:20pm on Tuesdays and Thursdays
Sections Saturday through Wednesday during section weeks.
Room MacMillan 117
Lecture Notes Published after each class on the schedule page.
Textbook None
Prerequisites CSCI 0200, CSCI 0160, CSCI 0180, CSCI 0190; or instructor permission.
Instructor Malte Schwarzkopf (malte@cs.brown.edu)
Office Hours Tuesday, 2:30p-3:30pm, CIT 525.
Head TAs
  • Ed Bielawa
  • Liz Jones
  • William Sun
  • Richard Tang
  • Zack Amiton
  • Komron Aripov
  • Sebastian Criado
  • Tomas Dougan
  • Aijah Garcia
  • Austin Funk
  • Nathan Harbison
  • Yuki Hayashita
  • Allison Hsieh
  • Joel Kim
  • Oren Kohavi
  • Vic Li
  • Pranav Mahableshwarkar
  • Nishchay Parashar
  • Christina Stepin
  • Carolyn Zech
  • Eva Schiller
Assignments Six individual programming projects, several smaller labs, and post-lecture quizzes. Additional assignments for graduate students (see missive).
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 144 late hours for use with projects (no more than 72 per project). The full late policy is described in the course missive.
Grading Projects: 48%; labs: 10%; mid-term exam: 13%; final exam: 16%; post-lecture quizzes: 10%; SRC project: 3%.
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 (40 hours), and 3 hours per week doing labs or attending section (40 hours), and 8-15 hours per week on projects (110-200 hours). Assignment work for projects will vary; the total time commitment for the course is in the range of 190-280 hours.
Time expectations are the same for those in the remote/asynchronous section: remote students watch the recorded lectures on their own schedule, attend sections (virtually, but still synchronously), and complete labs and projects on their own time.
Remote Students Students taking CS 300/1310 remotely will have access to TA hours via Zoom, to the EdStem discussion forum, and to Malte's Office Hourse via Zoom (by appointment). They will also participate in synchronous sections.