6.030 - Introduction to Interactive Programming

Professor Lynn Andrea Stein

12 units (3-3-6)   6 EDPs
No Prerequisites
Enrollment may be limited

Lectures: MW(F) 12-1, 35-225
Recitation: F 12-1
Labs: M or T or W or Th 2-5, 34-501
(each student will be assigned to one weekly lab session)

Introduction to computer programming, computer science and modern software design. Focus on community model of computation as concurrent, embedded, and interactive. Topics: mechanics of software design, programming and testing; relationships between behaviors of entities and behaviors of aggregates; procedural abstraction, object-oriented, event-driven and network programming; graphical user interfaces, client-server architectures, distributed systems.
For students with little or no prior programming experience.
Weekly 3-hour in-class laboratory and final project with emphasis on student-student interaction.

  • 6.030 is intended for students with no prior programming experience.
  • This course does not overlap significantly with 6.001, and it will not satisfy the 6.001 requirement for course VI students. 6.030 does not satisfy any course VI requirement.
  • To enroll in this course: You must attend the first meeting of the semester (Wednesday 8 September 1999, 12 noon, 35-225) to enroll in the course. If the course is oversubscribed, registration will be determined by the second meeting.
  • 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.

    For information on previous versions of the course, see the course web page at http://www-cs101.ai.mit.edu/.

    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.

    Maintained by Lynn Andrea Stein (las@ai.mit.edu).
    Copyright © 1999 by Massachusetts Institute of Technology. All rights reserved.