Create Task
Survival Guide

AP Computer Science Principles

Quick Refresher

What Have We Been Practicing?

What have we already done to prepare for the Create Task?

Quick Refresher

The Big 3

Think back to the projects we've worked on to practice for the Create Task.

What are the three key components we need to include in our program?

Your program must include:

  • A List (or Group): stores multiple values
  • A Procedure: with a parameter and return/effect
  • An Algorithm: sequencing + selection + iteration

These components work together to create a well-structured and functional program.

But how will we show the College Board that we included these components...

Section 2 — Official Requirements

What You Must Submit

Look at the General Requirements on page 1 of the Create Performance Task Student Handout.

What are the 3 things you need to turn in for the Create Task?

Section 2 — Official Requirements

What You Must Submit

1 — Program Code (PDF)

A PDF of your entire program code

2 — Video

1 minute or less showing your program running

3 — Personalized Project Reference (PPR)

4 Code segments showing your procedure and your list.

Section 2 — Official Requirements

Who Will Work On This?

At the top of page 1, there are 3 paragraphs introducing the project. Look through those paragraphs.

You can work alone or with one partner

Each student must submit their own video and PPR

Code can be shared between partners; video and PPR cannot

Section 2 — Official Requirements

In the first paragraph of the Create Performance Task Student Handout, you will see:

"In the Create Performance Task, you will design and implement a program that might solve a problem, enable innovation, explore personal interests, or express creativity."

That is the why behind your program, its purpose.

Section 2 — Official Requirements

Purpose vs Functionality

What is the difference between the purpose and the functionality of a program?

Section 2 — Official Requirements

Purpose vs Functionality

Purpose — WHY

Why does the program exist? What problem does it solve for users?

e.g., "to help users track their fitness goals"

Functionality — WHAT & HOW

What does it do and how does it do it? The specific features and behaviors.

e.g., "allows users to log workouts, calculates totals, displays progress"

Quick Check

Mini Check

1. Which of these describes the PURPOSE of a program?

  • A The program allows users to enter their age and calculates their birth year
  • B The program helps elderly users remember important appointments
  • C The program uses a list to store user data
  • D The program has a procedure called checkAge()

2. Which of these describes the FUNCTIONALITY of a program?

  • A The program is designed to reduce food waste
  • B The program helps students study for tests
  • C The program displays a menu, accepts user input, and calculates a total price
  • D The program exists to make shopping easier
Section 2 — Official Requirements

Program Code Requirements

Look at page 2 of the student handout. What are the requirements for your program code?

Your program must include:

  • Input: from user, file, sensor, or network
    • Instructions here == program code.
  • Output: visual, audio, or text displayed to the user based on the input
  • List: stores and manages multiple values
  • Student-developed procedure: with a parameter
  • Algorithm: sequencing + selection + iteration
  • Call to your procedure: actually used in the program
Section 2 — Official Requirements

What Counts as "Student-Developed"?

❌ Does NOT count

  • Event handlers (onMousePress, onKeyPress…)
  • Built-in functions (print, len, range…)
  • Code you didn't write

✔ DOES count

  • Functions YOU wrote from scratch
  • Procedures with your own logic
  • Code that uses parameters meaningfully
Procedure Deep Dive

You Be the Judge

Navigate ↓ through this stack. Each example shows a procedure (and call). Does it meet the AP Create Task requirements?

Rubric Criteria

  • Procedure name
  • Parameter
  • Selection (if/elif/else)
  • Iteration (loop)
  • Argument and Call
Example 1 — Clicker Game

Procedure Definition

Python
def onMousePress(mouseX, mouseY):
    if cookie.hits(mouseX, mouseY):
        score = score + 100
    if score > 10000:
        win()

Note: No procedure call shown. Event handlers call this automatically

Example 1 — Clicker Game

Does This Meet the Criteria?

  • Procedure name?
  • Parameter?
  • Selection (if/elif/else)?
  • Iteration (loop)?
  • Argument and Call?
