7 min read•june 18, 2024
Minna Chow
Milo Chang
Minna Chow
Milo Chang
This guide was based on the updated 2020-21 Course Exam Description.
This Big Idea covers the vast majority of the code you'll see on the AP test in the spring. It describes basic components of most programming languages such as variables, lists, and procedures.
Unlike AP Comp Sci A, which only teaches Java, there's no programming language specification for AP CSP. Your teacher could use a block-based language like Scratch or a text-based language like Python. In order to accommodate for these differences, The AP CSP test uses a basic Pseudocode, or a simplified programming language.
The College Board's Pseudocode shares many similarities with the coding language Python, which is used to help write examples across this guide.
All photos of Pseudocode come from the Exam Reference Sheet on page 214 of the CED, found here.
**Learning Objective: Represent a value with a variable. **
Learning Objective: Determine the value of a variable as a result of an assignment.
🔗 3.1: Variables and Assignments
Learning Objective: Represent a list or string using a variable.
Learning Objective: For data abstraction, develop data abstraction using lists to store multiple elements; explain how the use of data abstraction manages complexity in program code.
Learning Objective: Express an algorithm that uses sequencing without using a programming language.
**Learning Objective: Represent a step-by-step algorithmic process using sequential code statements. **
Learning Objective: Evaluate expressions that use arithmetic operators.
🔗 3.3: Mathematical Expressions
Learning Objective: Evaluate expressions that manipulate strings.
Learning Objective: For relationships between two variables, expressions, or values, write expressions using relational operators; evaluate expressions that use relational operators.
Learning Objective: For relationships between Boolean values, write expressions using logical operators; evaluate expressions that use logic operators.
Learning Objective: Express an algorithm that uses selection without using a programming language.
Learning Objective: For selection, write conditional statements; determine the result of conditional statements.
**Learning Objective: For nested selection, write nested conditional statements; determine the result of nested conditional statements. **
Learning Objective: Express an algorithm that uses iteration without using a programming language.
Learning Objective: For iteration, write iteration statements; determine the result or side effect of iteration statements.
Learning Objective: Compare multiple algorithms to determine if they yield the same side effect or result.
**Learning Objective: For algorithms, create algorithms; combine and modify existing algorithms. **
none
Learning Objective: For list operations, write expressions that use list indexing and list procedures; evaluate expressions that use list indexing and list procedures.
**Learning Objective: For algorithms involving elements of a list, write iteration statements to traverse a list; determine the result of an algorithm that includes list traversal. **
Learning Objective: For binary search algorithms, determine the number of iterations required to find a value in a data set; explain the requirements necessary to complete a binary search.
**Learning Objective: For procedure calls, write statements to call procedures; determine the result or effect of a procedure call. **
Learning Objective: Explain how the use of procedural abstraction manages complexity in a program.
**Learning Objective: Develop procedural abstractions to manage complexity in a program by writing procedures. **
Learning Objective: Select appropriate libraries or existing code segments to use in creating new programs.
**Learning Objective: For generating random values, write expressions to generate possible values; evaluate expressions to determine the possible results. **
none
**Learning Objective: For simulations, explain how computers can be used to represent real-world phenomena or outcomes; compare simulations with real-world contexts. **
**Learning Objective: For determining the efficiency of an algorithm, explain the difference between algorithms that run in reasonable time and those that do not; identify situations where a heuristic solution may be more appropriate. **
🔗 3.17: Algorithmic Efficiency
Learning Objective: Explain the existence of undecidable problems in computer science.
<< Hide Menu
7 min read•june 18, 2024
Minna Chow
Milo Chang
Minna Chow
Milo Chang
This guide was based on the updated 2020-21 Course Exam Description.
This Big Idea covers the vast majority of the code you'll see on the AP test in the spring. It describes basic components of most programming languages such as variables, lists, and procedures.
Unlike AP Comp Sci A, which only teaches Java, there's no programming language specification for AP CSP. Your teacher could use a block-based language like Scratch or a text-based language like Python. In order to accommodate for these differences, The AP CSP test uses a basic Pseudocode, or a simplified programming language.
The College Board's Pseudocode shares many similarities with the coding language Python, which is used to help write examples across this guide.
All photos of Pseudocode come from the Exam Reference Sheet on page 214 of the CED, found here.
**Learning Objective: Represent a value with a variable. **
Learning Objective: Determine the value of a variable as a result of an assignment.
🔗 3.1: Variables and Assignments
Learning Objective: Represent a list or string using a variable.
Learning Objective: For data abstraction, develop data abstraction using lists to store multiple elements; explain how the use of data abstraction manages complexity in program code.
Learning Objective: Express an algorithm that uses sequencing without using a programming language.
**Learning Objective: Represent a step-by-step algorithmic process using sequential code statements. **
Learning Objective: Evaluate expressions that use arithmetic operators.
🔗 3.3: Mathematical Expressions
Learning Objective: Evaluate expressions that manipulate strings.
Learning Objective: For relationships between two variables, expressions, or values, write expressions using relational operators; evaluate expressions that use relational operators.
Learning Objective: For relationships between Boolean values, write expressions using logical operators; evaluate expressions that use logic operators.
Learning Objective: Express an algorithm that uses selection without using a programming language.
Learning Objective: For selection, write conditional statements; determine the result of conditional statements.
**Learning Objective: For nested selection, write nested conditional statements; determine the result of nested conditional statements. **
Learning Objective: Express an algorithm that uses iteration without using a programming language.
Learning Objective: For iteration, write iteration statements; determine the result or side effect of iteration statements.
Learning Objective: Compare multiple algorithms to determine if they yield the same side effect or result.
**Learning Objective: For algorithms, create algorithms; combine and modify existing algorithms. **
none
Learning Objective: For list operations, write expressions that use list indexing and list procedures; evaluate expressions that use list indexing and list procedures.
**Learning Objective: For algorithms involving elements of a list, write iteration statements to traverse a list; determine the result of an algorithm that includes list traversal. **
Learning Objective: For binary search algorithms, determine the number of iterations required to find a value in a data set; explain the requirements necessary to complete a binary search.
**Learning Objective: For procedure calls, write statements to call procedures; determine the result or effect of a procedure call. **
Learning Objective: Explain how the use of procedural abstraction manages complexity in a program.
**Learning Objective: Develop procedural abstractions to manage complexity in a program by writing procedures. **
Learning Objective: Select appropriate libraries or existing code segments to use in creating new programs.
**Learning Objective: For generating random values, write expressions to generate possible values; evaluate expressions to determine the possible results. **
none
**Learning Objective: For simulations, explain how computers can be used to represent real-world phenomena or outcomes; compare simulations with real-world contexts. **
**Learning Objective: For determining the efficiency of an algorithm, explain the difference between algorithms that run in reasonable time and those that do not; identify situations where a heuristic solution may be more appropriate. **
🔗 3.17: Algorithmic Efficiency
Learning Objective: Explain the existence of undecidable problems in computer science.
© 2024 Fiveable Inc. All rights reserved.