Shimon Schocken

The self-organizing computer course

975,476 views • 16:25
Subtitles in 27 languages
Up next
Details About the talk
Transcript 27 languages
Transcribed by Joseph Geni
Reviewed by Morton Bast

So, this is my grandfather, Salman Schocken, who was born into a poor and uneducated family with six children to feed, and when he was 14 years old, he was forced to drop out of school in order to help put bread on the table. He never went back to school. Instead, he went on to build a glittering empire of department stores. Salman was the consummate perfectionist, and every one of his stores was a jewel of Bauhaus architecture. He was also the ultimate self-learner, and like everything else, he did it in grand style. He surrounded himself with an entourage of young, unknown scholars like Martin Buber and Shai Agnon and Franz Kafka, and he paid each one of them a monthly salary so that they could write in peace.


And yet, in the late '30s, Salman saw what's coming. He fled Germany, together with his family, leaving everything else behind. His department stores confiscated, he spent the rest of his life in a relentless pursuit of art and culture. This high school dropout died at the age of 82, a formidable intellectual, cofounder and first CEO of the Hebrew University of Jerusalem, and founder of Schocken Books, an acclaimed imprint that was later acquired by Random House. Such is the power of self-study.


And these are my parents. They too did not enjoy the privilege of college education. They were too busy building a family and a country. And yet, just like Salman, they were lifelong, tenacious self-learners, and our home was stacked with thousands of books, records and artwork. I remember quite vividly my father telling me that when everyone in the neighborhood will have a TV set, then we'll buy a normal F.M. radio. (Laughter)


And that's me, I was going to say holding my first abacus, but actually holding what my father would consider an ample substitute to an iPad. (Laughter) So one thing that I took from home is this notion that educators don't necessarily have to teach. Instead, they can provide an environment and resources that tease out your natural ability to learn on your own. Self-study, self-exploration, self-empowerment: these are the virtues of a great education.


So I'd like to share with you a story about a self-study, self-empowering computer science course that I built, together with my brilliant colleague Noam Nisan. As you can see from the pictures, both Noam and I had an early fascination with first principles, and over the years, as our knowledge of science and technology became more sophisticated, this early awe with the basics has only intensified. So it's not surprising that, about 12 years ago, when Noam and I were already computer science professors, we were equally frustrated by the same phenomenon. As computers became increasingly more complex, our students were losing the forest for the trees, and indeed, it is impossible to connect with the soul of the machine if you interact with a black box P.C. or a Mac which is shrouded by numerous layers of closed, proprietary software. So Noam and I had this insight that if we want our students to understand how computers work, and understand it in the marrow of their bones, then perhaps the best way to go about it is to have them build a complete, working, general-purpose, useful computer, hardware and software, from the ground up, from first principles.


Now, we had to start somewhere, and so Noam and I decided to base our cathedral, so to speak, on the simplest possible building block, which is something called NAND. It is nothing more than a trivial logic gate with four input-output states. So we now start this journey by telling our students that God gave us NAND — (Laughter) — and told us to build a computer, and when we asked how, God said, "One step at a time." And then, following this advice, we start with this lowly, humble NAND gate, and we walk our students through an elaborate sequence of projects in which they gradually build a chip set, a hardware platform, an assembler, a virtual machine, a basic operating system and a compiler for a simple, Java-like language that we call "JACK." The students celebrate the end of this tour de force by using JACK to write all sorts of cool games like Pong, Snake and Tetris. You can imagine the tremendous joy of playing with a Tetris game that you wrote in JACK and then compiled into machine language in a compiler that you wrote also, and then seeing the result running on a machine that you built starting with nothing more than a few thousand NAND gates. It's a tremendous personal triumph of going from first principles all the way to a fantastically complex and useful system.


Noam and I worked five years to facilitate this ascent and to create the tools and infrastructure that will enable students to build it in one semester. And this is the great team that helped us make it happen. The trick was to decompose the computer's construction into numerous stand-alone modules, each of which could be individually specified, built and unit-tested in isolation from the rest of the project. And from day one, Noam and I decided to put all these building blocks freely available in open source on the Web. So chip specifications, APIs, project descriptions, software tools, hardware simulators, CPU emulators, stacks of hundreds of slides, lectures — we laid out everything on the Web and invited the world to come over, take whatever they need, and do whatever they want with it.


And then something fascinating happened. The world came. And in short order, thousands of people were building our machine. And NAND2Tetris became one of the first massive, open, online courses, although seven years ago we had no idea that what we were doing is called MOOCs. We just observed how self-organized courses were kind of spontaneously spawning out of our materials. For example, Pramode C.E., an engineer from Kerala, India, has organized groups of self-learners who build our computer under his good guidance. And Parag Shah, another engineer, from Mumbai, has unbundled our projects into smaller, more manageable bites that he now serves in his pioneering do-it-yourself computer science program.


The people who are attracted to these courses typically have a hacker mentality. They want to figure out how things work, and they want to do it in groups, like this hackers club in Washington, D.C., that uses our materials to offer community courses. And because these materials are widely available and open-source, different people take them to very different and unpredictable directions. For example, Yu Fangmin, from Guangzhou, has used FPGA technology to build our computer and show others how to do the same using a video clip, and Ben Craddock developed a very nice computer game that unfolds inside our CPU architecture, which is quite a complex 3D maze that Ben developed using the Minecraft 3D simulator engine. The Minecraft community went bananas over this project, and Ben became an instant media celebrity.


