AP Computer Science Principles (CSP) Create Performance Task (CPT) Guide

Table of Contents

  1. Overview
  2. Project Requirements
  3. Planning the Project
  4. Developing the Program
  5. Documenting the Code
  6. Creating the Video
  7. Writing the Personalized Project Reference
  8. Final Submission Checklist
  9. 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:

  1. 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
  2. List or Collection Usage: A list (or other collection type) must be used to manage data and simplify program complexity.

  3. 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.
  4. 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).
  5. Program Output: The program must provide tactile, audible, visual, or textual output based on user interaction or data processing.

  6. 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:

  1. Two Code Segments
    • A student-developed procedure (with sequencing, selection, and iteration).
    • The location where the procedure is called.
  2. 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