notes labs assignments calendar
Computer Science A and AB
 

 
 I.  Object-Oriented Program Design

The overall goal for designing a piece of software (a computer program) is to correctly solve the given problem. At the same time, this goal should encompass specifying and designing a program that is understandable, can be adapted to changing circumstances, and has the potential to be reused in whole or in part. The design process needs to be based on a thorough understanding of the problem to be solved.

Program Design

1.  Read and understand a problem description, purpose and goals.
2.  Apply data abstraction and encapsulation
3.  Read and understand class specifications and relations among the classes ("is-a", "has-a" relationships).
4.  Understand and implement a given class hierarchy.
5.  Identify reusable components from existing code using classes and class libraries.

Class Design

1.  Design and implement a class
2.  Choose appropriate data representation and algorithms.
3.  Apply functional decomposition.
4.  Extend a given class using inheritance.

II. Program Implementation

The overall goals of program implementation parallel those of program design. Classes that fill common needs should be built so that they can be reused easily in other programs. Object-oriented design is an important part of program implementation.

A.  Implementation techniques
  1. Methodology
      a. Object-oriented development
      b. Top-down development
      c. Encapsulation and information hiding
      d. Procedural abstraction

B.  Programming constructs
  1. Primitive types vs. objects
  2. Declaration
     a. Constant declarations
     b. Variable declarations
     c. Class declarations
     d. Interface declarations
     e. Method declarations
     f. Parameter declarations
  3. Console output (System.out.print/println)
  4. Control
     a. Methods
     b. Sequential
     c. Conditional
     d. Iteration
     e. Recursion

C.  Java library classes (Including the AP Java Subset)