Nand2Tetris Engine Curriculum
目录
公告板
公告板使用说明:
逻辑模型 Logic Model
For now, we will use textual description to present the Logic Model. Overtime, this will be changed to a graphical model.
背景 Background
基于Shimon Schocken|和Noam Nisan 教授两位所开发的Nand2Tetris课程,把信息技术的分层知识结构,用群体学习的基本规律,开发成一个联系实体世界与群体意识的可重组学习模块。
The course: Nand2Tetris is a course developed by Prof. Noam Nisan and Prof. Shimon Schocken, who created a set of lectures and test scripts, along with a Q&A website that supports learning. We will try to leverage these supports to create a new layer of annotation and content extension, so that students who take this online course can get additional support using tools other than the ones currently provided by the Nand2Tetris website and its Q&A website.
长期目标 Long Term Goal
To provide a generalized course framework that allows learners to incrementally build up their understanding of arbitrary systems or fields using layers of abstractions and general purpose computational tools. The essence of computation and its implication on how the mind works, at least how mind can be assisted to work, can be repeatedly examined using many lenses throughout this course. We believe that this course can provide a set of basic vocabulary for thinkers, such as the logic gates, as Frege and George Boole originally proposed in the way logicians and mathematicians think. Clearly, Nand2Tetris course is about building a multi-layered computing system, with concrete tools and computational infrastructures, we also hope that we can leverage its layers of abstraction to show that many other fields of sciences can borrow these technical tools and engineering approaches to improve the thought processes of other disciplines.
However, using Logic Gates as the most primitive building blocks may not be our ultimate goal. We believe that logic gates in this book are the grounding metaphors of this version of a concrete computing system. We intend to elevate the primitive building blocks to something more generic, say "metaphors" themselves. How "metaphors" or just "functions" can be used as a way to relate to this course, will be incrementally established, starting by a mythological metaphor. This is to be developed with this wiki website as we learn that logic gates are also a kind of "function" which is a simple kind of metaphor between boolean values.
学习目标 Learning Objectives
There are some basic learning objectives
- Have participants build some systems in the process of learning new concepts. Eventually building a functional, Turing Complete computer. This computer should be able to do a lot, a lot of practical things.
- We will also use this course to depart knowledge about a number of engineering and knowledge management tools to participants. This include MediaWiki, Project Management, Version Control tools, Testing Tools and Procedures, and many others. These tools should help participants eventually acquire the a set of social contracts.
- Try to extend this learning to other disciplinary areas, such as biology and language learning.
We will store all these content in a wiki-based knowledge repository, and will try to use other tools such as Tensorflow and natural language processors to manage learning results.
预期效果 Desirable Outcomes
Four essentiall learning outcomes should come out of this course:
- A critical outcome of learning this course, is that leaners must start appreciating in an operational manner, the power of decomposition and synthesis. By using very simple logic gates, one may compose many simple functions to create a very complex, functional computational machine. One may even create a number of machines that interact with each other. The immediate outcome is that every session of the course, should guide learners to understand a particular way of decomposing and re-combining these primitive building blocks of different abstraction levels to create desirable behavior.
- Every person or team completes this course, should obtain an operationally, and '''logically consistent vocabulary'''. Once learners starts knowing the power of synthesis of decomposable building blocks, they should become aware that they can eventually develop a fully functional computer systems. The completed ones should likely reveal at least the persistence of the student teams. We will also use this as a gauge to determine the quality of dedication and knowledge coverage of the participant.
- The second part of the the learning outcome is that one must learn to use the key concepts in computation to search for supporting materials, and eventually identify useful learning support materials for their own learning experience. By learning under the guidance of building a complete computing system, and searching for material the relate to these terms, it is more likely than learning other concepts, that one will quickly acquire the skill and become accountant about the way computing scientists and mathematicians talk about complex ideas, and how to handle them with rigorous tools and methods. This is the third critical outcome of this course. Learn to search using a set of rigorous terms commonly used by computing scientists.
- The last important outcome is that learners must learn to acquire the skill of documenting their own learning experience using various presentation formats. We also expect as we have many people working on this website, as they work toward the same set of design challenges, we will gain increasingly higher quality documentation and pedagogy about how to lead new comers to learn more about multi-layered computing systems.
- As learners starts to document their own learning experience, learned to search for answers, and write intelligible questions to be posted on other supportive websites, one should start recognize that learning is not a lonely venture, it can be full of surprises, especially once you learned to reach out on the Internet, and you will gather friends from a far. This is the ultimate point of learning about computing in a crowd.
输出 Output
The output should be categorized into three items:
- A wiki-based website that continuously document the new experienced produced by learning participants.
- A number of statistical reports the summarizes how people learn. This should reveal how individuals and team-based participants work and think.
- An increasingly mature set of templates that shows how data content, testing scripts, technical ideas, and guiding principles of a living systems should be documented and presented.
- A list of relevant websites, videos, books, and papers that help anyone to learn by themselves.
过程(工作流程)
- 课程开发团队的准备工作
- 选课学生根据课程要求和提供资源自行完成学习
- 每周一次的集中学习进度报告与交流
- 全体参与者的成果展示会
- 全体学习者的知识库编撰工作
输入(资源准备)
参考
文献
- How to Bake Pi by Eugenio Cheng
- Metaphors we live by by George Lakoff
- Where Mathematics Comes From by George Lakoff and Rafael E. Núñez
- Mathematics, Form and Function by Saunders Mac Lane
- The Grammar of Science by Karl Pearson
- Grammar as Science by Richard K. Larsen
网站
[1]Nand2Tetris Q & A Website
[2]How a 2-1 MUX Work on Electronics Stack Exchange
[3] A very good explanation of how to implement MUX and DMUX
[4] Simple Logic Solver
[5]All About Circuits Website
[6]How Do Computers Work? from Programmers Stack Exchange
[7]First Principles of Derivatives from Sunshine Maths
[8]PyroEDU:Get started learning to build your own electronics by following our FREE online courses below!