CS 2102 (B12): Object-Oriented Design Concepts

Home | Staff and Office Hours | Lectures and Assignments | MyWPI | Policies

Lecture Time and Location: 12-12:50 and 1-1:50 AK116 (you may attend either lecture, regardless of official enrollment)

CS2102 is an intermediate-level course on program design. CS1101/1102 focused on designing for correct program behavior. In CS2102, we begin to consider other design goals—such as efficiency, maintainability and scalability—without sacrificing correct program behavior. The course examines interactions between data structures, algorithms, invariants, and object-oriented code structure in the pursuit of good program design. All programming in the course is in Java, but the course does not assume prior Java experience. While the course covers certain issues specific to Java and object-oriented programming, the general principles apply broadly to most programming languages.

CS2102 is not an introductory programming course! The course assumes programming background at the depth of CS1101 (or CS1102). This includes working with tree-shaped data, programming recursively, and the test-first design process taught in 1101/2. Students who have not had CS1101 or CS1102 should consult with the instructor before attempting the course; you will be responsible for teaching yourself the terminology of those courses at the start of the term.