Lectures: MW(F) 11-12:30, 36-839
Labs: M or T or W 2-5, 38-344
(each student will be assigned to one weekly lab session)
This course is an introduction to computer programming. It will be taught in the Java programming language, and will teach the language (i.e., no prior programming experience is assumed), but it is not about the language.
The theme of this course is interactive programming. Most computation these days is not algorithmic question-answering in desktop boxes (as typically taught in introductory computer science). Instead, this course will focus on a model of computation as a set of simultaneous ongoing entities embedded in and interacting with a dynamic environment: computation as interaction; computation as it occurs in spreadsheets and video games, web applications and robots.
A major component of the class will be a weekly three hour in-class laboratory. Much of this laboratory will be spent in collaborative work on program development, with an emphasis on student-student interaction and student-student teaching, facilitated and enriched by the course staff. In addition, design and implementation work will be supplemented with observational laboratory assignments, inviting students to consider not only how to build a program, but how to anticipate its behavior and how to modify that behavior.
Notes:
For information on the fall 1996 course, see its web page at http://www-cs101.ai.mit.edu/courses/fall96/.
This course is a part of Lynn Andrea Stein's Rethinking CS101 project at the MIT AI Lab and the Department of Electrical Engineering and Computer Science at the Massachusetts Institute of Technology.