Lecture Time and Location: 12-12:50 and 1-1:50 AK116 (you may attend either, regardless of 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). 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.
I've had AP CS in Java. Should I take CS2102?
Yes. CS2102 is neither an introductory course nor a Java-programming course. It's a design course that happens to use Java. It is designed to provide new material to students with AP, while also being appropriate for students coming out of CS1101. The course was revamped in Fall 2010, so comments from students who took it earlier than that are no longer relevant. AP students should start seeing new material or deeper treatment of prior material in the second week.