Build a Modern Computer from First Principles: Nand to Tetris
Summary
Having been a data analyst for a while, even though I always play around programming languages like R or Python3, I found that I could not entitle myself computer "scientist" if I don't know how a computer works with only 0 and 1. Therefore, I started the journey of Nand2Tetris course on Coursera. It took me 4 months to finish both part 1 and 2 of the course (with one month taking off and project 9 skipped). It's difficult to me, but it's totally worth it. Now, I know what I need to make a CPU, how virtual machines and os handle the memory allocation, and what on earth "stack-overflow" means!
my_project
- Only the HDL, assembly, VM, and Jack language codes written by myself are included
- The original course materials were not uploaded
some helper functions to track the project working progress
- track_progress.py
- argument: nand2tetris project directory
- search for all the files in the current directory
- generate a csv file that record the "created_time" and "last_modified_time" of all files
- track_progress.R
- argument: csv generated by track_progress.py, course start time in "yyyy-mm" format
- use "created_time" and "last_modified_time" to find project files that are modified by the users, instead of the original course creators
- look for when a project was finished according to provided argument and "last_modified_time"
- generate a working progress plot
- track_progress.sh
- bash commands that execute the above mentioned scripts