Catalog Description: The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions.

Units: 4

Prerequisites: COMPSCI 61A, along with either COMPSCI 61B or COMPSCI 61BL, or programming experience equivalent to that gained in COMPSCI 9C, COMPSCI 9F, or COMPSCI 9G.

Credit Restrictions: Students will receive no credit for COMPSCI 61C after completing COMPSCI 61CL.

Summer: 6.0 hours of lecture, 2.0 hours of discussion, and 4.0 hours of laboratory per week
Fall: 3.0 hours of lecture, 1.0 hours of discussion, and 2.0 hours of laboratory per week
Spring: 3.0 hours of lecture, 1.0 hours of discussion, and 2.0 hours of laboratory per week

Grading basis: letter

Final exam status: Written final exam conducted during the scheduled final exam period

Class Schedule (Summer 2024):
CS 61C – MoTuWeTh 14:00-15:29, Valley Life Sciences 2050 – Jedidiah Tsang

Class Schedule (Fall 2024):
CS 61C – MoWeFr 10:00-10:59, Dwinelle 155 – Dan Garcia, Peyrin Kao

Class homepage on inst.eecs

Department Notes:

Starting this semester, Fall 2010, we are reinventing CS61C, starting with a blank page as to what makes sense to teach of computer architecture and hardware in 2010 that will give a solid foundation on the topic on which to build that should last for decades.

Rather the be something of a catch-all, as in the past, the goal is to learn the great ideas of computer design and implementation:

The idea is to go over the big ideas at a higher level in the first two-thirds of the course, and then go back in more depth in the last third of the course.

We use a running example through the whole course to illustrate the ideas, and will be the basis of a programming contest in the last third of the course to see who can make the fastest version running on the latest multicore hardware.

We use the C programming language and MIPS assembly language to demonstrate these great ideas. The course closely follows the Patterson and Hennessy textbook supplemented by material on the C programming language. A sample week-by-week outline follows.

Coursework will involve weekly two-hour in-laboratory exercises designed to learn the big ideas by doing experiments.