Workshop In Computer Construction - From Nand to Tetris
Home
Syllabus
Book
Projects
Tools
Guidelines
Administratives
Projects
The projects below walk you through a step-by-step construction of a typical computer. The first five projects focus on the construction of the computer's hardware and assembler. The remaining projects deal with the construction of the computer's software hierarchy, and with the implementation of a simple Java-like language.

No. Name Deadline Remarks
Project 1 Boolean Logic February 24th, 2003  
Project 2 Boolean Arithmetic March 3rd, 2003 3 day extension
Project 3 Sequential Logic March 7th, 2003  
Project 4 Machine Language March 14th, 2003  
Project 5 Computer Architecture March 14th, 2003  
Project 6 The Assembler March 24th, 2003 3 day extension
Project 7 Virtual Machine I April 4th, 200  
Project 8 Virtual Machine II April 11th, 2003  
Project 9 The High Level Language May 12, 2003 3 day extension
Project 10 The Compiler I: Syntax Analysis May 23rd, 2003  
Project 11 The Compiler II: Code Generation June 1st, 2003 2 day extension
Project 12 The Operating System June 13th, 2003  

Each project is essentially a series of implementation exercises. Alltogether there are some 300 such exercises, each being a stand-alone hardware element (e.g. a gate or a chip) or an independent software module (e.g. a class or a method). Each exercise has an executable solution that can be plugged into the project without gaining access to the underlying source code.