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.
Rethinking CS101 was also featured in the electronic newsletter of the Second Harvard International Conference on the Internet and Society (5/27). The article is reprinted from the Harvard Gazette's 28 May 1997 issue.
"Preaching What We Practice: Radically Rethinking CS101" a colloquium given January 15, 1998, at the Department of Computer Science and Engineering, University of Washington, SSeattle, Washington is now available on-demand from their web site (1/15/98)). For information, see the UW CSE colloquium page.
The summer course, Interactive Programming in Java, is over. The MIT regular-term course formerly known as 6.096 will appear in the catalog, beginning in 1998, as 6.030. For more course information, see our course listings, below.
Lynn is on sabbatical at Radcliffe's Bunting Institute, busily writing the textbook....
The rest of the project members are busily restoring the web server and source code....
Rethinking CS101 is a project of Professor Lynn Andrea Stein's AP Group at the Massachusetts Institute of Technology's Artificial Intelligence Laboratory.
For more details, see the list of our current members and alumni.
We teach courses using these materials, both at MIT and elsewhere. Let us know if you are interested!
Many of our course materials are available on the web.
Much of the work is also documented in our publications and seminars.
We are currently preparing a textbook to make it easier for other schools to use this material.
We are looking for people interested in using these materials at their own sites. Let us know if you are interested!
We maintain several mailing lists for those interested in our project.
There have been several talks presented on this material. Two of them -- the May 13th 1996 EECS Colloquium at MIT and the January 15 1998 Department of Computer Science Colloquium at the University of Washington -- were videotaped. The MIT videotape is available through MIT's Center for Advanced Educational Services. The UW videotape may be avialable from their CS Department. Another talk -- Practicing What We Preach, an invited talk presented at the 1997 National Conference on Artificial Intelligence -- was audio taped and is available through the AAAI. The slides for this talk are also available from the author.
Upcoming opportunities to hear about the project include:
We also have a new (and woefully incomplete) FAQ. Send us questions and we'll try to answer them there (and directly!).
We will be teaching Interactive Programming in Java again in the summer of 1998: June 8-12 through MIT's Professional Institute. Last year's course produced my best-ever teaching evaluations (so far :o) ).
We just finished teaching our MIT introductory programming course, 6.096. The course will appear (with a different number: 6.030) in the catalog next year. All of our course material is posted to our web site. (Information from prior years is available by request.)
We offered a half-day tutorial at OOPSLA '97 and presented an overview of our curriculum in the OOPSLA '97 Educator's Symposium. The educator's paper is on-line; the tutorial notes are available through ACM SIGPLAN and the slides will be on-line soon. Additional information for both of these events may still be available at the OOPSLA site, http://www.acm.org/sigplan/oopsla/
A complete listing of our course offerings is also available.
Rethinking CS101 is supported by