Systems Programming and Machine Organization
This is the 2013 version of the course. Main site
Harvard School of Engineering and Applied Sciences
Lectures: Tuesday/Thursday, 2:30-4:00
Location: Northwest B103
- 12/17 Final review solutions and Sample final solutions
- 12/16 Final review problems
- 12/12 Sample final, midterm, and midterm solutions posted
- The last day to turn in or update assignments will be Wednesday 12/11 (Thursday 12/12 for extension). Assignments turned in after that time will not be graded.
- 12/1 Section 10 notes posted
- 12/1 Condition variable notes released
- 11/25 Assignment 6 released
- 11/17 Section 9 notes posted
- 11/12 Assignment 5 released
- 11/10 Section 8 notes posted
- 11/3 Section 7 notes posted
- 10/28 Assignment 4 released
- 10/21 Section 6 notes posted
- 10/16 Local extension midterm information
- 10/15 Midterm Review posted
- 10/15 Live link for midterm review section
- 10/15 Midterm sample solutions posted
- 10/15 Assignment 3 released
- 10/11 Midterm sample questions posted
- 10/6 Section 5 notes posted
- 10/3 Cache terms and algorithms notes
- 10/1 Google spreadsheet for today
- 9/29 Section 4 notes posted
- 9/27 Assignment 2 released
- 9/26 Scribe note schedule posted
- 9/22 Section 3 notes posted
- 9/22 Section 2 notes and Git Section Notes solutions posted
- 9/15 Section 2 notes and Git Section Notes posted
- 9/13 Section 1 notes solutions posted
- 9/5 Section 1 notes posted
- 9/5 Tentative Schedule posted
- 9/5 Exercise P (pointer review exercises) released
- 9/5 Assignment 1 released
CS 61 is an introduction to the fundamentals of computer systems programming. Topics include C and assembly language programming, performance analysis and improvement strategies, memory management, caching, concurrency, threads, and synchronization.
CS 61 will help you develop the skills to write programs for the real world, where performance and robustness really matter. It will also prepare you for more advanced CS courses, including operating systems, compilers and programming languages, architecture, and graphics. CS 61 is suitable for both computer science concentrators and non-concentrators.
We want CS 61 to be fun and challenging, but not necessarily to require tons of work. Computer systems rock!
For more, see the syllabus.
- Note: This course requires programming in C. Ideally you should already have experience programming in C. If you have not previously programmed in C but know another procedural language, such as Java, you will likely be able to quickly learn what you need. Talk to the instructor if you are unsure whether you are sufficiently prepared for CS 61.
Computer Systems: A Programmer's Perspective, Second Edition by Randal E. Bryant and David R. O'Hallaron. More information.
College concentration requirements
CS concentrators must take two of CS 50, CS 51, and CS 61. CS 61 may be used as one of the four half-courses in CS to satisfy the requirements for the secondary concentration in computer science. CS 61 may also be used as a technical elective for the primary concentration (if you don’t use it to fulfill other requirements).