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.
FAQ
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.
The section I want is full. Can I still get into the class? Can I switch into a full section?
If you want to be in the class or in a particular section, get on the waitlist. Students on the waitlist have priority.
In general, I attempt to get everyone who wants to take the course into some section. Section enrollments are, however, limited by fire codes and the number of seats in the lab rooms. In an attempt to accommodate more students, we added two additional spots to all sections at the beginning of October 2012. Several sections now have seats available. Please make every attempt to fit into one of the existing sections. Contact Professor Fisler if you absolutely cannot fit into any of the sections that still have waitlist seats open.
Note that you are welcome to attend either lecture time, regardless of which one is officially on your schedule. Our serious space constraints are on the Wednesday labs. Sign up for labs that work for you, even if its associated lecture time is problematic.