A. The Software Development Life Cycle:
Program Specification
Program Design
Program Implementation
Testing and Debugging
Program Maintenance
The Waterfall Model: 1 -> 2 -> 3 -> 4 -> 5
The waterfall model does not work for large, complicated systems.
B. The OOP model:
Identify classes
Identify behaviors
Determine relationships between classes: inheritance, composition, independence,
UML diagrams
Implementing classes: bottom up vs top down, what is a driver class?
Implementing methods: what are helper methods? what is procedural abstraction or stepwise refinement? what is a stub method? what is information hiding?
Other terms: algorithm, debugging, compile-time error, run-time error, syntax error exception, logic error, robust program, test data
C. AP CS A Labs special emphasis:
String methods: 1) indexOf, subString; 2) count/replace/remove all occurrence of a substring in a string;
Random element selections: 1) generate a random number within a range 2) pick a random element from an array or array list; 3) shuffle an string array or array list; 4) simulating a random event such as flipping a coin
sub classes, abstract classess and interfaces: extends, abstract and implements keywords
Enhanced for loops for 1D and 2D arrays
2D arrays: how to reflect across mirrors placed somewhere in the center of the matrix: horizontally, vertically, or diagonally
Know how to convert numbers among base 2, base 8 and base 16
D. Challenge of the Week: MC of Chapter 6 of Barron's, FRQ #3 and #4 of 2016