Algorithms & Programming¶
Big Ideas - Click Here
Big Ideas Covered:
Algorithms (AL)
Abstraction (AB)
Program Development (CRD)
Data (DAT)
Comprehensive Outline
3.1: Variables and Assignments
Understanding variables as symbolic names storing values
How assignment statements change values
Naming conventions and best practices
Types of data: integer, float, string, Boolean
Key Skill: Create and manipulate variables
3.2: Data Types
Identifying common data types
Type compatibility and implicit vs explicit casting
Boolean logic and conditionals
Key Skill: Reason through variable types and predict outcomes
3.3: Managing Complexity with Procedures (Functions)
Defining and calling functions
Parameters and return values
Purpose of abstraction in program design
Reducing repetition and improving clarity
Key Skill: Write and use procedures to break down problems
3.4: Developing Procedures
Decomposing problems into subproblems
Sequencing instructions
Identifying reusable logic
Key Skill: Create modular and readable code using procedures
3.5: Algorithms
Understanding algorithms as step-by-step processes
Expressing algorithms in code, pseudocode, or flowcharts
Identifying sequence, selection, and iteration
Key Skill: Analyze and write simple algorithms (e.g., search, sort)
3.6: Boolean Expressions and If Statements
Using
if
,else if
, andelse
Relational operators (
==
,!=
,>
,<
,>=
,<=
)Logical operators (
AND
,OR
,NOT
)Key Skill: Write conditional logic to control program flow
3.7: Iteration (Loops)
for
loops andwhile
loopsLoop control: incrementing, breaking, and nested loops
Trace and debug loop execution
Key Skill: Use loops to automate repeated tasks
3.8: Combining Elements to Solve Problems
Integrating variables, conditionals, and loops
Building algorithms to solve complex problems
Emphasis on testing and debugging
Key Skill: Synthesize programming elements into working solutions
3.9: Developing Algorithms
Using existing algorithms or creating new ones
Refining and testing algorithms
Representing algorithms as pseudocode and/or diagrams
Key Skill: Plan, document, and implement multi-step logic
3.10: Errors and Testing
Types of errors: syntax, logic, and runtime
Use of test cases and debugging strategies
Reading error messages and tracebacks
Key Skill: Find and fix problems systematically
3.11: Binary Search vs Linear Search
Linear search: simple, but slower for large data
Binary search: faster, requires sorted data
Tradeoffs in algorithm efficiency
Key Skill: Compare search algorithms conceptually and in code
3.12: Comparing Algorithmic Efficiency
Number of steps vs size of input (n)
Informal analysis of algorithm runtime
Big picture: efficiency impacts user experience and scalability
Key Skill: Evaluate which algorithm is “better” and why
3.13: Developing Programs
Problem identification, solution design
Iterative development process: test, debug, refine
Use of documentation and comments
Collaboration and code review
Key Skill: Design and build real programs with purpose
Key Vocabulary:
Algorithm
Abstraction
Procedure
Loop / Iteration
Boolean
Conditionals
Debugging
Linear/Binary Search
Efficiency
Input/Output
Parameters / Return
Suggested Activities:
Debugging challenges
Code tracing worksheets
Huffman coding (as a stretch topic for algorithms)
Block-based to text-based translation (e.g., Scratch to Python)
Write and refine a simple calculator or game logic
Pseudocode practice and flowcharts
AP CSP: Algorithms and Programming Project Packet
Each project includes meaningful challenges in problem-solving, design, data abstraction, and algorithmic thinking, and supports multiple CSP standards.
Project 1: Data Visualization Challenge
College Board Learning Objectives:
DAT-2.D: Describe the purpose of a computational artifact.
DAT-2.E: Create a computational artifact using data.
AAP-2.J: Create programs that use libraries or APIs.
Summary: Students will analyze a real-world dataset (e.g., climate, sports, health) and build a program that visualizes the data through graphs or interactive charts. They must clean the data, apply algorithms to extract meaning, and generate visual output.
Deliverables:
Python or JavaScript program with visualization
Annotated code with explanations
1-page summary of insights from the data
Assessment Rubric:
Project 1: Data Visualization Challenge
College Board Learning Objectives:
DAT-2.D: Describe the purpose of a computational artifact.
DAT-2.E: Create a computational artifact using data.
AAP-2.J: Create programs that use libraries or APIs.
Summary: Students will analyze a real-world dataset (e.g., climate, sports, health) and build a program that visualizes the data through graphs or interactive charts. They must clean the data, apply algorithms to extract meaning, and generate visual output.
Deliverables:
Python or JavaScript program with visualization
Annotated code with explanations
1-page summary of insights from the data
Assessment Rubric:
Criteria |
4 - Excellent |
3 - Proficient |
2 - Developing |
1 - Beginning |
---|---|---|---|---|
Data Processing & Accuracy |
Data is cleaned, processed, and represented with high accuracy |
Data mostly processed correctly |
Some data processed, minor errors |
Major issues or missing data processing |
Program Functionality |
Fully functional and interactive |
Mostly functional, minor bugs |
Partially functional |
Non-functional or incomplete |
Algorithm Use |
Well-structured and efficient algorithms |
Logical and mostly correct |
Some inefficiency or errors |
Poor or no algorithmic structure |
Visualization Clarity |
Highly clear, informative, and visually appealing |
Generally clear and well-organized |
Some visual confusion |
Unclear or poorly designed |
Communication & Creativity |
Excellent explanation and innovative presentation |
Clear explanation with some creativity |
Basic explanation |
Poorly explained or lacking originality |
Project 2: Custom Algorithm Design
College Board Learning Objectives:
AAP-2.C: Develop an algorithm.
AAP-2.G: Express an algorithm using sequencing, selection, and iteration.
AAP-2.K: Evaluate algorithms.
Summary: Students will identify a real-world or classroom problem and design a custom algorithm to solve it. The algorithm should include clear use of control structures and be implemented in code.
Deliverables:
Problem description
Flowchart or pseudocode
Working program with documentation
Analysis of algorithm efficiency (qualitative)
Assessment Rubric:
Project 2: Custom Algorithm Design
College Board Learning Objectives:
AAP-2.C: Develop an algorithm.
AAP-2.G: Express an algorithm using sequencing, selection, and iteration.
AAP-2.K: Evaluate algorithms.
Summary: Students will identify a real-world or classroom problem and design a custom algorithm to solve it. The algorithm should include clear use of control structures and be implemented in code.
Deliverables:
Problem description
Flowchart or pseudocode
Working program with documentation
Analysis of algorithm efficiency (qualitative)
Assessment Rubric:
Criteria |
4 - Excellent |
3 - Proficient |
2 - Developing |
1 - Beginning |
---|---|---|---|---|
Problem Definition |
Clearly articulated and meaningful |
Clear and solvable |
Vague or simplistic |
Unclear or undeveloped |
Algorithm Design |
Innovative, efficient, and well-structured |
Logical with appropriate control structures |
Some logical flaws |
Poor structure or missing elements |
Code Implementation |
Clean, correct, and complete |
Mostly correct with some issues |
Partially functional |
Incomplete or not working |
Algorithm Explanation |
Insightful and clearly communicates logic |
Reasonably clear explanation |
Limited clarity |
Missing or incorrect explanation |
Project 3: Text-Based Game Development
College Board Learning Objectives:
AAP-2.I: Use procedures to organize code.
AAP-2.M: Develop programs that use lists.
AAP-2.N: Use procedures that operate on data in lists.
Summary: Students will design and build a text-based adventure game using procedures and data structures. They will implement lists, control flow, and functions to support reusable code and dynamic behavior.
Deliverables:
Fully functional game (e.g., Python, Java)
Code with at least two custom procedures and one list-based mechanic
Game map or flow diagram
Assessment Rubric:
Project 3: Text-Based Game Development
College Board Learning Objectives:
AAP-2.I: Use procedures to organize code.
AAP-2.M: Develop programs that use lists.
AAP-2.N: Use procedures that operate on data in lists.
Summary: Students will design and build a text-based adventure game using procedures and data structures. They will implement lists, control flow, and functions to support reusable code and dynamic behavior.
Deliverables:
Fully functional game (e.g., Python, Java)
Code with at least two custom procedures and one list-based mechanic
Game map or flow diagram
Assessment Rubric:
Criteria |
4 - Excellent |
3 - Proficient |
2 - Developing |
1 - Beginning |
---|---|---|---|---|
Game Logic & Playability |
Highly engaging and bug-free |
Playable with minor bugs |
Playable but limited |
Unplayable or incomplete |
Procedures & Lists |
Uses multiple reusable procedures and well-integrated lists |
Appropriate use of both elements |
Limited or inconsistent use |
Missing procedures or list integration |
Code Structure |
Well-organized and readable |
Mostly clear organization |
Some disorganization |
Hard to follow or messy |
Creativity & Innovation |
Highly original and engaging concept |
Some creativity |
Basic or conventional |
Lacking originality |
Project 4: Debugging & Code Review Simulation
College Board Learning Objectives:
AAP-1.C: Identify and correct errors in programs.
AAP-2.F: Evaluate expressions that use arithmetic operators.
AAP-2.H: Determine the result of program execution.
Summary: Students will be given a broken or inefficient program. Their job is to debug it, improve it, and write a peer review report explaining how and why they made their changes.
Deliverables:
Corrected source code
Side-by-side comparison with the original
Peer review report (1 page)
Assessment Rubric:
Project 4: Debugging & Code Review Simulation
College Board Learning Objectives:
AAP-1.C: Identify and correct errors in programs.
AAP-2.F: Evaluate expressions that use arithmetic operators.
AAP-2.H: Determine the result of program execution.
Summary: Students will be given a broken or inefficient program. Their job is to debug it, improve it, and write a peer review report explaining how and why they made their changes.
Deliverables:
Corrected source code
Side-by-side comparison with the original
Peer review report (1 page)
Assessment Rubric:
Criteria |
4 - Excellent |
3 - Proficient |
2 - Developing |
1 - Beginning |
---|---|---|---|---|
Bug Identification |
All bugs correctly identified and explained |
Most bugs identified |
Some bugs found |
Few or no bugs identified |
Debugging Quality |
Efficient and optimal fixes applied |
Functional fixes with some inefficiency |
Fixes with side effects or redundancy |
Buggy or no fixes applied |
Code Comparison |
Clear and complete before/after comparison |
Some comparison shown |
Basic or unclear comparison |
No clear comparison |
Review Explanation |
Detailed reasoning and reflection |
Some reasoning included |
Minimal or vague explanation |
Missing or incorrect explanation |
Project 5: Algorithm Museum (Explainer Showcase)
College Board Learning Objectives:
AAP-2.L: Explain how algorithms reflect different approaches to solving problems.
CRD-2.C: Identify inputs and outputs of a program.
AAP-2.K: Evaluate algorithms.
Summary: Students select a classic algorithm (e.g., sorting, searching, pathfinding) and create an interactive or visual explainer. They must describe inputs/outputs, explain its function, and compare it with an alternative.
Deliverables:
Explainer artifact (video, animation, poster, slideshow, etc.)
Input/output examples
Comparative write-up
Assessment Rubric:
Project 5: Algorithm Museum (Explainer Showcase)
College Board Learning Objectives:
AAP-2.L: Explain how algorithms reflect different approaches to solving problems.
CRD-2.C: Identify inputs and outputs of a program.
AAP-2.K: Evaluate algorithms.
Summary: Students select a classic algorithm (e.g., sorting, searching, pathfinding) and create an interactive or visual explainer. They must describe inputs/outputs, explain its function, and compare it with an alternative.
Deliverables:
Explainer artifact (video, animation, poster, slideshow, etc.)
Input/output examples
Comparative write-up
Assessment Rubric:
Criteria |
4 - Excellent |
3 - Proficient |
2 - Developing |
1 - Beginning |
---|---|---|---|---|
Algorithm Explanation |
Clear, deep explanation with visuals/examples |
Mostly clear explanation |
Some confusion or gaps |
Inaccurate or unclear explanation |
Inputs & Outputs |
Well-explained with accurate examples |
Mostly correct |
Minor errors or omissions |
Missing or incorrect examples |
Comparison & Evaluation |
Thoughtful comparison of two or more approaches |
Adequate comparison |
Limited insight or explanation |
No meaningful comparison |
Presentation Quality |
Polished, creative, and informative |
Clear and informative |
Somewhat unclear |
Hard to understand or poorly executed |