cs-self-learning/docs/体系结构/N2T.en.md
2022-09-29 22:13:43 +08:00

3.1 KiB
Raw Blame History

Coursera: Nand2Tetris

Descriptions

  • Offered by: Hebrew University of Jerusalem
  • Prerequisites: None
  • Programming Languages: Choose by course taker
  • Difficulty: 🌟🌟🌟
  • Class Hour: 40 hours

As a popular course on Coursera marked by tens of thousands of people as full stars and adopted by over four hundred colleges, universities and high schools, it enables a layman in computer science to build a computer from Nand (Not And) logic gates, and run Tetris on it ultimately.

Sounds cool, right? It's even cooler when you implement it!

The course is divided into two parts, hardware and software respectively.

In hardware portion, you will dive into a world based on 0 and 1, create various logic gates from Nand gates, and step by step construct a CPU to run a set of simple assembly codes defined by course instructors.

And in software part, you will write a compiler, and compile a high-level language Jack into byte codes which can run on virtual machines, and translate them into assembly language finally. The high-level language Jack is developed by the authors. You will also develop a simple and easy OS (operating system), which enable your computer to input and output graphic interfaces.

So now, you can use Jack to create your Tetris, compile it into assembly version, run it on your Nand-based CPU, and interact with it through the OS built by yourself. After taking this course, you will have a comprehensive and profound understanding of the entire computer architecture, which might be extremely helpful to your subsequent learning.

Probably, you may worry that the course is too difficult, but please note that the course is completely layman-orientated. Making even high school students understood the course is the authors' expectation. So as long as you keep pace with the syllabus and schedule, it's definitely enough for you to finish it within one month. Simple, yet all-encompassing and self-sufficient, this course superbly extracts the essence of computer, while not be trapped by tedious and complex details which are designed for efficiency and performance. Surely you will sense the elegance and magic of modern computers with a relaxing and jolly learning experience.

Course Resources

Personal Resources

All the resources and assignments used by @PKUFlyingPig are maintained in PKUFlyingPig/NandToTetris - GitHub.