And indeed, for quite a few people, taking this NAND2Tetris pilgrimage, if you will, has turned into a life-changing experience. For example, take Dan Rounds, who is a music and math major from East Lansing, Michigan. A few weeks ago, Dan posted a victorious post on our website, and I'd like to read it to you. So here's what Dan said.


"I did the coursework because understanding computers is important to me, just like literacy and numeracy, and I made it through. I never worked harder on anything, never been challenged to this degree. But given what I now feel capable of doing, I would certainly do it again. To anyone considering NAND2Tetris, it's a tough journey, but you'll be profoundly changed."


So Dan demonstrates the many self-learners who take this course off the Web, on their own traction, on their own initiative, and it's quite amazing because these people cannot care less about grades. They are doing it because of one motivation only. They have a tremendous passion to learn.


And with that in mind, I'd like to say a few words about traditional college grading. I'm sick of it. We are obsessed with grades because we are obsessed with data, and yet grading takes away all the fun from failing, and a huge part of education is about failing. Courage, according to Churchill, is the ability to go from one defeat to another without losing enthusiasm. (Laughter) And [Joyce] said that mistakes are the portals of discovery. And yet we don't tolerate mistakes, and we worship grades. So we collect your B pluses and your A minuses and we aggregate them into a number like 3.4, which is stamped on your forehead and sums up who you are. Well, in my opinion, we went too far with this nonsense, and grading became degrading.


So with that, I'd like to say a few words about upgrading, and share with you a glimpse from my current project, which is different from the previous one, but it shares exactly the same characteristics of self-learning, learning by doing, self-exploration and community-building, and this project deals with K-12 math education, beginning with early age math, and we do it on tablets because we believe that math, like anything else, should be taught hands on.


So here's what we do. Basically, we developed numerous mobile apps, every one of them explaining a particular concept in math. So for example, let's take area. When you deal with a concept like area — well, we also provide a set of tools that the child is invited to experiment with in order to learn. So if area is what interests us, then one thing which is natural to do is to tile the area of this particular shape and simply count how many tiles it takes to cover it completely. And this little exercise here gives you a first good insight of the notion of area.


Moving along, what about the area of this figure? Well, if you try to tile it, it doesn't work too well, does it. So instead, you can experiment with these different tools here by some process of guided trial and error, and at some point you will discover that one thing that you can do among several legitimate transformations is the following one. You can cut the figure, you can rearrange the parts, you can glue them and then proceed to tile just like we did before. (Applause) Now this particular transformation did not change the area of the original figure, so a six-year-old who plays with this has just discovered a clever algorithm to compute the area of any given parallelogram.


We don't replace teachers, by the way. We believe that teachers should be empowered, not replaced.


Moving along, what about the area of a triangle? So after some guided trial and error, the child will discover, with or without help, that he or she can duplicate the original figure and then take the result, transpose it, glue it to the original and then proceed [with] what we did before: cut, rearrange, paste — oops— paste and glue, and tile. Now this transformation has doubled the area of the original figure, and therefore we have just learned that the area of the triangle equals the area of this rectangle divided by two. But we discovered it by self-exploration.


So, in addition to learning some useful geometry, the child has been exposed to some pretty sophisticated science strategies, like reduction, which is the art of transforming a complex problem into a simple one, or generalization, which is at the heart of any scientific discipline, or the fact that some properties are invariant under some transformations. And all this is something that a very young child can pick up using such mobile apps. So presently, we are doing the following: First of all, we are decomposing the K-12 math curriculum into numerous such apps. And because we cannot do it on our own, we've developed a very fancy authoring tool that any author, any parent or actually anyone who has an interest in math education, can use this authoring tool to develop similar apps on tablets without programming. And finally, we are putting together an adaptive ecosystem that will match different learners with different apps according to their evolving learning style.


The driving force behind this project is my colleague Shmulik London, and, you see, just like Salman did about 90 years ago, the trick is to surround yourself with brilliant people, because at the end, it's all about people. And a few years ago, I was walking in Tel Aviv and I saw this graffiti on a wall, and I found it so compelling that by now I preach it to my students, and I'd like to try to preach it to you. Now, I don't know how many people here are familiar with the term "mensch." It basically means to be human and to do the right thing. And with that, what this graffiti says is, "High-tech schmigh-tech. The most important thing is to be a mensch." (Laughter) Thank you. (Applause) (Applause)

Shimon Schocken and Noam Nisan developed a curriculum for their students to build a computer, piece by piece. When they put the course online — giving away the tools, simulators, chip specifications and other building blocks — they were surprised that thousands jumped at the opportunity to learn, working independently as well as organizing their own classes in the first Massive Open Online Course (MOOC). A call to forget about grades and tap into the self-motivation to learn.

About the speaker
Shimon Schocken · Computer Scientist, Educator

Shimon Schocken is a computer science professor and dedicated educator.

Shimon Schocken is a computer science professor and dedicated educator.