AP CSP Create Performance Task Guide

🎯 AP CSP Create Performance Task

The Complete Guide to Planning, Building, and Scoring High on Your Create Task (2025-26)

📊
30%
of Your AP Score
⏱️
9+ Hours
In-Class Time
📅
April 30
2026 Deadline
6 Points
Maximum Score

1. What is the Create Performance Task?

The Create Performance Task is a major component of the AP Computer Science Principles exam, worth 30% of your total score. Unlike a traditional test, the Create Task is a programming project you complete during class time before the exam date.

Here's how it works:

  1. During the school year: You'll be given at least 9 hours of class time to develop a computer program of your choice.
  2. Before the deadline (April 30): You submit your code as a Personalized Project Reference (PPR) through the AP Digital Portfolio.
  3. On exam day: You answer two written response questions about YOUR code (you'll have access to your PPR).
💡
Key InsightThe Create Task is NOT about building something impressive or complex. It's about demonstrating that you understand fundamental programming concepts and can explain your own code clearly. Simple, well-executed projects often score higher than ambitious, messy ones.

What You Submit

You will submit your Personalized Project Reference (PPR) which includes screenshots/copies of specific code segments from your program. On exam day, you'll answer questions about this code.

The PPR must include:

  • A procedure you created with at least one parameter
  • A call to that procedure
  • How a list is used to manage complexity

2. Technical Requirements (Non-Negotiable)

Your program must include all of the following. Missing even one will cost you points:

✅ Required Program Elements

  • Input: Your program must accept input from the user (keyboard, mouse click, dropdown selection, etc.)
  • Output: Your program must produce output based on that input (display text, images, sounds, or actions)
  • A List (or other collection type): Your program must use a list/array to store multiple values
  • A Procedure/Function with at least one parameter: You must create your own procedure that takes input through a parameter
  • An algorithm inside your procedure that includes: Sequencing (code runs in order), Selection (if/else statements), and Iteration (a loop)
⚠️
Common Trap: Using Built-in FunctionsUsing Python's len(), append(), or sort() is fine, but these don't count as YOUR procedure. You must write your own procedure from scratch with your own algorithm inside it.

3. How the Create Task is Scored (Rubric Breakdown)

Your Create Task is worth 6 points total. The scoring happens on exam day based on your written responses about your PPR code.

Row What's Being Scored Points
Row 1 Program Purpose & Function: Can you describe what your program does, explain the input/output, and describe its functionality? 1
Row 2 Data Abstraction (List): Does your code use a list? Can you explain how the list stores data and why a list is necessary? 1
Row 3 Managing Complexity: Can you explain how your list manages complexity? What would the program look like without a list? 1
Row 4 Procedural Abstraction: Did you create a procedure with a parameter? Can you describe what it does? 1
Row 5 Algorithm Implementation: Does your procedure contain sequencing, selection, AND iteration? Can you explain how they work together? 1
Row 6 Testing: Can you describe two different calls to your procedure with different arguments and explain the results? 1
🎯
Score ImpactGetting all 6 points on the Create Task means you only need about 32/70 correct on the multiple choice to get a 3 overall. A strong Create Task score provides a huge safety net!

4. Project Ideas That Work

The best Create Task projects are simple, completable, and clearly demonstrate all requirements. Here are proven project ideas:

📊 Grade Calculator

User enters grades into a list, a procedure calculates weighted averages with conditions for letter grades.

Beginner Friendly

📝 Quiz App

Questions stored in a list, user answers, procedure checks answers and tracks score with a loop.

Beginner Friendly

📋 To-Do List Manager

User adds/removes tasks from a list, procedure filters or displays tasks based on criteria.

Intermediate

🎲 Number Guessing Game

Computer picks a number, user guesses, procedure provides "higher/lower" feedback with attempt tracking.

Beginner Friendly

🏀 Sports Stats Tracker

User enters player stats into a list, procedure calculates averages, finds MVP, or ranks players.

Intermediate

🎵 Playlist Manager

Songs stored in a list, procedure searches/filters by criteria (genre, artist, length).

Intermediate

💰 Budget Tracker

User logs expenses to a list, procedure categorizes and totals spending by type.

Intermediate

📖 Flashcard Study App

Question/answer pairs in a list, procedure quizzes user and tracks correct/incorrect.

Beginner Friendly
🚫
Avoid These Project Types
  • Projects that are too simple (just print statements, no real algorithm)
  • Projects that are too complex (you can't finish or explain them)
  • Projects that copy tutorials exactly (you need to understand YOUR code)
  • Projects without meaningful user input
  • Projects where the list is just for display, not actually used in processing

5. Planning Your Project

Before writing a single line of code, plan your project to ensure it meets all requirements.

Step 1: Map to the Rubric

Create a simple table that shows exactly where each requirement will appear in your code:

📋 Example Rubric Map

Input: User enters grades via input() on lines 5-8
Output: Display final average and letter grade on line 25
List: grades = [] stores all entered grades, line 3
Procedure with parameter: calculate_average(grade_list) on lines 12-22
Selection (if/else): Inside procedure, lines 18-22
Iteration (loop): Inside procedure, line 14

Step 2: Timeline

With 9 hours of class time, here's a recommended breakdown:

Hours 1-2: Planning & Design

Finalize your idea, create rubric map, write pseudocode, design any UI elements.

Hours 3-5: Core Development

Write your main code, create your procedure, implement the list functionality.

Hours 6-7: Testing & Debugging

Test with multiple inputs, fix bugs, ensure all requirements are met.

Hours 8-9: PPR & Polish

Create your Personalized Project Reference, add comments, final review.

6. Writing Your Code

Example: Grade Calculator in Python

Here's a complete example that meets all requirements:

# Grade Calculator - AP CSP Create Task Example # Create an empty list to store grades grades = [] # Get input from user num_grades = int(input("How many grades? ")) # Use a loop to collect grades for i in range(num_grades): grade = float(input(f"Enter grade {i + 1}: ")) grades.append(grade) # PROCEDURE with parameter def calculate_average(grade_list): total = 0 # ITERATION: Loop through list for grade in grade_list: total = total + grade average = total / len(grade_list) # SELECTION: Determine letter grade if average >= 90: letter = "A" elif average >= 80: letter = "B" elif average >= 70: letter = "C" else: letter = "F" return average, letter # Call the procedure result_avg, result_letter = calculate_average(grades) # OUTPUT print(f"Average: {result_avg:.2f}, Grade: {result_letter}")

7. Creating Your Personalized Project Reference (PPR)

The PPR is what you submit to College Board and what you'll have access to on exam day.

📸 What to Include in Your PPR

  • Procedure Definition: Screenshot showing your entire procedure with the parameter(s)
  • Procedure Call: Screenshot showing where you call your procedure with argument(s)
  • List Usage: Screenshot showing where your list is being used in your program
⚠️
PPR Requirements
  • Screenshots must be clear and readable (at least 10-point font)
  • Do NOT include comments in your PPR code segments
  • Do NOT include any personally identifying information
  • Submit as final by April 30 deadline

8. Exam Day Written Responses

On exam day, you'll have 60 minutes to answer two written response questions about YOUR code from your PPR.

Written Response 1: Program Purpose and Function

Describe the overall purpose, functionality, and input/output of your program.

💡 Purpose vs. Function

Purpose (WHY): "To help students track and improve their academic performance"

Function (WHAT): "The program collects grade values from the user, calculates the average, and displays the corresponding letter grade"

Written Response 2: Algorithm and Abstraction

2(a) - Data Abstraction (List)

Explain what data is stored in your list, how it's used, and why a list is necessary.

2(b) - Procedural Abstraction

Describe what your procedure does and how the parameter affects its behavior.

2(c) - Algorithm

Explain how sequencing, selection, AND iteration work together in your procedure.

Key StrategyUse specific details and reference actual variable names from your PPR. Generic answers lose points. Be precise!

9. Common Mistakes to Avoid

❌ Procedure doesn't have a parameter

Creating a function that uses global variables instead of accepting data through a parameter.

Your procedure MUST have at least one parameter. Pass data INTO the procedure.

❌ List doesn't manage complexity

Using a list just to store one or two values, or using it only for display without processing.

Your list should store multiple related values AND be processed by your algorithm.

❌ Missing sequencing, selection, OR iteration in procedure

Having a loop in main code but not inside your procedure, or missing an if statement.

ALL THREE must be INSIDE your procedure, working together.

❌ Can't explain your own code

Copying code from a tutorial or getting too much help, then struggling to explain how it works.

Write code YOU understand. If you can't explain every line, simplify your project.

❌ Confusing purpose and function

Writing "the purpose is to calculate averages" (that's function, not purpose).

Purpose = WHY (the problem being solved). Function = WHAT (what the program does).

10. Final Submission Checklist

🔍 Before You Submit Your PPR

  • Your program runs without errors
  • You have a procedure with at least one parameter
  • Your procedure contains sequencing, selection, AND iteration
  • You use a list that stores multiple values
  • Your list is used meaningfully (not just for display)
  • Your program has clear input from the user
  • Your program produces output based on that input
  • Your PPR screenshots are clear and readable
  • There are NO comments in your PPR code segments
  • There is NO personally identifying information
  • You can explain every line of your code
  • You can describe TWO different test cases with different arguments
  • You understand the difference between purpose and function
  • You submitted as FINAL in AP Digital Portfolio
🚨
Don't Forget!You must click "Submit as Final" in the AP Digital Portfolio by April 30, 2026 at 11:59 PM ET. Late submissions are NOT accepted. Submit early!

Need More Help With Your Create Task?

Get personalized guidance from an experienced AP CS teacher. I've helped hundreds of students succeed on the Create Task.

Get 1-on-1 Tutoring → Back to AP CSP Hub

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

tanner@apcsexamprep.com

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at tanner@apcsexamprep.com