Skip to content

Avishek8136/Nand2tetris-Coursera-Projects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nand2Tetris Course Solutions 🖥️

This repository contains my solutions and files for the Nand2Tetris course, a project-based course that takes you through building a computer system from scratch. You will design basic logic gates (using NAND gates) and build a complete software stack, including an operating system and programming language. 💻

Table of Contents 📑

  1. Overview
  2. Project List
  3. Getting Started
  4. Course Link
  5. License

Overview 🔍

The Nand2Tetris course is designed to provide a hands-on understanding of computer architecture and software development, guiding you through each phase of creating a working computer system. 🏗️

Project List 📂

The Nand2Tetris course is divided into the following projects:

  1. Project 1: Boolean Logic - Implement basic logic gates using NAND gates. 🔲
  2. Project 2: Boolean Arithmetic - Build half-adders, full-adders, and other arithmetic logic units. ➕➖
  3. Project 3: Sequential Logic - Construct flip-flops and registers, enabling the creation of sequential circuits. 🔄
  4. Project 4: Machine Language - Develop an assembly language and an assembler for a simple computer. 🖥️
  5. Project 5: Computer Architecture - Build a computer's CPU, memory, and I/O modules. ⚙️
  6. Project 6: Assembler - Create an assembler that translates symbolic machine code into binary code. 📝
  7. Project 7: Virtual Machine I - Develop a virtual machine (VM) and a stack-based programming language. 💾
  8. Project 8: Virtual Machine II - Enhance the VM to support more advanced features. 🔧
  9. Project 9: High-Level Language - Design a high-level, object-oriented programming language (Jack). 🖋️
  10. Project 10: Compiler I - Create a Jack-to-VM translator (the first half of the compiler). 🧑‍💻
  11. Project 11: Compiler II - Complete the compiler by implementing the code generation phase. ⚡
  12. Project 12: Operating System - Build a simple operating system for the Hack platform. 🖥️💻
  13. Project 13: Final Project - Combine everything learned to create your own software project. 🎯

Getting Started 🚀

To get started with these projects, clone this repository to your local machine:

git clone https://github.com/Avishek8136/nand2tetris-projects.git

Dependencies 🔧

  • Java: Required for running some of the tools and simulators. ☕
  • Python: Required for various VM and assembler projects. 🐍
  • Bash (or Command Prompt): To run the shell scripts or batch files. 💻

How to Run ▶️

Each project folder contains the necessary files (e.g., .hdl, .asm, .tst, and source code files). Follow the instructions provided in the individual project folders for compiling and testing.

Course Link 🔗

For more information on the Nand2Tetris course, visit the official Nand2Tetris website.

License 📜

This repository is licensed under the MIT License - see the LICENSE file for details.

About

Elements of Computing (EOC) Nand2tetris projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published