From Nand to Tetris: Applied Computer Science from the Ground Up
Colloquium | April 25 | 4-5:30 p.m. | Berkeley Way West, Room 1203, Berkeley Way West (2121 Berkeley Way, Berkeley, CA 94720)
Shimon Schocken, IDC (Interdisciplinary Center) Herzliya, Israel
We present a course that synthesizes many abstractions, algorithms, and data structures learned in CS courses, and makes them concrete by building a complete computer system, from the ground up. The methodology is based on guiding students through a set of 12 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, Java-like language) can be done in any language, using API's and test programs supplied by us. We also build a basic OS. The result is a general-purpose computer system, simulated on the student's PC. We start the course (and this talk) by demonstrating some interactive computer games running on this platform. The approach is completely self-contained, requiring only programming as a pre-requisite . This work has led to an MIT Press book, a TED talk, two MOOCs listed in Coursera's Top Rated Courses, and courses that are now taught in 120+ universities. All our materials are freely available in open source in www.nand2tetris.org. (joint work with Noam Nisan, Hebrew University)
About the speaker. Shimon Schocken is the founding dean of the Efi Arazi School of Computer Science at IDC Herzliya. He was a tenured professor at NYU (1985-1995), a visiting professor at Harvard (2005) and Stanford (2012), and chairman of the Israeli ministry of education's computer science committee. Shimon is also interested in early-age mathematics education, and is co-founder of Matific, a software company whose award-winning mathematics learning games are used in 30+ countries and languages.