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

share ›
‹ links

Below are the top discussions from Reddit that mention this online Coursera course from Hebrew University of Jerusalem.

Offered by Hebrew University of Jerusalem. In this project-centered course you will build a modern software hierarchy, designed to enable ... Enroll for free.

Reddsera may receive an affiliate commission if you enroll in a paid course after using these buttons to visit Coursera. Thank you for using these buttons to support Reddsera.

Taught by
Shimon Schocken
and 9 more instructors

Offered by
Hebrew University of Jerusalem

Reddit Posts and Comments

2 posts • 34 mentions • top 25 shown below

r/hackernews • post
21 points • qznc_bot
Build a Modern Computer from First Principles: Nand to Tetris Part II
r/CFBOffTopic • comment
5 points • VeryFancyCat

Do I want to take this class or a more relevant one?

This looks interesting:

r/NandToTetris • post
3 points • peterb12
Part 2 of Nand2Tetris on Coursera starts January 15th, 2017
r/AskReddit • comment
3 points • Warshon

I'd suggest nand2tetris. They have a course on coursera that I took and I highly recommend it. It teaches how a simple logic gate can be used to create upwardly increasing circuitry, up to a computer. The first course is the hardware side, while the second course is supposedly on the software side.

r/learnprogramming • comment
1 points • abbadon420

To get a better grasp on stack and heap, i'd suggest nand2tetris part 2

r/computerscience • comment
3 points • heisenberg523

You should try the nand2tetris course. I think it is just what you are looking for.
Coursera link: Part I & Part II

r/learnprogramming • comment
2 points • ludonarrator

There are a few resources I would suggest, pick whichever ones suit your level / taste:

  • Tanenbaum's Structured Computer Organization: you'll probably breeze through this book in a few days, since you're already fluent with low level paradigms, but it does take you from hardware all the way up to software, and in great detail. It's a textbook, so you can skip all the academic stuff like exercises.

  • Silberschatz, Galvin, and Gagne's Operating System Concepts (the dinosaur book): this goes into the nuts and bolts of OS: from processes and their scheduling to virtual memory and paging to filesystems and networks.

  • [Crash Course Computer Science] ( (YouTube playlist): a concise yet startlingly comprehensive summary of everything, in friendly video form, a total of perhaps 6-8 hours of watch time.

  • Teach Yourself CS: a collection of resources, most of which are quite dense, but some are light.

  • NAND to Tetris is popular and well known, although I haven't personally taken the course.

r/learnprogramming • comment
1 points • wnl8

In the first part, you build the building blocks of a computer(logic gates, ALU, cpu, etc) using a hardware coding language on a software program. You’re not assembling components like power supplies, hard drive, graphic cards when building a PC if that’s what you were thinking. It’s low level. The second part is when you build the software layer, like a compiler, a VM, a simple OS, and then finally you develop a game like Tetris that you can run on the computer you just built. Here are the links for both parts.

r/computerscience • comment
1 points • LonghairedHippyFreek

Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course)

Build a Modern Computer from First Principles: Nand to Tetris Part II (Project-Centered Course)

r/learnprogramming • comment
1 points • [deleted]

I really don't see why you want to use C.

Take these courses:



If you haven't taken a computer architecture and organization class, then using C is a huge waste of time for you.

r/programming • comment
1 points • chanamasala4life

I gained a lot of insight into the inner workings of a computer with this:

It will run you through constructing a computer from pure and simple NAND gates up to programming Tetris to run on it using a hardware simulator. There's also a part 2:

Might want to give that a spin...

r/learnprogramming • comment
1 points • thehershel

OSdev wiki looks like a perfect resource but if you're looking for something less serious that you could start right away I recommend this course: (actually maybe you should check the first part as well).

r/OMSCS • comment
1 points • my_password_is______

these two might be interesting

I haven't taken them, but I plan too

week 6 of the first course has them doing assembly language

r/FPGA • comment
1 points • tonybenbrahim

You could not do this in 12 weeks unless you are a brilliant Ph.D. candidate in Computer Science at an elite school. This must be a joke.

Look at a book called The Elements of Computing Systems, Building a Modern Computer from First Principles instead. There are some videos on YouTube previewing the book and the associated college class, and there is a free Coursera course

r/OMSCS • post
2 points • vivekng
New OMSCS student

I recently got admitted for Spring 2020 and planning to take GIOS as my first course.

Although I have significant programming experience and work as a data engineer , I do not have any system programming experience and am worried that the direct leapt to a OS course will spell trouble.

