A Guide to the CPT
AP Computer Science Principles (CSP) Create Performance Task (CPT) Guide
Table of Contents
- Overview
- Project Requirements
- Planning the Project
- Developing the Program
- Documenting the Code
- Creating the Video
- Writing the Personalized Project Reference
- Final Submission Checklist
- Simplified Requirements
Overview
The Create Performance Task (CPT) is an AP Computer Science Principles (CSP) project designed to evaluate programming skills, problem-solving abilities, and computational thinking. The project requires the development of a functional program and documentation that demonstrates understanding of key programming concepts.
The submission includes:
- Program Code (developed independently or collaboratively)
- Video Demonstration (created independently)
- Personalized Project Reference (created independently)
A minimum of 9 hours of class time is allocated for completion.
Project Requirements
Each project must include:
- User Input Handling: The program must accept input from one of the following sources:
- User interactions (e.g., button clicks, text input)
- Sensors or device inputs
- Online data streams
- File-based data
-
List or Collection Usage: A list (or other collection type) must be used to manage data and simplify program complexity.
- Student-Developed Procedure:
- Must have a defined name and return type (if applicable).
- Must use at least one parameter that affects functionality.
- Must include an algorithm with sequencing, selection, and iteration.
- Algorithm Implementation:
- Must demonstrate sequencing (step-by-step execution).
- Must include selection (if-statements, switches, or conditions).
- Must include iteration (loops like for, while, or recursion).
-
Program Output: The program must provide tactile, audible, visual, or textual output based on user interaction or data processing.
- Commenting and Acknowledgment:
- Comments should be used to describe functionality.
- Any external code or AI-generated assistance must be acknowledged in comments.
Planning the Project
Before coding, a structured plan should be developed:
1. Identifying the Purpose
- Determine the problem being solved or the interest being explored.
- Consider whether the program is a game, calculator, data analysis tool, or interactive application.
2. Writing a Problem Statement
Example Template:
## Problem Statement
This program aims to [describe the problem or goal]. It will allow users to [describe user interaction] and will provide [describe expected output].
3. Designing the Program Flow
A flowchart or pseudocode can be used to visualize logic before implementation.
Example Pseudocode:
START
Get user input
Process input using a function
Store data in a list
Apply conditions and loops
Display output
END
Developing the Program
When implementing the program, the following aspects should be considered:
1. Structuring the Code
Organize the code into:
- Main program logic
- Functions/procedures
- Data handling (lists, dictionaries)
- User interaction (input/output handling)
2. Example Program Structure
# Define a function with a parameter
def calculate_average(grades):
total = sum(grades)
return total / len(grades)
# Main program
student_grades = [90, 85, 78, 92]
average = calculate_average(student_grades)
print(f"Student's average grade: {average}")
3. Testing and Debugging
- Test the program with various inputs.
- Implement error handling (e.g., try-except blocks in Python).
- Use print statements for debugging.
Documenting the Code
Comments and explanations are crucial for readability. The following practices should be followed:
1. Using Descriptive Comments
# Function to calculate the average of a list of numbers
def calculate_average(grades):
total = sum(grades) # Sum all elements in the list
return total / len(grades) # Divide by the number of elements
2. Acknowledging External Sources
If AI assistance, open-source code, or external APIs were used, include:
# This function was adapted from an open-source project on GitHub:
# Source: https://github.com/example/source
Creating the Video
The video should demonstrate:
- Input interaction
- At least one functional feature
- Output generated by the program
Video Requirements
- Duration: Max 1 minute
- File Format:
.webm, .mp4, .wmv, .avi, .mov
- Size: Max 30MB
- No voice narration (text captions are recommended)
Tip: Use a screen recording tool such as OBS Studio, ScreenPal, or Screencastify to capture the demonstration.
Writing the Personalized Project Reference
This reference will be available on exam day to support written responses. It includes:
- Two Code Segments
- A student-developed procedure (with sequencing, selection, and iteration).
- The location where the procedure is called.
- List Usage
- One segment showing list creation and storage.
- One segment demonstrating list usage (modifying or accessing elements).
Final Submission Checklist
Before submitting, ensure the following components are finalized:
- Program Code (saved as a PDF)
- Video Demonstration (max 1 minute)
- Personalized Project Reference (two code segments)
- Adherence to Plagiarism Policy
- Submission to AP Digital Portfolio
Note: Once submitted as final, revisions cannot be made.
Simplified Requirements
Requirement | Details |
---|---|
Input Handling | User input, device input, online data, or file input |
Data Collection | At least one list or collection type |
Algorithm | Sequencing, selection, and iteration |
Procedure | Custom function with parameters |
Output | Must provide a visual, audible, or textual result |