К содержимому
learnspaceYOUR NEXT CHAPTER
ПРОСТРАНСТВО ОБУЧЕНИЯ
ГлавнаяКаталог курсовМоё обучениеCoursera

Знания без границ

Учитесь у лучших университетов и компаний мира.

Открыть Coursera
Интеграция
Пространство университета
Моё пространствоСтраница курса
↵
ЯЛичный кабинетСтудент
© 2026 LearnSpaceКаждый день — возможность узнать больше.Помощь
Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) · LearnSpace
Назад в каталог
courseraПрограммирование

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)

Курс от Hebrew University of Jerusalem
Уровень не указан≈ 90 чАнглийский
О курсеНавыкиПрограммаПреподаватели

О курсе

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.

Навыки, которые вы освоите

Computer ProgrammingVirtual MachinesProgram DevelopmentProgramming PrinciplesData StructuresComputer GraphicsSoftware DesignSoftware ArchitectureOperating SystemsObject Oriented Programming (OOP)System SoftwareHardware ArchitectureComputer ArchitectureMemory ManagementComputer ScienceComputer SystemsPeripheral DevicesAlgorithmsSystem Programming

Программа курса

9 модулей · 100 учебных материалов

01Getting Started4 материалов

Course Overview

Week 1 Overview (start here)ЧтениеCourse OverviewВидеоProject 0 OverviewВидеоProject 0Программирование
02

Учитесь у экспертов

Shimon Schocken

Professor

Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course)
В каталоге вашей программы

Инвестируйте в себя

Новые знания — в удобное для вас время.

Начать на Coursera

Обучение откроется на Coursera
в новой вкладке

Обучение на Coursera

≈ 90 ч

9 модулей

Язык: Английский

Субтитры: Арабский, Французский, Бенгальский, Украинский, Китайский (Китай), Греческий, Итальянский, Бразильский португальский, Вьетнамский, Нидерландский, Корейский, Немецкий, Пушту, Урду, Русский, Тайский, Индонезийский, Шведский, Турецкий, Азербайджанский, Испанский, Дари, Хинди, Японский, Казахский, Венгерский, Польский

Часть программы вашего университета
Machine Language12 материалов

Module 0: Machine Language

Module Overview (start here)ЧтениеUnit 0.0: Machine Language PrimerВидеоUnit 0.1: Machine Language OverviewВидеоUnit 0.2: Machine Language ElementsВидеоUnit 0.3: The Hack Computer and Machine LanguageВидеоUnit 0.4: Hack Language SpecificationВидеоUnit 0.5: Handling Input and OutputВидеоUnit 0.6: Low-Level Programming, Part IВидеоUnit 0.7: Low-Level Programming, Part IIВидеоUnit 0.8: Low-Level Programming, Part IIIВидеоUnit 0.9: Project 4 OverviewВидеоProject 4Программирование
03Virtual Machine I: Stack Arithmetic13 материалов

Module 1: Virtual Machine I: Stack Arithmetic

Module Overview (start here)ЧтениеUnit 1.0: The Road AheadВидеоUnit 1.1: Program Compilation PreviewВидеоUnit 1.2: VM Abstraction: the StackВидеоUnit 1.3: VM Abstraction: Memory SegmentsВидеоUnit 1.4: VM Implementation: the StackВидеоUnit 1.5: VM Implementation: Memory SegmentsВидеоUnit 1.6: The VM EmulatorВидеоUnit 1.7: VM Implementation on the Hack PlatformВидеоUnit 1.8: VM Translator: Proposed ImplementationВидеоUnit 1.9: Project 7: Building the VM Translator, Part IВидеоUnit 1.10: PerspectiveВидеоProject 7Программирование
04Virtual Machine II: Program Control12 материалов

Module 2: Virtual Machine II: Program Control

