|
所在平台: Coursera |
课程主页: https://www.coursera.org/learn/nand2tetris2
课程评论:没有评论
课程名称:从基本原理构建现代计算机:Nand到Tetris 第二部分(项目为中心的课程) 课程概述:本课程以项目为中心,您将构建一个现代软件层次结构,以实现面向对象的高级语言在基础计算机硬件平台上的翻译和执行。具体而言,您将实现一个虚拟机和一个简单的类似Java的编程语言的编译器,并开发一个基本的操作系统,以填补高级语言与底层硬件平台之间的空白。在此过程中,您将深入了解应用计算机科学的多个主题,例如栈处理、解析、代码生成以及用于内存管理、矢量图形、输入输出处理的经典算法和数据结构等。这些内容都是现代计算机系统的核心。 课程特点:这是一个自给自足的课程,所需的知识将在学习过程中提供。唯一的先决条件是具备计算机科学入门课程所需的编程知识。所有完成课程所需的软件工具和材料将在您注册后免费提供。 本课程配有教材《计算系统的元素》(Nisan 和 Schocken,麻省理工学院出版社)。尽管不是必需的,但该书对所有课程主题进行了方便的覆盖,并且可以以纸质书或电子书形式获取。使用折扣代码MNTT30可在麻省理工学院出版社网站上享受书籍封面价格的30%折扣。 课程分为六个模块,每个模块包括一系列视频讲座和一个项目。每个模块的讲座观看大约需要2-3小时,而完成六个项目需要大约15小时。本课程可以在六周内完成,但您可以根据自己的节奏学习。您可以通过搜索“Nand2Tetris TED talk”观看关于本课程的TED演讲。 *关于项目为中心的课程:项目为中心的课程旨在帮助您完成一个具有个人意义的现实项目,教师和有相似目标的学习社区将在这个过程中提供指导和建议。通过在学习新概念时积极应用,您将更有效地掌握课程内容,并在生活和职业中积极使用所得技能。完成课程后,您将拥有一个成品项目,自豪地使用和分享。 课程大纲: 1. 虚拟机 I:栈算术 2. 虚拟机 II:程序控制 3. 高级语言 4. 编译器 I:语法分析 5. 编译器 II:代码生成 6. 操作系统 7. 后记:更多乐趣进行中
Part: 1
Title:Virtual Machine I: Stack Arithmetic
Description:
Part: 2
Title:Virtual Machine II: Program Control
Description:
Part: 3
Title:High-Level Language
Description:
Part: 4
Title:Compiler I: Syntax Analysis
Description:
Part: 5
Title:Compiler II: Code Generation
Description:
Part: 6
Title:Operating System
Description:
Part: 7
Title:Postscript: More Fun to Go
Description:
In this project-centered course you will build a modern software hierarchy, designed to enable the translation and execution of object-based, high-level languages on a bare-bone computer hardware platform. In particular, you will implement a virtual machine and a compiler for a simple, Java-like programming language, and you will develop a basic operating system that closes gaps between the high-level language and the underlying hardware platform. In the process, you will gain a deep, hands-on understanding of numerous topics in applied computer science, e.g. stack processing, parsing, code generation, and classical algorithms and data structures for memory management, vector graphics, input-output handling, and various other topics that lie at the very core of every modern computer system. This is a self-contained course: all the knowledge necessary to succeed in the course and build the various systems will be given as part of the learning experience. The only prerequisite is knowledge of programming at the level acquired in introduction to computer science courses. All the software tools and materials that are necessary to complete the course will be supplied freely after you enrol in the course. This course is accompanied by the textbook "The Elements of Computing Systems" (Nisan and Schocken, MIT Press). While not required for taking the course, the book provides a convenient coverage of all the course topics. The book is available in either hardcopy or ebook form, and MIT Press is offering a 30% discount off the cover price by using the discount code MNTT30 at https://mitpress.mit.edu/books/elements-computing-systems. The course consists of six modules, each comprising a series of video lectures, and a project. You will need about 2-3 hours to watch each module's lectures, and about 15 hours to complete each one of the six projects. The course can be completed in six weeks, but you are welcome to take it at your own pace. You can watch a TED talk about this course by Googling "nand2tetris TED talk". *About Project-Centered Courses: Project-centered courses are designed to help you complete a personally meaningful real-world project, with your instructor and a community of learners with similar goals providing guidance and suggestions along the way. By actively applying new concepts as you learn, you’ll master the course content more efficiently; you’ll also get a head start on using the skills you gain to make positive changes in your life and career. When you complete the course, you’ll have a finished project that you’ll be proud to use and share.