skip to main content
Department of Computer Science University of Colorado Boulder
cu: home | engineering | mycuinfo | about | cu a-z | search cu | contact cu cs: about | calendar | directory | catalog | schedules | mobile | contact cs
home · events · colloquia · 2011-2012 · 

Colloquium - Schocken

ECCR 150

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.

The Department holds colloquia throughout the Fall and Spring semesters. These colloquia, open to the public, are typically held on Thursday afternoons, but sometimes occur at other times as well. If you would like to receive email notification of upcoming colloquia, subscribe to our Colloquia Mailing List. If you would like to schedule a colloquium, see Colloquium Scheduling.

Sign language interpreters are available upon request. Please contact Stephanie Morris at least five days prior to the colloquium.

See also:
Department of Computer Science
College of Engineering and Applied Science
University of Colorado Boulder
Boulder, CO 80309-0430 USA
Send email to

Engineering Center Office Tower
ECOT 717
FAX +1-303-492-2844
XHTML 1.0/CSS2 ©2012 Regents of the University of Colorado
Privacy · Legal · Trademarks
May 5, 2012 (13:29)