Posted May 29, 2013 by Dr. Henri Montandon in Cool Runnings

From Nand to Tetris in 12 Steps

I do and I understand


As Cool Runnings moves into its tenth month of operation, we have become clearer about the forces that are shaping it. We began wanting to ferret out neuroscience websites that were interesting, interactive and gems of pedagogy. We reckon we have found almost four dozen such sites, and along the way, another parameter has muscled its way into our awareness. The forms of pedagogy are changing, and changing very quickly. The internet has altered the way colleges and universities offer classes to students, and the way that any given teacher designs the format of her teaching. As far as we know, there is not yet a World-wide Classification of Teaching Formats, but there could be, and there probably will be.

This week we feature a class-room format based on a book by Professors Noam Nisan and Shimon Schocken, THE ELEMENTS OF COMPUTING SYSTEMS: BUILDING A MODERN COMPUTER FROM FIRST PRINCIPLES. Their book, or Basic Organization of Knowledge, is interwoven with their web site – – which contains hundreds of interactive modules to explore the basics. But the book is not so much a textbook as a lab manual with the conceptual underpinnings and the instructions for making a simple yet sophisticated (virtual) computer.

They have produced a rare effort indeed, both the forest and the trees, or the algebra and the circuit diagram. Here is their motivational statement:

Why Bother? Because many CS students don’t understand how computers work; because fewer and fewer students take compilation courses; because many computer architecture courses are too detailed and too dry; because nothing beats the thrill of creating something from almost nothing; because Nand2Tetris engages students in implementing some of the coolest algorithms, data structures and techniques in applied computer science, and because the typical student feedback in Nand2Tetris courses is “the best course I ever took”.

From the ground up:                            

Boolean Logic

Boolean Arithmetic

Arithmetic Logical Unit

Sequential Logic

Memory Elements

Computer Architecture

Machine Language


Virtual Machine


Operating System

High-Level Language/Applications

A presentation like this, a full course on a subject that some people seem to delight in making arcane as possible, by two professors and their team who want to make the knowledge not only understandable but unforgettable, gives me a big rush.




Dr. Henri Montandon