Nand2Tetris course by Hebrew University
This is a Coursera course I worked on starting May 4th till June 7th. The goal of the course is teaching how to design a working computer from logic gates all the way to a working compiler and OS.
Link to part 1 of the course: https://www.coursera.org/learn/build-a-computer
Link to part 2 of the course: https://www.coursera.org/learn/nand2tetris2
The assembler in day 6 of the course is written in C++ from scratch.