Example 1 — Clicker Game

Answer Key

  • Procedure name — onMousePress
  • Parameter — mouseX, mouseY
  • Selection — two if statements
  • Iteration — no loop
  • Argument and Call — event handler, not a student-written call

Would NOT earn full credit

Missing iteration and a student-written procedure call. Event handlers don't count.

Let's look at another example ↓

Example 2 — Personal Finance

Procedure + Call

Definition

Python
def checkFraud(bills):
    for bill in bills:
        if bill > 5000:
            print("Potential fraud: ",
                  bill)
        else:
            print("Normal transaction: ",
                  bill)

Call

Python
totalBills = [1000, 1100,
              11000, 800, 6200]

checkFraud(totalBills)
Example 2 — Personal Finance

Does This Meet the Criteria?

  • Procedure name
  • Parameter
  • Selection
  • Iteration
  • Argument and Call
Example 2 — Personal Finance

Answer Key

  • Procedure name — checkFraud
  • Parameter — bills
  • Selection — if/else
  • Iteration — for loop
  • Argument and Call — checkFraud(totalBills)

Would earn full credit ✔

All five criteria are met. The parameter is used, iteration and selection are present, and there is a clear student-written call with an argument.

Let's look at another example ↓

Example 3 — Magic 8 Ball

Procedure + Call

Definition

Python
def magic8Ball(question):
    if len(question) == 0:
        print("Invalid question.")
        askQuestion()
    else:
        timer = 3
        while timer > 0:
            print("Thinking...", timer)
            time.sleep(1)
            timer = timer - 1
        response = random.choice(responses)
        print("Magic 8 Ball says:", response)

Call

Python
def askQuestion():
    question = input(
        "Ask the Magic 8 Ball "
        "a question: "
    )
    magic8Ball(question)
Example 3 — Magic 8 Ball

Does This Meet the Criteria?

  • Procedure name
  • Parameter
  • Selection
  • Iteration
  • Argument and Call
Example 3 — Magic 8 Ball

Answer Key

  • Procedure name — magic8Ball
  • Parameter — question
  • Selection — if/else
  • Iteration — while loop
  • Argument and Call — magic8Ball(question) called from askQuestion()

Would earn full credit ✔

All five criteria are met. The parameter is used meaningfully, both selection and iteration are present, and there is a student-written call with an argument.

List Requirements

List Requirements

"Use of at least one list (or other collection type) to represent a collection of data that is stored and used to manage program complexity and help fulfill the program's purpose"
  • Your program shows where multiple elements are stored into a list
  • Your list makes the program easier to develop. Without it, you'd have to program differently (or couldn't at all). If a single variable would work, your list does NOT manage complexity.

Let's look at an example ↓

Example 1

Does This List Manage Complexity?

Python
if score > highScore[0]:
    highScore = [score]

print(highScore)
Example 1

Does This List Manage Complexity?

Poll: Does this list manage complexity? Yes / No

Example 1

Answer Key

No — does not manage complexity

A single variable — highScore = score — would work exactly the same way. Storing one value in a list doesn't require a list; it adds no real complexity management.

Let's look at another example ↓

Example 2

Does This List Manage Complexity?

Python
totalBills = [1000, 1100, 11000]

for bill in totalBills:
    if bill > 5000:
        print("Potential fraud: ", bill)
Example 2

Does This List Manage Complexity?

Poll: Does this list manage complexity? Yes / No

Example 2

Answer Key

Yes — manages complexity ✔

The for loop iterates over multiple bill values stored in the list. Without totalBills, you'd need a separate variable for each amount — the list makes the program meaningfully simpler to write and extend.

Key Idea

A list manages complexity when it lets you write
less code to handle more data.

Section 2 — Official Requirements

Video Requirements

Look at page 3 of the student handout. Which of the following should your video demonstrate?

