NOTOC
Harvard School of Engineering and Applied Sciences Fall 2014 Eddie Kohler
Lectures: Tuesday/Thursday, 2:30-4:00 Location: Maxwell Dworkin G115
Syllabus | Schedule | Section notes | Course staff, office hours Infrastructure | Git | Resources | Coding style | C Patterns Extension school | Lecture videos | Live video stream! | Lecture feedback Piazza | Grading server
Announcements
- M 12/15: Final question bank answers posted.
- R 12/11: Final question bank posted.
- F 12/5: Code reviews calendar
- M 12/1: Our final is Th 12/18 at 2pm in Science Center C.
- Su 11/23: Assignment 6 released.
- T 11/11: Unix notes.
- Su 11/9: Assignment 5 released.
- F 10/31: The incredibly spooky Exercise VM released. These will be Section Notes 8.
- Su 10/26: Assignment 4 released.
- W 10/22: Midterm solutions posted.
- W 10/15: Midterm review video posted.
- T 10/14: Midterm will be in Emerson 105.
- M 10/13: Assignment 3 released.
- M 10/13: Midterm Review 2014, Answers and Midterm Glossary posted.
- M 10/13: Answers to question bank posted.
- R 10/9: Midterm question bank posted.
- R 10/9: Exercise IO solutions updated.
- W 10/8: Exercise IO posted.
- W 9/24: Assignment 2 released.
- T 9/23: Lecture 6 I/O costs
- W 9/17: Scribe note schedule posted
- F 9/12: Useful GDB Commands
- R 9/4: Exercise P (exercises for pointers and pointer arithmetic) released.
- W 9/3: Assignment 1 released.
About
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.
Prerequisites
CS 50, CS 51, or the instructor's permission.
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.
Textbook
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).
Extension school
CS 61 is offered through the Extension School as CSCI E-61. See information for Extension students.