As a Computer Science Student in the Hebrew University of Jerusalem, I was required to take the From Nand to Tetris course.
This is a course that teaches you about logic gates, hardware, compilers and operating systems, using Python as the main language.
It lasted 13 weeks, in which, we've submitted a total of 12 exercises in various fields and topics.
More information can be found Here.
- Exercise 1 - Boolean Logic »
- ⤷ Implementation of basic Logic Gates
- Exercise 2 - Boolean Arithmetic »
- ⤷ Implementation of Arithmetic Chips
- Exercise 3 - Sequential Logic »
- ⤷ Implementation of Sequential Chips
- Exercise 4 - Machine Language »
- ⤷ Familiarization with the Nand2Tetris Machine Language
- Exercise 5 - Computer Architecture »
- ⤷ Implementation of Computer Architecture Chips
- Exercise 6 - Assembler »
- ⤷ Implementation of an Assembler, translating to Machine Language
- Exercise 7 - Virtual Machine Translator (Part 1) »
- ⤷ Implementation of a VM translator for Arithmetic operations
- Exercise 8 - Virtual Machine Translator (Part 2) »
- ⤷ Implementation of a VM translator for Functions and Program-Flow
- Exercise 9 - High Level Programing »
- ⤷ Development of a game with the Jack language
- Exercise 10 - Compilation (Part 1) »
- ⤷ Implementation of a Jack Compiler (XML Structured)
- Exercise 11 - Compilation (Part 2) »
- ⤷ Implementation of a Jack Compiler
- Exercise 12 - Operating System »
- ⤷ Implementation of a working, basic, Operating System
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.