Intermediate programming in Java and problem solving. Writing Java programs with multiple classes: constructors, visibility modifiers, static members, accessor and mutator methods, and arrays of objects. Inheritance, polymorphism, and interfaces. Sorting arrays of primitive data and arrays of objects. Exception handling. PREREQUISITE(S): CSC 211.