Module overview (start here)ЧтениеUnit 2.1: Program ControlВидеоUnit 2.2: BranchingВидеоUnit 2.3: Functions: AbstractionВидеоUnit 2.4: Function Call and Return: Implementation PreviewВидеоUnit 2.5: Function Call and Return: Run-time SimulationВидеоUnit 2.6: Function Call and Return ImplementationВидеоUnit 2.7: VM Implementation on the Hack PlatformВидеоUnit 2.8: VM Translator: Proposed ImplementationВидеоUnit 2.9: Project 8: Building the VM Translator, Part IIВидеоUnit 2.10: PerspectiveВидеоProject 8Программирование
05High-Level Language13 материалов

Module 3: High Level Language

Module Overview (start here)ЧтениеUnit 3.1: The Jack Language in a nutshellВидеоUnit 3.2: Object-Based ProgrammingВидеоUnit 3.3: List ProcessingВидеоUnit 3.4: Jack Language Specification: SyntaxВидеоUnit 3.5: Jack Language Specification: Data TypesВидеоUnit 3.6: Jack Language Specification: ClassesВидеоUnit 3.7: Jack Language Specification: MethodsВидеоUnit 3.8: Developing Apps using the Jack language and OSВидеоUnit 3.9: A Sample Jack App: Square DanceВидеоUnit 3.10: Graphics OptimizationВидеоUnit 3.11: PerspectiveВидеоProject 9Взаимная проверка
06Compiler I: Syntax Analysis12 материалов

Module 4: Compiler I: Syntax Analysis

Module Overview (start here)ЧтениеUnit 4.1: Syntax AnalysisВидеоUnit 4.2: Lexical AnalysisВидеоUnit 4.3: GrammarsВидеоUnit 4.4: Parse TreesВидеоUnit 4.5: Parser LogicВидеоUnit 4.6: The Jack GrammarВидеоUnit 4.7: The Jack AnalyzerВидеоUnit 4.8: The Jack Analyzer: Proposed ImplementationВидеоUnit 4.9: Project 10: Building a Syntax AnalyzerВидеоUnit 4.10: PerspectiveВидеоProject 10Программирование
07Compiler II: Code Generation14 материалов

Module 5: Compiler II: Code Generation

Module Overview (start here)ЧтениеUnit 5.1: Code GenerationВидеоUnit 5.2: Handling VariablesВидеоUnit 5.3: Handling ExpressionsВидеоUnit 5.4: Handling Flow of ControlВидеоUnit 5.5: Handling Objects: Low-Level AspectsВидеоUnit 5.6: Handling Objects: ConstructionВидеоUnit 5.7: Handling Objects: ManipulationВидеоUnit 5.8: Handling ArraysВидеоUnit 5.9: Standard Mapping Over the Virtual MachineВидеоUnit 5.10: Completing the Compiler: Proposed ImplementationВидеоUnit 5.11: Project 11ВидеоUnit 5.12: PerspectiveВидеоProject 11Программирование
08Operating System16 материалов

Module 6: Operating System

Module Overview (start here)ЧтениеUnit 6.1: Operating SystemВидеоUnit 6.2: Efficiency MattersВидеоUnit 6.3: Mathematical OperationsВидеоUnit 6.4: Memory AccessВидеоUnit 6.5: Heap ManagementВидеоUnit 6.6: GraphicsВидеоUnit 6.7: Line DrawingВидеоUnit 6.8: Handling Textual OutputВидеоUnit 6.9: InputВидеоUnit 6.10: String ProcessingВидеоUnit 6.11: Array ProcessingВидеоUnit 6.12: The Sys ClassВидеоUnit 6.13: Project 12: Building the OSВидеоUnit 6.14: PerspectiveВидеоProject 12Программирование
09Postscript: More Fun to Go4 материалов

Module 7: Postscript: More Fun to Go

Unit 7.1: More Fun To GoВидеоUnit 7.2: More Fun To GoВидеоUnit 7.3: More Fun To GoВидеоUnit 7.4: More Fun To GoВидео