COURSE SUMMARY
Course Title: 
Nand2tetris: Building Computers from First Principles
Course Code: 
15CSE357
Year Taught: 
2015
2016
2017
2018
Type: 
Elective
Degree: 
Undergraduate (UG)
School: 
School of Engineering
Campus: 
Bengaluru
Chennai
Coimbatore
Amritapuri

'Nand2tetris: Building Computers from First Principles' is a course offered in the B. Tech. in Computer Science and Engineering program at School of Engineering, Amrita Vishwa Vidyapeetham.

Unit 1

Hello World Below: Abstraction, Implementation Paradigm – HDL Overview – Implementing Gates in HDL – Combinational Logic: Design and Implement Binary Adders – Simple ALU Construction – Sequential Logic: Design and Implementation of Memory Hierarchy – Implementing Flip Flop Gates, Registers and RAM units of Arbitrary Sizes – Machine Language: Instruction Set (Binary and Assembly Versions) – Writing Low-level Assembly Programs – Running on CPU Emulator.

Unit 2

Computer Architecture: Integrating Chip-sets – Building an Assembler – Virtual Machine I: Implementing a VM to translate from VM language into assembly language – Virtual Machine II: Complete VM implementation as the back-end component of Compiler.

Unit 3

High Level Language: Introduction to Jack a high-level object-based language – Compiler I: Building a Syntax analyzer for Jack – Compiler II: Morphing syntax analyzer into a full-scale compiler – Operating System: Design and Implementation of some classical arithmetic and geometric algorithms needed for OS implementation.

  • Noam Nisan and Shimon Schocken, “The Elements of Computing Systems – Building Modern Computers from First Principles”, MIT Press, 2008.
  • Edward G. Amoroso and Matthew E. Amoroso, “From Gates to Apps”, Silicon Press, 2013
  • Roger Young, “How Computers Work: Processor and Main Memory”, Create space Independent Publishing Platform, Second Edition, 2009
  • Charles Petzold, “Code: The Hidden Language of Hardware and Software”, Microsoft Press, 2000.