Shimon Schocken is the founding dean of the Efi Arazi School of Computer Science at IDC Herzliya, an Israeli university that he helped establish in 1995. He also taught at NYU (1985-1995), Harvard (2005) and Stanford (2012), and was chairman of the Israeli ministry of education's computer science committee. Shimon is co-founder of Matific, a software company whose award-winning mathematics learning games are used in more than ten countries and languages. Shimon's work and mountain biking adventures are described in two TED talks and in shimonschocken.com.
From Nand to Tetris: Building a Modern Computer from First Principles
Prof. Shimon Schocken
IDC Herzliya, Israel (joint work with Noam Nisan, Hebrew University)
Time & Place
Tue, 16 Feb 2016 10:00:00 NZDT in Erskine 315.
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 CS 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 API's 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 ingenuity
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. The course is described in a best-selling MIT Press textbook, a TED talk, and two Coursera courses.