AP Computer Science

Advanced

AP Computer Science A introduces students to computer science through programming. Fundamental topics in this course include the design of solutions to problems, the use of data structures to organize large sets of data, the development and implementation of algorithms to process data and discover new information, the analysis of potential solutions, and the ethical and social implications of computing systems. The course emphasizes object-oriented programming and design using the Java programming language.

College Course Equivalent AP Computer Science A is equivalent to a first-semester, college-level course in computer science.

The AP Computer Science A course requires that solutions of problems be written in the Java programming language. Because the Java programming language is extensive, with far more features than could be covered in a single introductory course, the AP Computer Science A Exam covers a subset of Java.

Websites you will need to create free accounts for and allows you to keep track of your daily and unit progress.

Big Ideas

Big Idea 1: Modularity - MOD

Incorporating elements of abstraction, by breaking problems down into interacting pieces, each with their own purpose, makes writing complex programs easier. Abstracting simplifies concepts and processes by looking at the big picture rather than being overwhelmed by the details. Modularity in object-oriented programming allows us to use abstraction to break complex programs down into individual classes and methods.

Big Idea 2: Variables - VAR

Information used as a basis for reasoning, discussion, or calculation is referred to as data. Programs rely on variables to store data, on data structures to organize multiple values when program complexity increases, and on algorithms to sort, access, and manipulate this data. Variables create data abstractions, as they can represent a set of possible values or a group of related values.

Big Idea 3: Control - CON

Doing things in order, making decisions, and doing the same process multiple times are represented in code by using control structures and specifying the order in which instructions are executed. Programmers need to think algorithmically in order to define and interpret processes that are used in a program.

Big Idea 4: Impact of Computing - IOC

Computers and computing have revolutionized our lives. To use computing safely and responsibly, we need to be aware of privacy, security, and ethical issues. As programmers, we need to understand how our programs will be used and be responsible for the consequences.

Practice Skills

Practice Skill 1: Program Design and Algorithm Development

Determine Required Code Segments to produce a given output

Multiple Choice Exam Weighting: 30-35%

1A: Determine an appropriate program design to solve a problem or accomplish a task (not assessed).

1B: Determine code that would be used to complete code segments.

1C: Determine code that would be used to interact with completed program code.

Practice Skill 2: Code Logic

Determine the output, value, or result of given program code given initial values.

Multiple Choice Exam Weighting: 40-45%

2A: Apply the meaning of specific operators.

2B: Determine the result or output based on statement execution order in a code segment without method calls (other than output).

2C: Determine the result or output based on the statement execution order in a code segment containing method calls.

2D: Determine the number of times a code segment will execute.

Practice Skill 3: Code Implementation

Write and implement program code.

Free-Response Exam Weighting: 100%

3A: Write program code to create objects of a class and call methods.

3B: Write program code to define a new type by creating a class.

3C: Write program code to satisfy method specifications using expressions, conditional statements, and iterative statements.

3D: Write program code to create, traverse, and manipulate elements in 1D array or ArrayList objects.

3E: Write program code to create, traverse, and manipulate elements in 2D array objects.

Practice Skill 4: Code Testing

Analyze program code for correctness, equivalence, and errors.

Multiple Choice Exam Weighting: 12-18%

4A: Use test-cases to find errors or validate results.

4B: Identify errors in program code.

4C: Determine if two or more code segments yield equivalent results.

Practice Skill 5: Documentation

Describe the behavior and conditions that produce identified results in a program.

Multiple Choice Exam Weighting: 12-18

5A: Describe the behavior of a given segment of program code.

5B: Explain why a code segment will not compile or work as intended.

5C: Explain how the result of program code changes, given a change to the initial code.

5D: Describe the initial conditions that must be met for a program segment to work as intended or described.