Nonetheless, I highly recommend everyone who is interested in CS to take this course.
Listening to podcasts with people in tech, you'll often hear that they got interested in the field because they built their own computers or coded their own games. Elon, for example, sold his first computer game at the age of 12 and built custom computers for others in university.
Now, that most people have laptops it becomes harder to just open them up, check what's inside and put it back together. Of course you could buy go and buy all the parts separately or get a DIY kit. Though this might not be logistically feasible for everyone which is a shame because this kind of tinkering is a great learning vehicle for anything related to Computer Science.
What if you could virtualize the whole experience while being guided by some world-class CS professors? Enter Nand to Tetris.
A game changer in CS education
Nand to Tetris was created by two CS professors, Noam Nisan and Shimon Schocken. In a nutshell, you'll build your own computer in a bottom-up fashion all the way up from NAND gates.
In the process, you'll get a hands-on coverage of most of the important ideas and techniques in applied computer science, focusing on computer architecture, compilation, and software engineering, in one course. Nand to Tetris also provides a hands-on overview of key data structures and algorithms, as they unfold in the context of 12 captivating hardware and software development projects.
Nand to Tetris courses are now taught at 200+ universities and high schools around the world. The students who take them range from high school students to Ph.D. students to Google engineers.
Task: Earn $500 in BTC
Complete all 12 projects and submit a link to the Github project repository
- Boolean Logic
- Boolean Arithmetic
- Sequential Logic
- Machine Language
- Computer Architecture
- Virtual Machine I: Stack Arithmetic
- Virtual Machine II: Program Control
- High Level Language
- Compiler I: Syntax Analysis
- Compiler II: Code Generation
- Operating System
During these 12 projects you will build your own Assembler, Virtual Machine, Java-like High Level Language, Compiler and Operating System. In the optional 13th project you can tie all these things together to write an implementation of Tetris or any other game of your choice using all the components you previously built.