Create Performance Task Concepts
Project Theme: Student Grade Management System
Why This Matters for Your Score: The AP CSP exam tests your ability to read and write pseudocode across multiple concepts. More importantly, your Create Performance Task must demonstrate how input, output, lists, procedures, selection, and iteration work together in ONE meaningful programβnot scattered examples.
This lesson uses a unified Student Grade Management System to show you exactly what College Board expects: algorithms that solve a real problem, procedures that accept parameters and return values, lists that store and process data, and boolean logic that makes decisions. When you see how these concepts connect in a themed project, youβll be prepared to design your own CPT program that earns full credit for algorithm implementation, abstraction, and program purpose.
Practice reading this pseudocode carefullyβthe AP exam includes multiple-choice questions where you must trace execution, predict output, and identify errors in College Board pseudocode syntax.
Output
CPT Requirement: Your program must produce output visible to the user. College Board pseudocode uses DISPLAY() to show resultsβstrings, numbers, or variable values. On the exam, youβll trace DISPLAY statements to predict program output. For CPT, demonstrating clear output shows your programβs purpose and functionality.
Code Runner Challenge
Display student's current grade
Input
CPT Requirement: Your program must get input from the user. College Board pseudocode uses INPUT() to collect dataβthis makes programs interactive and personalized. On exam questions, youβll identify where input affects program behavior. For CPT scoring, input demonstrates your program responds to different user data, a key component of functionality.
Code Runner Challenge
Get student name from user
List
CPT Requirement: Your program must use a list (or other collection type) to manage multiple data values. Critical exam detail: College Board pseudocode lists start at index 1, not 0. Accessing index 0 or going beyond LENGTH terminates the program. On exam questions, youβll trace list operations and identify index errors. For CPT, using lists to store and process data earns points for algorithm implementation and managing complexity.
Code Runner Challenge
Store and sum student test scores
Procedure
CPT Requirement: You must create at least one student-developed procedure with parameters. College Board pseudocode uses PROCEDURE name(parameters) with optional RETURN(value). This demonstrates abstractionβhiding complexity and enabling code reuse. On the exam, youβll trace procedure calls and identify parameter passing. For CPT, your procedure must be called at least once and contribute to the programβs functionality to earn full credit.
Code Runner Challenge
Determine letter grade from score
Sequence
Exam Concept: Sequencing means statements execute in order, line by line. Every program uses sequenceβitβs the default flow. On exam questions, youβll trace execution order to predict variable values. For CPT, showing logical step-by-step calculations demonstrates you understand how programs process data systematically.
Code Runner Challenge
Calculate final grade step-by-step
Selection
CPT Requirement: Your algorithm must include selection using IF or IF/ELSE statements. College Board pseudocode uses curly braces { } to mark code blocks. Selection makes decisions based on Boolean conditions, allowing different outcomes. On the exam, youβll trace which branches execute based on condition values. For CPT, selection demonstrates your program handles different data appropriatelyβa key scoring criterion.
Code Runner Challenge
Grade calculator with selection
Iteration
CPT Requirement: Your algorithm must include iteration (loops) using FOR EACH, REPEAT TIMES, or REPEAT UNTIL. Iteration processes multiple data items without writing duplicate code. On the exam, youβll trace loop counters and predict how many times blocks execute. For CPT, iteration shows your program can handle collections of dataβcritical for demonstrating algorithm complexity and earning full points.
Code Runner Challenge
Enter grades until done (sentinel pattern)
Algorithm
CPT Requirement: Your algorithm must integrate sequencing, selection, and iteration to solve a meaningful problem. College Board defines an algorithm as a precise step-by-step procedure that accomplishes a task. On the exam, youβll analyze complete algorithms for correctness and efficiency. For CPT, your algorithm is the core of your programβit must demonstrate complexity by combining multiple concepts to process data and produce results. This is where you earn algorithm implementation points.
Code Runner Challenge
Find average from a list (complete algorithm)
List Operations
Exam Topic: College Board pseudocode includes essential list operations: APPEND(list, value) adds to end, INSERT(list, index, value) adds at position, REMOVE(list, index) deletes by position, and LENGTH(list) returns count. On exam questions, youβll trace how these operations modify lists and affect indices. For CPT, manipulating lists demonstrates data management skills and algorithm complexity.
Code Runner Challenge
Linear search algorithm
Search Algorithm
Exam Topic: Linear search is a common algorithm pattern that appears frequently on the AP exam. It demonstrates iteration through a list, selection to check conditions, and return values. On exam questions, youβll identify search algorithms, trace their execution, and determine what they return when items are found or not found. For CPT, implementing search shows algorithmic thinking and practical data processing.
Code Runner Challenge
List manipulation operations
Code Runner Challenge
Search for student in roster
Boolean Logic
Exam Concept: College Board pseudocode uses AND, OR, and NOT operators to combine conditions. Boolean expressions evaluate to true or false. On the exam, youβll trace complex conditions and predict which code blocks execute. For CPT, boolean logic enables sophisticated decision-makingβlike role-based access control or validation checksβdemonstrating program complexity.
Code Runner Challenge
Search for student's grade to match position in list
Student Hacks: Apply What Youβve Learned
Now that you reviewed how CPT concepts connect in pseudocode, itβs time to practice finding gaps, creating your own examples, and thinking like a full stack developer.
Hack #1: Find the Flaws
Individual Work - Create your own notebook using this lesson as a template and identify imperfections.
Your Mission:
- Copy this notebook and analyze each example against its section heading
- Compare what the heading says is required vs. what the example actually demonstrates
- Document at least 3-5 gaps you discover.
Hint to Get Started: Look at the Algorithm section heading. It states that an algorithm must integrate βsequencing, selection, and iterationβ to solve a meaningful problem. Now examine the example code carefully:
- Does it include iteration (loops)?
- Does it fully demonstrate all three components?
- What would you add to make it complete?
Deliverable:
- Modified notebook with annotations identifying flaws
- Proposed fixes written in pseudocode
- Explanation of why each fix improves CPT scoring potential
Hack #2: Team Ideation & Prototyping
Team Work (3 students) - Ideate a themed project and prototype it in pseudocode, JavaScript, and Python.
Your Mission:
- Choose Your Theme - Pick a project that interests your team:
- Music playlist manager
- Sports statistics tracker
- Recipe collection organizer
- Gaming leaderboard system
- Social media post scheduler
- Any other theme that excites you!
- Design in Pseudocode - Create a notebook showing ALL CPT concepts in your theme:
- Input/Output
- Lists to manage collections
- Procedures with parameters and return values
- Selection (IF/ELSE decisions)
- Iteration (loops through data)
- Complete algorithm combining everything
- Boolean logic for complex conditions
- Implement in JavaScript - Convert your pseudocode examples to working JavaScript
- Input: HTML
<input>tags with DOM manipulation (document.getElementById()) - Output: Update HTML elements or
console.log()for debugging - Arrays for lists
- Functions for procedures
- Show your code actually works in a browser!
Example JavaScript with HTML:
<input type="text" id="studentName" placeholder="Enter name"> <button onclick="addStudent()">Add Student</button> <div id="output"></div>function addStudent() { let name = document.getElementById("studentName").value; document.getElementById("output").innerHTML = "Added: " + name; } - Input: HTML
- Implement in Python - Convert the same examples to Python
- Use
input()for input,print()for output - Lists for collections
- Functions with def
- Compare: Whatβs different between JavaScript and Python?
- Use
Deliverable:
- One notebook per team with three sections: Pseudocode, JavaScript, Python
- Each section demonstrates all CPT concepts in your chosen theme
- Reflection: Which language felt most natural? Why?
Hack #3: Full Stack Thinking
Team Work - Expand your Hack #2 project into a full stack application architecture.
Your Mission: Think about how your themed project would work as a real web application with frontend and backend components.
Frontend: JavaScript/HTML/CSS
Responsibilities:
- Input - HTML forms collect user data (student names, grades, search queries)
- Output - Display results in the browser (tables, lists, formatted text)
- Interaction - Buttons, dropdowns, dynamic updates
- Validation - Check data before sending to backend
Example for Grade System:
// Frontend JavaScript
function submitGrade() {
let studentName = document.getElementById("nameInput").value;
let score = document.getElementById("scoreInput").value;
// Send to backend
fetch("/api/grades", {
method: "POST",
body: JSON.stringify({name: studentName, score: score})
});
}
Backend: Python + SQL
Responsibilities:
- Data Storage - SQL database stores persistent data (users, grades, transactions)
- Data Processing - Python procedures calculate averages, search records, validate access
- Business Logic - Admin vs. student roles, grade calculations, list operations
- API Endpoints - Receive frontend requests, process data, return results
Example for Grade System:
# Backend Python + SQL
@app.route('/api/grades', methods=['POST'])
def add_grade():
data = request.json
student = data['name']
score = data['score']
# Store in SQL database
db.execute("INSERT INTO grades (student_name, score) VALUES (?, ?)",
(student, score))
return {"status": "success"}
Deliverable:
- Architecture diagram showing frontend β backend communication
- Identify which CPT concepts belong in frontend vs. backend
- Explain: Why separate the layers? What are the benefits?
- Bonus: Describe where youβd implement admin/student role authentication
Submit Assignment
Need to update a submission later? Open the submissions dashboard.