The staff of M.I.T. 6.004
NOTE: These course materials are an incomplete, evolving, work in progress. Feedback, comments, and errata are welcome; please direct them to

Computation Structures is an introductory course about the design and implementation of digital systems, emphasizing structural principles common to a wide range of technologies.

Starting at the device level, the course develops a hierarchical set of building blocks — logic gates, combinational and sequential circuits, finite-state machines, processors and finally complete systems. Both hardware and software mechanisms are explored through a series of design examples. The problem sets and lab exercises are intended to give students hands-on experience in designing digital systems; students complete the gate-level design for a RISC processor during the lab exercises.