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.

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.

No. Name Deadline % of final grade Remarks
Project 1 Boolean Logic 13/11/2005 5  
Project 2 Boolean Arithmetic 13/11/2005 5  
Project 3 Sequential Logic 20/11/2005 5  
Project 4 Machine Language 27/11/2005 5  
Project 5 Computer Architecture 4/12/2005 5  
Project 6 The Assembler 11/12/2005 5  
First Interview   Mid December 10  
Project 7 Virtual Machine I 22/12/2005 15  
Project 8 Virtual Machine II 29/12/2005 With project 7  
Project 9 The High Level Language 8/1/2006 10  
Project 10 The Compiler I: Syntax Analysis 19/1/2006 15  
Project 11 The Compiler II: Code Generation 26/1/2006 with project 10  
Project 12 The Operating System 2/2/2006 10  
Second Interview   Late January 10  

General Comments:

1. Submission is in pairs (or singles). The interviews will be personal. Each pair member is expected to fully understand every part of every project.
2. Electronic submissions are due at 8:00AM on the day specified.
3. There will be no extension to the last project.
4. Exact times and dates for the interviews will be scheduled.