HOMEWORK DELIVERY
STEP 1
STEP 2
βœ‰ Export your solutions, then commit to submit...

Submit Failed β€” Enter Manually

Create Performance Task Concepts

10 min read β€’ Assignment

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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)

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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)

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

Code Runner Challenge

Search for student in roster

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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

Lines: 1 Characters: 0
Output
Click "Run" in code control panel to see output ...

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:

  1. 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!
  2. 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
  3. 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;
    }
    
  4. 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?

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.

Course Timeline