Coursera
Lista de cursos
  • Navegar
  • Pesquisar
  • For Enterprise
  • Entrar
  • Criar conta

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

Visão geralProgramaPerguntas frequentesDesenvolvedoresCustoClassificações e avaliações

Página inicialCiência da ComputaçãoDesenvolvimento de Software

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

Universidade Hebraica de Jerusalém

Informações sobre o curso: 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.

Para quem é direcionado este curso: Do you want to understand how the software that runs computers works, and how it is built? Do you wish to become a more competent programmer, and get a deep, hands-on understanding of some of the most fascinating gems in applied computer science? Or... do you simply get a kick from building cool systems? If so, then welcome to Nand to Tetris, Part II! you are going to work hard, and enjoy every moment along the way.


Desenvolvido por:  Universidade Hebraica de Jerusalém
Universidade Hebraica de Jerusalém

  • Shimon Schocken

    Ministrado por:  Shimon Schocken, Professor

    Computer Science
Compromisso7 weeks, each week entailing about 3 hours of video lectures and 10-15 hours programming project.
Idioma
English
Requisitos de hardwareYou'll need a personal computer -- any kind and OS is fine.
Como ser aprovadoSeja aprovado em todas as tarefas para concluir o curso.
Classificação do usuário
4.9 estrelas
Classificação média do usuário 4.9Veja o que os aprendizes disseram
Programa
SEMANA 1
Getting Started
2 vídeos, 1 leitura
  1. Reading: Week 1 Overview (start here)
  2. Vídeo: Course Overview
  3. Vídeo: Project 0 Overview
Nota atribuída: Project 0
Machine Language
10 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 0.0: Machine Language Primer
  3. Vídeo: Unit 0.1: Machine Language Overview
  4. Vídeo: Unit 0.2: Machine Language Elements
  5. Vídeo: Unit 0.3: The Hack Computer and Machine Language
  6. Vídeo: Unit 0.4: Hack Language Specification
  7. Vídeo: Unit 0.5: Handling Input and Output
  8. Vídeo: Unit 0.6: Low-Level Programming, Part I
  9. Vídeo: Unit 0.7: Low-Level Programming, Part II
  10. Vídeo: Unit 0.8: Low-Level Programming, Part III
  11. Vídeo: Unit 0.9: Project 4 Overview
  12. Ungraded Programming: Project 4
Virtual Machine I: Stack Arithmetic
11 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 1.0: The Road Ahead
  3. Vídeo: Unit 1.1: Program Compilation Preview
  4. Vídeo: Unit 1.2: VM Abstraction: the Stack
  5. Vídeo: Unit 1.3: VM Abstraction: Memory Segments
  6. Vídeo: Unit 1.4: VM Implementation: the Stack
  7. Vídeo: Unit 1.5: VM Implementation: Memory Segments
  8. Vídeo: Unit 1.6: The VM Emulator
  9. Vídeo: Unit 1.7: VM Implementation on the Hack Platform
  10. Vídeo: Unit 1.8: VM Translator: Proposed Implementation
  11. Vídeo: Unit 1.9: Project 7: Building the VM Translator, Part I
  12. Vídeo: Unit 1.10: Perspective
Nota atribuída: Project 7
SEMANA 2
Virtual Machine II: Program Control
10 vídeos, 1 leitura
  1. Reading: Module overview (start here)
  2. Vídeo: Unit 2.1: Program Control
  3. Vídeo: Unit 2.2: Branching
  4. Vídeo: Unit 2.3: Functions: Abstraction
  5. Vídeo: Unit 2.4: Function Call and Return: Implementation Preview
  6. Vídeo: Unit 2.5: Function Call and Return: Run-time Simulation
  7. Vídeo: Unit 2.6: Function Call and Return Implementation
  8. Vídeo: Unit 2.7: VM Implementation on the Hack Platform
  9. Vídeo: Unit 2.8: VM Translator: Proposed Implementation
  10. Vídeo: Unit 2.9: Project 8: Building the VM Translator, Part II
  11. Vídeo: Unit 2.10: Perspective
Nota atribuída: Project 8
SEMANA 3
High-Level Language
11 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 3.1: The Jack Language in a nutshell
  3. Vídeo: Unit 3.2: Object-Based Programming
  4. Vídeo: Unit 3.3: List Processing
  5. Vídeo: Unit 3.4: Jack Language Specification: Syntax
  6. Vídeo: Unit 3.5: Jack Language Specification: Data Types
  7. Vídeo: Unit 3.6: Jack Language Specification: Classes
  8. Vídeo: Unit 3.7: Jack Language Specification: Methods
  9. Vídeo: Unit 3.8: Developing Apps using the Jack language and OS
  10. Vídeo: Unit 3.9: A Sample Jack App: Square Dance
  11. Vídeo: Unit 3.10: Graphics Optimization
  12. Vídeo: Unit 3.11: Perspective
Nota atribuída: Project 9
SEMANA 4
Compiler I: Syntax Analysis
10 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 4.1: Syntax Analysis
  3. Vídeo: Unit 4.2: Lexical Analysis
  4. Vídeo: Unit 4.3: Grammars
  5. Vídeo: Unit 4.4: Parse Trees
  6. Vídeo: Unit 4.5: Parser Logic
  7. Vídeo: Unit 4.6: The Jack Grammar
  8. Vídeo: Unit 4.7: The Jack Analyzer
  9. Vídeo: Unit 4.8: The Jack Analyzer: Proposed Implementation
  10. Vídeo: Unit 4.9: Project 10: Building a Syntax Analyzer
  11. Vídeo: Unit 4.10: Perspective
