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