Show the program receiving input from the user
Include voice narration explaining the code
Show at least one feature of the program working
Display the full program code on screen
Show output produced by the program
Include text captions explaining what is happening (allowed, not required)
Show the program responding to user interaction
Include your name, class period, or school
Demonstrate how the list works internally
Show the program running from start to finish (only 1 minute!)
Zoom in on the procedure code and explain it
Include background music (unless part of your program)
Show different inputs leading to different outputs
Demonstrate a loop running (not explicitly)
Include a title screen with your name
Show the program handling an if/decision (not explicitly)
Record your screen only (no camera needed)
Include debugging or error messages
Show at least one complete interaction cycle (input → processing → output)

Your video is NOT about explaining your code

Your video is about PROVING your program works

Section 2 — Official Requirements

The Personalized Project Reference

Flip to pages 4 and 5 of the student handout. You've seen this before when we have practiced creating a PPR for our projects. This is the PPR, just like we practiced.

What it contains:

  • Your student-developed procedure and a call to it
  • The section of code where data is added to your list and where it is used

On test day:

You'll receive a copy of your PPR and use it to answer 4 written-response questions. You won't know the questions ahead of time. You need to understand your code. Variables and function names can help remind you what your code does.

Section 2 — Official Requirements

PPR — Personalized Project Reference

Your key to remember what YOU wrote on test day

Must include:

  • Your student-developed procedure
  • A call to that procedure
  • Data being stored in your list
  • Data from your list being used

MUST NOT include:

  • Comments Immediate 0
Section 2 — Official Requirements

Academic Integrity = Your Score

Flip to page 6 of the student handouts. Look over plagiarism and the Acceptable Generative AI Use section.

If you submit work that is not your own → score of 0

This includes:

  • Code
  • Media
  • Explanations

If you can't explain it yourself, don't submit it.

Academic Integrity

Which of These Count as Plagiarism?

  • Copying code from a friend — Plagiarism?
  • Copying code from the internet — Plagiarism?
  • Using AI and pasting in code — Plagiarism?
  • Using starter code without citing it — Plagiarism?

Answer: All of these = plagiarism unless properly credited

Academic Integrity

AI Use: Allowed, But Dangerous

✔ Allowed

  • Helping you understand concepts
  • Debugging
  • Explaining errors

❌ NOT SAFE

  • Copy/paste code you don't understand
  • Submitting AI-written code as your own thinking

If you can't EXPLAIN it don't SUBMIT it.

Academic Integrity

How to Use AI Safely

Ask AI:

  • "Explain this"
  • "Why does this work?"
  • "Why am I getting this error?"

NOT:

  • "Write my program"
  • "Write a procedure that…"
Academic Integrity

Required Acknowledgements

If you use something you didn't create from scratch, say so in a comment:

Python
# Gemini helped write this function
# My partner wrote this procedure
# I worked with my partner to write this procedure
# This function came from a project we wrote in class
  • Starter code → comment it
  • Internet code → cite it
  • AI → say it was AI-assisted
  • Partner → say your partner wrote it
Academic Integrity

Collaboration Rules

You CAN:

  • Work with a partner on code

You CANNOT:

  • Work with anyone on your Video
  • Work with anyone on your PPR

The PPR must be 100% your own — your own procedure (that meets all requirements), your own list

Section 2 — Official Requirements

How Will My Project Be Scored?

Your project must be submitted BEFORE the deadline.
Video + Program Code + PPR each need to be submitted AS FINAL.
On test day you'll receive a copy of your PPR and have 1 hour to answer 4 questions.

1 pt Video — shows input, output, and functionality
1 pt Program Requirements — student-developed procedure, call, properly used list, selection, iteration
4 pts Written Response — 1 point per question (4 questions on test day)

These 6 points represent 30% of your AP Test score

Section 3 — How to Not Lose Points

Common Mistakes

Parameter not used inside the procedure body
No loop OR no if statement
List doesn't actually manage complexity
Procedure is a built-in function (not student-created)
Comments in the PPR
Missing input or output in video

💡 How do you show keyboard input in your video?

Partner Activity

Fix the Code

