Course Objectives
Understand and apply the main principles of object-oriented software design and programming: classes and objects, constructors, methods, instance and static variables, inheritance, class hierarchies, and polymorphism
Learn to code fluently in Java in a well-structured fashion and in good style; learn to pay attention to code clarity and documentation
Learn to use Java library packages and classes within the scope of the AP Java subset
Understand the concept of an algorithm; implement algorithms in Java using conditional and iterative control structures and recursion
Learn to select appropriate algorithms and data structures to solve a given problem
Compare efficiency of alternative solutions to a given problem
Learn common searching and sorting algorithms: Sequential Search and Binary Search; Selection Sort, Insertion Sort, and Mergesort
Understand one- and two-dimensional arrays, and the ArrayList class, and use them appropriately in programming projects
Acquire skills in designing object-oriented software solutions to problems from various application areas
Discuss ethical and social issues related to the use of computers