Information about Comp210 for Spring '04

This course is an introduction to computing that focuses on the principles of object-oriented programming using design patterns. Computational problem-solving and the accompanying programming methodology are taught using progressively richer subsets of the Java programming language. Program design concepts such as structural and behavioral abstractions are key elements in building software systems that are correct, extensible, and robust. Design patterns provide a vocabulary for codifying these abstractions.

The course emphasizes an incremental, test-driven approach to writing programs. Writing tests before code provides a precise description of how each unit of code must behave, promotes cleaner design, and provides a test harness for confirming that a program is correct. This test harness prevents errors from being introduced as a program evolves. Incremental, test-driven design is the essence of state-of-the-art "agile" software engineering methodologies such as Extreme Programming.

Object-oriented programming (OOP) is the most pervasive paradigm for constructing modern software systems. Computer professionals and non-professionals alike will require a solid background in OOP to understand and effectively utilize these systems. This course is recommended for Engineering and other non-COMP majors, plus students who have yet not committed to a COMP major.

This course is a pilot for the first semester of a new two-semester introduction to computing. The second-semester course in the sequence (tentatively numbered as COMP 202) will be offered in Fall '04. The new course sequence differs from the existing COMP 210/212 sequence in two respects. First, the new course sequence uses Java exclusively; it does not cover functional programming in Scheme. Second, the new sequence is specifically targeted at non-COMP majors. COMP majors are strongly encouraged to take the existing COMP 210/212 sequence that covers functional as well as object-oriented programming. Students who take the new all-Java sequence and subsequently decide to major in COMP can enter the major by taking a short 1-hour course on functional programming in Scheme that will be offered each spring starting in Spring '05.

Comp201/Comp202 vs. Comp210/Comp212:

  1. The Spring '04 Comp210 is the pilot course for Comp201.
  2. Comp210 in the Spring semester will be renamed Comp201 starting Spring '05.
  3. Comp210 in Scheme will be offered as normal in Fall '04.
  4. Comp212 for Comp210 students will be offered every spring as usual, including Spring '04.
  5. Comp202 will be offered every fall semester, starting Fall '04.
  6. Comp201/202 is aimed at non-COMP majors, while Comp210/212 is aimed at COMP majors.
  7. Comp201/202 (includes Spring '04 Comp210) students need to take a 1 hour Scheme course, offered every spring, to enter the COMP major.