This program is close… but it would NOT earn full credit on the Create Task.

Python
scores = [10, 20, 30, 40]

def checkScores(threshold):
    for s in scores:
        print("Score:", s)

checkScores(25)
  • 1. Identify what's missing
  • 2. Suggest how to fix it
Partner Activity

What I Noticed

Issue 1: Parameter not used

threshold exists as a parameter but does nothing inside the procedure body

Issue 2: No selection

No if statement → missing selection requirement

Issue 3: Weak use of list

List is used, but not meaningfully — just printing every item without the parameter

Partner Activity

My Fix

Python
scores = [10, 20, 30, 40]

def checkScores(threshold):
    for s in scores:
        if s >= threshold:
            print("High score:", s)
        else:
            print("Score:", s)

checkScores(25)

Now threshold is used, selection is present, and the list drives meaningful logic

Partner Activity

Fix the Code

This program is close… but it would NOT earn full credit on the Create Task.

Python
def onMousePress(x, y):
    if x > 200:
        print("Right side clicked")
    else:
        print("Left side clicked")
  • 1. Identify what's missing
  • 2. Suggest how to fix it
Partner Activity

What I Noticed

Issue 1: Event handler — doesn't count

onMousePress is called automatically by the system, not by student-written code. It cannot be the student-developed procedure.

Issue 2: No iteration

No loop anywhere in the code → missing iteration requirement

Issue 3: No list

No list is used → missing the list requirement

Partner Activity

My Fix

Python
clicks = []

def recordClick(x, y):
    clicks.append(x)
    for pos in clicks:
        if pos > 200:
            print("Right:", pos)
        else:
            print("Left:", pos)

def onMousePress(x, y):
    recordClick(x, y)

✔ Student-developed procedure

recordClick is written by the student and called with an argument

✔ Iteration + Selection

for loop and if/else both present inside the procedure

✔ List manages complexity

clicks accumulates values — a single variable couldn't do the same job

Student Handout Activity

Preparing for the Performance Task

Flip to pages 8–9 of the student handout.

Step 1 — Highlight

Read through the preparation steps. Highlight the steps you have already completed throughout this school year.

Step 2 — Reflect in your Survival Guide

In your survival guide, write a sentence about where you are in the preparation process and what still needs to be done before you start.

Student Handout Activity

The Rules

Flip to pages 10–11 of the student handout.

Step 1 — Complete the statements

In your survival guide, fill in the must, may not, and may statements using the language from pages 10–11.

Step 2 — Your 3 most important rules

From everything on pages 10–11, choose the 3 rules you think matter most and write them in your survival guide. Be ready to explain your choices.

Section 4 — The 9-Hour Game Plan

Reality Check

You have 9 hours. That's it.

  • 9 hours is just over one full work day for a professional programmer — how much do you think a professional gets done in a day?

9 hours can also be a lot of time.

  • Our projects have normally been 1 week (5 hours).
  • You MUST to work the entire time
  • No phones
  • No games
  • If you have extra time, add features
Section 4 — The 9-Hour Game Plan

Suggested Timeline

Day 1 (1 hr) Idea + plan — pick your program, fill out the planning sheet
Day 2 (1 hr) Start coding — set up the structure, get input/output working
Days 3–7 (5 hrs) Finish core featuresTestBuild procedure + listTestStretch GoalsTest
Days 8–9 (2 hrs) Final tests and fixesRecord videoBuild PPR
Section 4 — The 9-Hour Game Plan

Final Thought

"Simple programs that meet all requirements score better than complex programs that miss one."
Your Turn

Planning Sheet

Program idea
Input
List
Procedure
Output

Stretch Goals: (If you "finish" before time)

Your Turn

Algorithm Planning

What does your procedure do?

Name it. What parameter does it take? What does it return or change?

What loops does your program need?

Think about what you repeat. Are you going through a list? Waiting for user input?

What decisions (if/else) does your program make?

What changes based on user input or data? What are the different paths through your program?