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, and else

  • Relational operators (==, !=, >, <, >=, <=)

  • Logical operators (AND, OR, NOT)

  • Key Skill: Write conditional logic to control program flow

3.7: Iteration (Loops)

  • for loops and while loops

  • Loop 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