The only closest thing to systems that I did was the nand2tetris course, (1 and 2) which i completed late last year.

Please advise on the prep to keep me adequately prepared for the GIOS course.

I am looking to enroll in as a Non degree SCPD student but the course costs a whopping 6.5 k .

I am looking at much cheaper options but a course of high quality which will set me up in the right direction.


r/ProgrammingLanguages • comment
1 points • terence_shill





r/SGExams • comment
1 points • Eurito1

I've seen people recommend Nand to Tetris, Nand to Tetris Part II and Onur Mutlu Lectures.

r/AskComputerScience • comment
1 points • khedoros

> How can I get this done?

In my CS program, there was a progression of topics, that in retrospect all built on each other, something like this: Predicate logic->boolean logic->combinatorial logic->sequential logic->computer organization->computer architecture->assembly programming->compiler design+implementation (might be set up as tokenizing and parsing in the first course, optimization and code generation in the second)->OS design.

Essentially, it's Nand2Tetris, but in a different format. Coursera has 2 courses covering that material: part 1, part 2.

r/learnprogramming • comment
1 points • jairuncaloth

Along these lines, the nand2tetris course has you implement an entire CPU in a simplified hardware description language created for the course. You start by implementing basic logic gates and use those to build more complicated chips like muxes, demuxes, ALU, ect. Then it goes on to building an OS and application layer on top. It's all pretty simplified relative to today's modern computers. I've completed the first half, which is the hardware implementation and learning to write assembly code for it. It's been super insightful and approachable for me.

It's also available on Coursera in two parts for free if you 'audit' the course. I like this format, because you get video lectures from the guys who made the course for each chapter. You get all the content, just no auto grading. and

r/linuxquestions • comment
2 points • mdaffin

If you want to go from the group up I recommend trying the nand 2 tetris course a nice introduction to developing a system from NAND gates to building a basic CPU to building a simple assembler then compiler and finally an operating system. They have two courses on coresra part 1 and part 2 which you can audit for free.

If you want to go from the top down you might find learning to write kernel modules a good way to start.

The redox book is also a fascinating read about an ongoing effort to build a modern operating system in the rust language.

r/learnprogramming • comment
1 points • ewig94

I'm not sure if any Coursera "certificate" is worth it, but these courses are definitely worth checking out:

Algorithms specialization by Stanford

Nand2tetris 1 and Nand2tetris 2

Machine Learning by Andrew Ng

r/learnpython • comment
1 points • dougouverson

I'm relatively new to programming myself. I have a hard time dealing with the number of "black boxes" in CS and programming. I come from a construction background where it's much easier to "unravel the mystery" of how things are put together.

I decided if I was going to spend any time writing programs/scripts I was going to need to start from the beginning and learn the basics of CS.

I recently finished Part I of Build a Modern Computer from First Principles: From Nand to Tetris (Project-Centered Course) which tackles the hardware stack.

This course was great in that you started with a simple Nand logic gate and build layer-upon-layer the hardware platform of a "typical" computer platform. This really helped me understand what's going on under-the-hood of most modern computer systems.

I'm taking a break to learn some Python programming, and then I'm planning on continuing with Part II Build a Modern Computer from First Principles: Nand to Tetris Part II (project-centered course) which continues with the software stack.

On a personal note, I have had to learn to enjoy the process; to slow down; to slow waaaay down; to accept failure as an important part of achieving any level of success; did I say slow down :)

To God be the glory!

r/beneater • comment
1 points • randohms

Thank you for sharing.

Here are the links for Part I and Part II:

And here's another course which is also beginning and that looks interesting:

r/sysadmin • comment
1 points • Alhomeronslow

To get a strong foundations in computing I recommend the following website, free software on the site, projects offered, along with the book found at Coursera has two courses that offer lessons with videos.

r/learnprogramming • comment
1 points • Alaharon123


Keep in mind that for week 3 of part two (or whatever the equivalent is in the book), you need to already know how to program in a high level language so either take Helsinki's MOOC first or between part 1 and part 2. Taking it first would be recommended, but if you want to get straight to the low level stuff, you can wait until after Part 1.

If you want to go more in-depth than Nand2Tetris, then take Computation Structures.


  1. Nand2Tetris Part 1
  2. Object-Oriented programming with Java Part 1 and Part 2
  3. Nand2Tetris Part 2
  4. Prerequisite to Computation Structures if you haven't already taken a two course sequence in physics
  5. Computation Structures Part 1, Part 2, and Part 3