6.004 | Spring 2009 | Undergraduate

Computation Structures

Course Description

6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks — logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored …

6.004 offers an introduction to the engineering of digital systems. Starting with MOS transistors, the course develops a series of building blocks — logic gates, combinational and sequential circuits, finite-state machines, computers and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples.

6.004 is required material for any EECS undergraduate who wants to understand (and ultimately design) digital systems. A good grasp of the material is essential for later courses in digital design, computer architecture and systems. The problem sets and lab exercises are intended to give students “hands-on” experience in designing digital systems; each student completes a gate-level design for a reduced instruction set computer (RISC) processor during the semester.

Learning Resource Types
Problem Sets with Solutions
Exams with Solutions
Lecture Notes
Cartoon of a student taking a part out of the Beta Kit and wondering where it goes.
In this course, students are asked to design a CPU (central processing unit) starting at gate level. See the Labs section for more details. (Image by Prof. Steve Ward.)