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