home · mobile · calendar · colloquia · 2011-2012 · 

Colloquium - Schocken

From NAND to Tetris in 12 Steps
IDC Herzliya, Israel

We present a new course that aims to demystify the integrated function of computer systems, using a hands-on approach. The course synthesizes many abstractions, algorithms, and data structures learned in Computer Science courses, and makes them concrete by building a complete computer system from the ground up. As the semester progresses, we guide the students through a modular series of projects that gradually construct and unit-test a simple hardware platform and a modern software hierarchy, yielding a surprisingly powerful computer system. 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. We are able to squeeze all this into a single course since we deal with neither efficiency nor advanced features, leaving these subjects to other courses in the program. The resulting approach is completely self-contained, requiring only programming as a pre-requisite. All the course materials -- software, lectures, and projects are available freely on the web in open source. The course and the approach are described in this book, available in full text on the web. Joint work with Noam Nisan.

Shimon Schocken is professor and founding dean of the Efi Arazi School of Computer Science at IDC Herzliya -- a new Israeli university which he helped found in 1995. Previously he was a professor at NYU (1985-1995). Shimon is chairman of the computer science education committee in the Israeli ministry of education, and enjoys developing innovative CS courses and related open source software. He was a visiting professor at Harvard University in 2005 and will be visiting Stanford University in 2012.

Hosted by Kenneth Anderson.

See The Elements of Computing Systems for more information.

Department of Computer Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
May 5, 2012 (14:13)