
Lecture notes for each slide of each lecture.
Video presentations of each lecture as a sequence of short videos with transcripts.
Exercises for each lecture, selected from old quiz problems.
Textbook-style presentation for some of the lectures.
Interactive exercises and design problems using browser-based tools.

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.