The Create Performance Task (guided)
The Create Performance Task
- The Create Performance Task is a small program you design and build yourself.
- For the real AP exam you submit it (your code, a video, and written answers) through the AP Digital Portfolio.
- Important: the real task is graded by AP, not by this site. This lesson only helps you practice and structure it.
Create Performance Task
- Create Performance Taskとは、自分で設計して作成する小さなプログラムです。
- 本番のAP試験では、AP Digital Portfolioを通じて提出します(自身のコード、動画、および記述式回答)。
- 重要: 本番の課題はAPによって採点され、このサイトではありません。このレッスンは単に練習と構成方法をサポートするものです。
What your program must include
- A list (or other collection) that stores many values together.
- A procedure (a function) that takes at least one parameter, and that you call in your code.
- An algorithm with selection (
if) inside iteration (a loop). - Some input and some output so the program does something useful.
プログラムに含まれるべき要素
- 複数の値を一緒に格納するためのリスト(または他のコレクション)。
- 少なくとも1つのパラメータを受け取り、コード内で呼び出すことのできる手続き(関数)。
- 反復(ループ)内に選択(
if)を含むアルゴリズム。 - 有用な処理を行うための、ある程度の入力と出力。
Pick a small idea
- Keep it simple: you only need to show the skills above, not build a huge app.
- Good ideas: grade a list of scores, total a shopping list, sort students into teams, count words.
- Choose data you understand, so you can explain it later.
小さなアイデアを選ぶ
- 単純に保つ:上記のスキルを示すだけで、巨大なアプリを構築する必要はありません。
- 適切なアイデア:スコアのリストを評価する、ショッピングリストの合計を出す、生徒をチームに割り当てる、単語数を数える。
- 後で説明しやすいよう、自分が理解しているデータを選択してください。
A starter scaffold
- The program below has all the required parts. Read the comments to find each one.
- It uses a fixed list so it runs the same every time (no live typing needed here).
- Run it, then change the data and rules to make it your own.
スターター・スケールド
- 以下のプログラムには必要な全部が含まれています。各部分を見つけるためにコメントを読んでください。
- 固定されたリストを使用するため、毎回同じように動作します(ここではリアルタイムでの入力は不要です)。
- 実行した後、データとルールを変更して、自分だけのものにしてください。
# 1) A LIST that stores many values
scores = [72, 95, 58, 88, 40, 67]
# 2) A PROCEDURE with a PARAMETER, that returns a result
def grade_for(score):
# selection inside the procedure: choose a letter for one score
if score >= 90:
return "A"
elif score >= 70:
return "B"
elif score >= 50:
return "C"
else:
return "F"
# 3) An ALGORITHM: SELECTION (if) INSIDE ITERATION (for loop)
pass_count = 0
for s in scores: # iteration: visit every score
letter = grade_for(s) # call the procedure with a parameter
if letter != "F": # selection: is this a pass?
pass_count = pass_count + 1
print(f"score {s} -> grade {letter}") # output
# More output: a summary
print(f"{pass_count} out of {len(scores)} passed")
Make it your own
- Change the list to your own data (and try a different length).
- Change the procedure: new rule, new parameter name, or return something else.
- Change the algorithm: count something new, or keep only items that pass the
if. - Add input if you like, for example
input("Enter a name: ").
自分だけのものにアレンジする
- リストを自分のデータに変更し(異なる長さも試す)、
- 手続きを変更する:新しいルール、新しいパラメータ名、または別の返り値。
- アルゴリズムを変更する:何かを数えたり、
ifを通過したアイテムのみを残したりする。 - 必要に応じて入力を追加する(例:
input("Enter a name: "))。
Written-response prompts
- Answer these about your own program (this is the kind of writing the real task asks for):
- Purpose: What does your program do, and why is it useful?
- List: What does your list store, and how does using one list (instead of many separate variables) make the program simpler to manage?
記述式回答の質問
- これらは自身のプログラムについて答える(本番の課題で求められるような書き方です):
- 目的: あなたのプログラムは何をしており、なぜ有用なのか?
- リスト: リストに何を格納しており、多数の変数を別々に使うのではなく、1つのリストを使うことでプログラムを管理しやすくしているか?
More written-response prompts
- Procedure & parameter: Name your procedure. What is its parameter, and what does the procedure do with it? What does it return?
- Algorithm: Describe the algorithm inside your loop in your own words. Point to where it uses selection (
if) and where it uses iteration (the loop), and say why both are needed.
その他有記述式回答の質問
- 手続き & パラメータ: 手続きの名前を挙げよ。そのパラメータは何であり、手続きはそれに対して何を行うか。また、何-returnするか?
- アルゴリズム: ループ内のアルゴリズムを自身の手で説明せよ。選択(
if)と反復(ループ)がどこで使われているかを指し示し、両方がなぜ必要かを述べよ。
Rubric checklist
- Tick each item once your program has it:
採点基準チェックリスト
- プログラムに各要素があるごとにチェックを入れる:
[ ] A list (or collection) is used in the program
[ ] A procedure is defined WITH at least one parameter
[ ] That procedure is CALLED somewhere in the program
[ ] The procedure does real work (not empty)
[ ] An algorithm uses selection (if) INSIDE iteration (a loop)
[ ] The program has input and/or output
[ ] I can explain every part in my own words
You can do this
- Start small, run it often, and fix one thing at a time.
- When every box above is ticked, you have the structure the Create Task needs.
- Remember: practice here first, then submit the real task through the AP Digital Portfolio.
あなたならできる
- 小さく始め、頻繁に実行し、一度に1つずつ修正する。
- 上記のすべてのボックスにチェックが入れば、Create Taskに必要な構造が揃ったことになる。
- 念のため:まずはここで練習し、その後AP Digital Portfolioを通じて本番の課題を提出する。
Common mistakes
- Plan the program's purpose first, then build in small tested pieces.
- Be ready to explain what each part of your code does.
よくあるミス
- まずプログラムの目的を計画し、その後テスト済みの小さな部品を組み立てていく。
- コードの各部分が何をしているかを説明できるよう準備しておく。
Now you try
- A warm-up: assemble the required parts once, using the scaffold's example data.
- Press Check answer to confirm every required part is there.
あなたも試してみよう
- ウォームアップ:スケールドの例データを使って、必要な部分を一度組み立てる。
- 回答確認ボタンを押して、必要な全部があることを確認する。
A warm-up that uses the scaffold's example data. (1) Keep the list scores. (2) Define grade_for(score) (one parameter) returning "A"/"B"/"C"/"F" by the rules above (>= 90, >= 70, >= 50, else "F"). (3) With selection (if) inside a loop over scores, count how many pass (grade is not "F") into pass_count. (4) print a summary line.
Click Run to see the output here. · 実行ボタンをクリックして出力を確認してください。
The Create task also needs an algorithm you built yourself. Write top_score(scores) that returns the highest value using a loop — start with the first score, then compare each one. Do not use the built-in max. Then print the result.
Click Run to see the output here. · 実行ボタンをクリックして出力を確認してください。