It's a wonderful course by Noam Nisan and Shimon Schocken where you build a computer starting from NAND logic gates all the way up. Visit https://www.nand2tetris.org/ for more info. Any reprinting or publishing, just like this upload on github follows from their statement on their website:
The materials are aimed at students, instructors, and self-learners. Everything is free and open-source, as long as you operate in a non-profit, educational setting.
Feel free to use my repo to compare solutions or if you're stuck.