I am now on Twitter! Meet me on Twitter here (my nick is pkrumins.)
Or on Google Buzz and Facebook.

I watched another really great video lecture. It’s called ‘From Nand to Tetris - Building a Modern Computer From First Principles‘.
At first I thought it was just a video lecture by some computer hobbyist, but it turned out to be a lecture about a new computer science course for both undergraduate and graduate students, developed by professor Shimon Schocken. The goal of this course is to teach students various levels of abstractions in computing by letting them build a computer from scratch and have it run a computer game. Even if it includes online bingo influenced games, it can still be considered as an invigorating task.
One of Shimon Schocken’s colleagues says that, “Computer science is a thousand layers of abstraction“, which is quite true. If we write a program in a high level language, it gets translated into assembly language which in turn gets translated into machine code, which in turn gets executed on hardware platform, which in turn uses logic gates to perform computation which is itself electrical engineering and physics.
This video lecture briefly explains all of these abstractions (except physics).
Before you watch the lecture (it’s 1 hour long), you might first want to view a 10 minute introduction, to see if you’re interested in this topic:
And here is the whole 1 hour lecture:
Moments from the lecture:
- [06:55] Course is a mishmash from all computer science topics - hardware, architecture, data structures and algorithms, programming languages, compilers and software engineering.
- [07:46] Students learn both software and hardware.
- [10:05] Hardware part uses HDL (Hardware Description Language), a special HDL testing language and a hardware simulator.
- [10:58] Building elementary logic gates in HDL.
- [15:30] 16 bit adder, full adder, half adder.
- [19:32] Building combinatorial gates (ALU).
- [22:58] Building sequential chips (memory).
- [23:40] Implementing machine language.
- [26:30] Building the CPU.
- [27:48] Building a Harvard architecture computer.
- [29:58] Input/Output devices. Screen and keyboard memory maps.
- [30:28] CPU Emulator demo.
- [33:55] Summary of 30 different chips built in HDL.
- [34:15] Example of ALU HDL project given to students, including HDL program, test file and a compare file
- [35:32] Software part starts with writing an assembler.
- [37:24] Implementing a VM (Virtual Machine).
- [39:31] VM language.
- [40:33] VM Emulator demo.
- [42:30] Writing a compiler for “Jack” programming language.
- [43:06] Demo of a Space Invaders game, written in Jack.
- [47:02] Jack code gets parsed into XML and later translated into assembly code.
- [51:33] Building the OS (Operating System).
- [53:43] Summary of both hardware and software parts.
- [57:45] Q and A!
Great news about the course this lecture talks about is that you can actually take it on your own, if you buy Mr. Shimon’s book The Elements of Computing Systems. The book covers all the 12 steps in building the computer.
Shimon makes the necessary software, such as HDL, the testing suite and other programs available on book’s website!
The course goes under a few different titles, such as ‘Digital System Construction‘, ‘Elements of Computing Systems‘, and the same ‘From Nand to Tetris‘, depending on university.
Apart from that, Professor Shimon Schocken mentioned a few famous computer scientists during his talk. I got interested, and wrote them down for your convenience:
Have fun getting smarter with each lecture, until next time!
Did you like this post? Subscribe here:
If you really enjoyed the post, I'd appreciate a gift from my geeky Amazon book wishlist. Books would make me more educated and I could write even better posts. Thanks! :)

(5 votes, average: 4.8 out of 5)
|
|
|


May 26th, 2008 at 4:42 pm
I’ve had the pleasure of being present in one of those lectures (same as above, just another time and place),
I think it’s not a bad idea, but i must disagree about the concept that in CS you don’t get that “full picture” thing because after a while you do get it.
May 30th, 2008 at 11:50 pm
Very Interesting - I always wanted more information on how different areas of computer science are connected.
Thanks a lot for the link.
June 1st, 2008 at 11:03 pm
I also liked this lecture a lot. Many years ago computing environments used to be much simpler. Now we have many more layers and it is rather hard to explain what is going on to novices.
December 4th, 2008 at 3:09 am
I really like tetris, I waiste all of my time at work playing it.
January 27th, 2009 at 4:41 pm
I’ve bought the book, I am currently reading it and I heartily recommend it to people that want to find out more about how computer works from the logic to the software level. Every chapter comes with a project and no answers ! I am implementing the VM at the moment…