The primary goal in CS202 is to prepare students for programming in the upper division 3xx and 4xx level classes. To achieve this goal, CS202 focuses on three areas: object oriented programming, advanced C++, and Java. The majority of the term is spent introducing students to object-oriented programming while learning advanced C++ syntax as well as Java syntax. Students will understand the difference between procedural abstraction and object oriented solutions. Students spend the term designing and programming with inheritance hierarchies, with the goal of solving problems efficiently: producing high quality, robust, maintainable as well as efficient object oriented solutions. This provides students with the chance to experience object oriented design and programming at the same time as becoming better acquainted with advanced data structures.
Java skills developed include writing two programs using advanced data structures in Java with strict requirements to follow OOP guidelines – all data members private, no friendly access, and complete implementation of functions required to handle issues of deep versus shallow copies and compares. Students learn the relationship between the two languages and the similarity of Java’s references to pointers.