Study Guide for CS 312 Test 3 (Fall 2011) Here are some specific topics that you will be tested on: * Use the algorithms discussed in class on Selection Sort, Sequential Search, Binary Search and Merging * Use the ArrayList class and its methods in problems similar to the array and String problems listed in Study Guide 2 * Definition of terms in OOP: abstraction, encapsulation, information hiding, inheritance, polymorphism * Define a class having: - a list of attributes - default and non-default constructors - accessors - mutators - any other method that is called for * Work with arrays of objects, use objects from user-defined classes as input parameters to a method as well as the return type for a method * Explanation of terms like: static, final, abstract, overriding, overloading, hiding (shadowing), runtime (late) binding * UML diagram to illustrate inheritance hierarchy * Write code to set up an inheritance hierarchy. * Explain and illustrate polymorphism through inheritance and polymorphism through interfaces. * Given pieces of code involving objects decide whether they are legal or not and explain why. * Given a programming scenario be able to do an Object Oriented Analysis and Design: - Identify Actors - Identify and Define Use Cases - For a given Use Case - Identify Boundary Classes, Control Classes, and Entity Classes - Draw a Sequence Diagram There will be no surprises in the test. It will be strictly based on the topics mentioned in this study guide. The best way to prepare yourself for the test is to write short programs that fulfill the requirements of the bulleted items.