Online-Computer-Science-degree

Software written in this course

I developed 2 compilers while taking this course. They require Python3.9 and can be installed with the commands below.

Compatible with Python3.9

Jack Compiler

a compiler for the Jack programming language to Jack VM code (similar to Java bytecode).

Source Code

pip install "git+https://github.com/Meisterlala/Online-Computer-Science-degree/#egg=Jack-Compiler&subdirectory=From Nand to Tetris/projects/11/JackCompiler"
JackC (file|directory)

Jack VM Translator

a compiler used to translate Jack VM code to Hack Assembly.

Source Code

pip install "git+https://github.com/Meisterlala/Online-Computer-Science-degree/#egg=VMTranslator&subdirectory=From Nand to Tetris/projects/08/VMTranslator"
VMTranslator (file|directory)

Build a Modern Computer from First Principles: From Nand to Tetris

by Hebrew University of Jerusalem

Project-Centered course

  1. Project: Building elementary logic gates like And, Or, Not, Multiplexor, and more
  2. Project: Building a family of adder chips, culminating in the construction of an Arithmetic Logic Unit (ALU)
  3. Project: Building registers and memory units, culminating in the construction of a Random Access Memory (RAM)
  4. Project: Learning a machine language and using it to write some illustrative low-level programs
  5. Project: Using the chipset built in projects 1-3 to build a Central Processing Unit (CPU) and a hardware platform capable of executing programs written in the machine language introduced in project 4
  6. Project: Developing an assembler, i.e. a capability to translate programs written in symbolic machine language into binary, executable code.

Following the online course: https://www.coursera.org/learn/build-a-computer

Build a Modern Computer from First Principles: From Nand to Tetris 2

by Hebrew University of Jerusalem

Project-Centered course

  1. Project: Programming a basic IL Language compiler
  2. Project: Adding more advanced functionality to the compiler
  3. Project: Building a Syntax Analyzer for the High-Level Language Jack
  4. Project: Completing the Jack compiler
  5. Project: Creating an Operatingsystem
  6. Project: Constructing games and running them using everything build in this Course

Following the online course: https://www.coursera.org/learn/nand2tetris2