APCS Phase 1
In Phase 1 we do a quick check to see that the student knows the basic requirements. Then in phase 2 we work through sample problems and/or a sample exam.
Skill Checklist
Although, at this level, we assume the student already has basic programming skills, we will provide a basic explanation of all the concepts used. This commentary would be aimed at a student who knows two or more of the required languages already, but needs to be able to write the program in a third or fourth language. If the student is a beginner we don't recommend starting here, but go to the Basics page instead.
Students must be able to write a complete working example program, which compiles and runs, in either C, C++, Java or Python, for every concept covering each of the following:
- APCS-BPC – Basic programming concepts, ex. input and output (commands and streams)
- APCS-NVO – numeric variables, arithmetic, logical and bitwise operators
- APCS-OVT – other variable types character, string, etc. and basic operations (excluding “as array”)
- APCS-DTS – Data types, constants, variables, scope: global / local
- APCS-LCS – control structures and loop structures
- APCS-FUN – functions
- APCS-REC – recursion
- APCS-ARS – arrays and structures (how to do C’s “struct” is in other languages)
- APCS-BDS – Basic data structures (how to make queues, stacks, trees, graphs)
- APCS-BAL – Basic algorithms, including: sorting, searching, greedy method, dynamic programming
- APCS-DPC – Dynamic programming (Top Down Design): simplifying a complicated problem by breaking it down into simpler sub-problems in a recursive manner. This is not refactoring; it is a design method.
The above list is not very well defined. If a more defined list can be provided we will provide one. Otherwise the example programs given will be assumed to fully cover the requirements of each category they are mapped from.