From Nand to Tetris in 12 Steps
Shimon Schocken gave a really interesting Google Tech Talk titled From Nand to Tetris in 12 Steps. In the video, he describes a course where students design a complete virtualized computer system from scratch, building from the humble nand gate, to a functional cpu and memory architecture, to compiler software and an operating system, all culminating in a simple game that runs on the virtual hardware.
The hardware projects are done in a simple hardware description language and a hardware simulator supplied by us. The software projects (assembler, VM, and a compiler for a simple object-based language) can be done in any language, using the APIs and test programs supplied by us. We also build a mini-OS. The result is a GameBoy-like computer, simulated on the student's PC. We start the course (and this talk) by demonstrating some video games running on this computer, e.g. Tetris and Pong.
Building a working computer from Nand gates alone is a thrilling intellectual exercise. It demonstrates the supreme power of recursive ascent, and teaches the students that building computer systems is -- more than anything else -- a triumph of human reasoning.
It looks like most of the course materials are available online. The necessary hardware emulator and simulator software is open source and available from Shimon's website.
CS101 Digital Systems Construction
Video - Building a Modern Computer from First Principles [via Slash7]
Posted by Jason Striegel |
Mar 19, 2008 09:02 PM
Hardware, Retro Computing, Science, Software Engineering, Virtualization |
Permalink
| Comments (3)
Recent Entries
- The (unfortunate) iPhone Development Story
- Stanford Engineering Everywhere
- DIY espresso machine
- Zoom H2 line input hack - make a 4 channel field recorder
- SnackUpon
- Removing tourists from your travel photos
- Super GreaseMonkey - your favorite Firefox plugin meets jQuery
- HOWTO - create a see-through information graphic
- HOWTO - make a serial port IR receiver
- All AJAX image editor
Comments
Newest comments listed first.
| Posted by: Peter on March 20, 2008 at 3:27 PM |
That book, by the way, and the course that goes along with it is called "The Elements of Computing Systems: Building a Modern Computer from First Principles", and the course's website is here: http://www1.idc.ac.il/tecs/ . The name is at the bottom of the slide, but it's a little hard to see. Awesome talk.
| Posted by: Graham Toal on September 19, 2008 at 2:58 PM |
This course sounds exactly like the kind of class I took in the 70's and thought was no longer being done anywhere.
You can read my thoughts on the decline of CS education at:
http://techennui.blogspot.com/2007/09/this-is-about-me.html
The last thing I said in the article linked above was that we should prepare a class based on first principles. Well, seems like someone has already done it!
Leave a comment
Bloggers
Welcome to the Hacks Blog!
Categories
- Ajax
- Amazon
- AppleTV
- Astronomy
- Baseball
- BlackBerry
- Blogging
- Body
- Cars
- Cryptography
- Data
- Design
- Education
- Electronics
- Energy
- Events
- Excel
- Excerpts
- Firefox
- Flash
- Flickr
- Flying Things
- Food
- Gaming
- Gmail
- Google Earth
- Google Maps
- Government
- Greasemonkey
- Hacks Series
- Hackszine Podcast
- Halo
- Hardware
- Home
- Home Theater
- iPhone
- iPod
- IRC
- iTunes
- Java
- Kindle
- Knoppix
- Language
- LEGO
- Life
- Lifehacker
- Linux
- Linux Desktop
- Linux Multimedia
- Linux Server
- Mac
- Mapping
- Math
- Microsoft Office
- Mind
- Mind Performance
- Mobile Phones
- Music
- MySpace
- MySQL
- NetFlix
- Network Security
- olpc
- OpenOffice
- Outdoor
- Parenting
- PCs
- PDAs
- Perl
- Philosophy
- Photography
- PHP
- Pleo
- Podcast
- Podcasting
- Productivity
- PSP
- Retro Computing
- Retro Gaming
- Science
- Screencasts
- Security
- Shopping
- Skype
- Smart Home
- Software Engineering
- Sports
- SQL
- Statistics
- Survival
- TiVo
- Transportation
- Travel
- Ubuntu
- Video
- Virtualization
- Visual Studio
- VoIP
- Web
- Web Site Measurement
- Windows
- Windows Server
- Wireless
- Word
- World
- Xbox
- Yahoo!
- YouTube
Archives
- September 2008
- August 2008
- July 2008
- June 2008
- May 2008
- April 2008
- March 2008
- February 2008
- January 2008
- December 2007
- November 2007
- October 2007
- September 2007
- August 2007
- July 2007
- June 2007
- May 2007
- April 2007
- March 2007
- February 2007
- January 2007
- December 2006
- November 2006
- October 2006
- September 2006
Recent Posts
- The (unfortunate) iPhone Development Story
- Stanford Engineering Everywhere
- DIY espresso machine
- Zoom H2 line input hack - make a 4 channel field recorder
- SnackUpon
- Removing tourists from your travel photos
- Super GreaseMonkey - your favorite Firefox plugin meets jQuery
- HOWTO - create a see-through information graphic
- HOWTO - make a serial port IR receiver
- All AJAX image editor
www.flickr.com
|