Nota atribuída: Project 10
SEMANA 5
Compiler II: Code Generation
12 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 5.1: Code Generation
  3. Vídeo: Unit 5.2: Handling Variables
  4. Vídeo: Unit 5.3: Handling Expressions
  5. Vídeo: Unit 5.4: Handling Flow of Control
  6. Vídeo: Unit 5.5: Handling Objects: Low-Level Aspects
  7. Vídeo: Unit 5.6: Handling Objects: Construction
  8. Vídeo: Unit 5.7: Handling Objects: Manipulation
  9. Vídeo: Unit 5.8: Handling Arrays
  10. Vídeo: Unit 5.9: Standard Mapping Over the Virtual Machine
  11. Vídeo: Unit 5.10: Completing the Compiler: Proposed Implementation
  12. Vídeo: Unit 5.11: Project 11
  13. Vídeo: Unit 5.12: Perspective
Nota atribuída: Project 11
SEMANA 6
Operating System
14 vídeos, 1 leitura
  1. Reading: Module Overview (start here)
  2. Vídeo: Unit 6.1: Operating System
  3. Vídeo: Unit 6.2: Efficiency Matters
  4. Vídeo: Unit 6.3: Mathematical Operations
  5. Vídeo: Unit 6.4: Memory Access
  6. Vídeo: Unit 6.5: Heap Management
  7. Vídeo: Unit 6.6: Graphics
  8. Vídeo: Unit 6.7: Line Drawing
  9. Vídeo: Unit 6.8: Handling Textual Output
  10. Vídeo: Unit 6.9: Input
  11. Vídeo: Unit 6.10: String Processing
  12. Vídeo: Unit 6.11: Array Processing
  13. Vídeo: Unit 6.12: The Sys Class
  14. Vídeo: Unit 6.13: Project 12: Building the OS
  15. Vídeo: Unit 6.14: Perspective
Nota atribuída: Project 12
SEMANA 7
Postscript: More Fun to Go
4 vídeos
  1. Vídeo: Unit 7.1: More Fun To Go
  2. Vídeo: Unit 7.2: More Fun To Go
  3. Vídeo: Unit 7.3: More Fun To Go
  4. Vídeo: Unit 7.4: More Fun To Go

Perguntas frequentes
Como funciona
Coursework
Coursework

Each course is like an interactive textbook, featuring pre-recorded videos, quizzes and projects.

Help from Your Peers
Help from Your Peers

Connect with thousands of other learners and debate ideas, discuss course material, and get help mastering concepts.

Certificates
Certificates

Earn official recognition for your work, and share your success with friends, colleagues, and employers.

Desenvolvedores
Universidade Hebraica de Jerusalém
Ranked among the top academic and research institutions worldwide, the Hebrew University of Jerusalem is Israel's leading university and premier research institution. Serving 23,000 students from 70 countries, the Hebrew University produces a third of Israel’s civilian research and is ranked 12th worldwide in biotechnology patent filings and commercial development. The Hebrew University was founded in 1918 by visionaries including Albert Einstein, Sigmund Freud, Martin Buber and Chaim Weizmann. It is located on three campuses in Jerusalem and a fourth in Rehovot. Visit the website at http://new.huji.ac.il/en. Join our online learners community at https://www.facebook.com/groups/hujimooc/.
Custo
Comprar curso
Acesso aos materiais do curso

Disponível

Acesso a materiais valendo nota

Disponível

Receba uma nota final

Disponível

Obtenha um Certificado de Curso compartilhável

Disponível

Classificações e avaliações
Avaliado em 4.9 de 5 decorrente de 134 avaliações

LN

Very well structured, you learn a lot, primarily by doing, which is the best learning. The project where you program in Jack is in my opinion unnecessary, and the OS part is just a bag of random stuff, but overall, one of the best courses out there.

SH

Great course! Cannot imagine how can I build in two weeks the whole compiling software that translates an OO language down to machine code! Although the part II needs more work than part I, it is still manageable and equally inspiring!

MM

This was a great course which tied together so many loose ends for me. E.g., I knew that OO languages would add a hidden "this" parameter, that compiling would get rid of symbols, that malloc worked with a heap, but now I REALLY know how all that works.

QK

This is the life-changing course!



Talvez você também goste de
EIT Digital
System Validation (2): Model process behaviour
1 curso
EIT Digital
System Validation (2): Model process behaviour
Visualizar curso
EIT Digital
System Validation (3): Requirements by modal formulas
1 curso
EIT Digital
System Validation (3): Requirements by modal formulas
Visualizar curso
EIT Digital
System Validation (4): Modelling Software, Protocols, and other behaviour
1 curso
EIT Digital
System Validation (4): Modelling Software, Protocols, and other behaviour
Visualizar curso
EIT Digital
System Validation: Automata and behavioural equivalences
1 curso
EIT Digital
System Validation: Automata and behavioural equivalences
Visualizar curso
EIT Digital
Quantitative Model Checking
1 curso
EIT Digital
Quantitative Model Checking
Visualizar curso
Coursera
O Coursera proporciona acesso universal à melhor educação do mundo fazendo parcerias com as melhores universidades e organizações para oferecer cursos on-line.
© 2018 Coursera Inc. Todos os direitos reservados.
Baixar na App StoreBaixar no Google Play
  • Coursera
  • Sobre
  • Liderança
  • Carreiras
  • Lista de cursos
  • Certificados
  • Notas
  • Para negócios
  • For Government
  • Comunidade
  • parceiros
  • Orientadores
  • Tradutores
  • Desenvolvedores
  • Testadores beta
  • Conectar
  • Blog
  • Facebook
  • LinkedIn
  • Twitter
  • Google+
  • Tech Blog
  • Mais
  • Termos
  • Privacidade
  • Ajuda
  • Acessibilidade
  • Imprensa
  • Contato
  • Diretório
  • Afiliados