About the Book and the Course

This site supports a course and a textbook that guide students and self-learners through the construction of a modern, full-scale computer system (hardware and software) from first principles. In the process, the students practice many major computer science (CS) abstractions studied in typical CS courses and make them concrete through 12 guided implementation projects. The lectures, book chapters and projects are highly modular and one can pursue subsets of them in any order and scope.

The hardware projects can be built on any personal computer using a simple Hardware Description Language (HDL) and a hardware simulator supplied on this site. The software projects (assembler, virtual machine, and compiler for a simple object-based language) can be developed in any programming language, using the project materials available in this site. A mini-OS is also built, using the high-level language designed in the course. All software and course materials can be downloaded freely and in open source from this site.

Motivation: Many CS students don't understand how computers work. By gradually constructing and unit-testing a complete hardware-software platform from the ground up, students of this course discover how computer systems work, and how they are built. In the process, they also end up implementing some of the coolest algorithms, data structures and techniques in applied computer science.
Pre-requisites: The course and the book are completely self-contained, requiring only programming (in any language) as a pre-requisite. All the CS knowledge necessary for this course is given in the book. The result is a synthesis course that can be taken at any stage in an undergraduate or graduate CS program following programming.

Here is a sample of a course syllabus based on this site and book. Courses based on the book routinely get top student feedbacks. This particular course got 4.5 out of 5.

Here are slides for a 1-hour presentation that the authors sometimes give about this course/book.

Site design & construction by Yannai A. Gonczarowski