Rethinking CS101:

Innovations in Introductory Computer Programming

Rethinking CS101 Logo

Perhaps the most fundamental idea in modern computer science is that of interactive processes. Computation is embedded in a (physical or virtual) world; its role is to interact with that world to produce desired behavior. While von Neumann serial programming has it that computation-as-calculation uses inputs -- at the beginning -- to produce outputs -- at the end -- computation-as-interaction treats inputs as things that are monitored and outputs as actions that are taken over the lifetime of an ongoing process. By beginning with a decomposition in terms of interacting computational processes, we can teach our students a model of the world much closer to the one that underlies the thinking of most computer professionals.

Rethinking CS101 is a project to develop a curriculum for the first course in computer science based around the idea of computation as interaction.

Current Highlights

This site has been transferred over from it's old home at the MIT AI Lab.

We're in the process of moving our materials to, they are still availible in their old home.