0% found this document useful (0 votes)
3 views13 pages

Performance Task Booklet

The document outlines submission requirements for an AP Computer Science Principles performance task, detailing components for program code, video demonstration, and personalized project reference. It specifies the necessary elements for each component, including code segments, data abstraction, and algorithm implementation, along with guidelines for video content and format. Additionally, it includes scoring criteria and decision rules for evaluating the submissions based on various aspects of program functionality and complexity management.

Uploaded by

jefete1914
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views13 pages

Performance Task Booklet

The document outlines submission requirements for an AP Computer Science Principles performance task, detailing components for program code, video demonstration, and personalized project reference. It specifies the necessary elements for each component, including code segments, data abstraction, and algorithm implementation, along with guidelines for video content and format. Additionally, it includes scoring criteria and decision rules for evaluating the submissions based on various aspects of program functionality and complexity management.

Uploaded by

jefete1914
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

Submission Requirements

COMPONENT A: PROGRAM CODE (CREATED INDEPENDENTLY OR COLLABORATIVELY)


Submit one PDF file that contains all of your program code (including
comments). Include comments or acknowledgments for any part of the DEFINITION:
submitted program code that has been written by someone other than you
List
and/or your collaborative partner(s).
A list is an ordered
IMPORTANT:
sequence of elements.
If the programming environment allows you to include comments, this is the
The use of lists allows
preferred way to acknowledge and give credit to another author. However, if the
multiple related items
programming environment does not allow you to include comments, you can add
to be represented using
them in a document editor when you capture your program code for submission.
a single variable. Lists
may be referred to by
In your program, you must include student-developed program code that
different names, such as
contains the following:
arrays, depending on the
□ Instructions for input from one of the following: programming language.
◆ the user (including user actions that trigger events)
DEFINITION:
◆ a device
Collection Type
◆ an online data stream
A collection type is a
◆ a file type that aggregates

□ Use of at least one list (or other collection type) to represent a collection of elements in a single
structure. Some
data that is stored and used to manage program complexity and help fulfill
examples include lists,
the program’s purpose databases, and sets.
IMPORTANT:
The data abstraction must make the program easier to develop (alternatives would IMPORTANT:
be more complex) or easier to maintain (future changes to the size of the list would With text-based program
otherwise require significant modifications to the program code). code, you can use the
print command to save
□ At least one procedure that contributes to the program’s intended purpose, your program code as
where you have defined: a PDF file, or you can
◆ the procedure’s name copy and paste your
◆ the return type (if necessary) code to a text document
and then convert it into
◆ one or more parameters
a PDF file. With block-
IMPORTANT: based program code,
Implementation of built-in or existing procedures or language structures, such as you can create screen
event handlers or main methods, are not considered student-developed. captures that include
only your program code,
□ An algorithm that includes sequencing, selection, and iteration that is in the paste these images into
body of the selected procedure a document, and then
convert that document
□ Calls to your student-developed procedure to a PDF. Screen
□ Instructions for output (tactile, audible, visual, or textual) based on input and captures should not be
program functionality blurry, and text should be
at least 10 pt font size.

AP Computer Science Principles Student Handouts V.1 | 2


Return to Table of Contents
© 2023 College Board
COMPONENT B: VIDEO (CREATED INDEPENDENTLY) Submit one video file that
demonstrates the running of your program as described below. Collaboration
is not allowed during the development of your video.
Your video must demonstrate your program running, including:
□ Input to your program
□ At least one aspect of the functionality of your program
□ Output produced by your program
Your video may NOT contain:
□ Any distinguishing information about yourself
□ Voice narration (though text captions are encouraged)
Your video must be:
□ Either .webm, .mp4, .wmv, .avi, or .mov format
□ No more than 1 minute in length
□ No more than 30MB in file size

AP Computer Science Principles Student Handouts V.1 | 3


Return to Table of Contents
© 2023 College Board
COMPONENT C: PERSONALIZED PROJECT REFERENCE (CREATED
INDEPENDENTLY) To assist in responding to the written response prompts on
exam day, submit required portions of your code by capturing and pasting
program code segments you developed during the administration of this task.
Screen captures should not be blurry, and text should be at least 10-point
font size. Your code segments should not include any comments. These code
segments will be made available to you on exam day only if this component is
submitted as final in the AP Digital Portfolio by the deadline.
Procedure: Capture and paste two program code segments you developed
during the administration of this task that contain a student-developed
procedure that implements an algorithm used in your program and a call to
that procedure.
IMPORTANT:
Built-in or existing procedures and language structures, such as event handlers
and main methods, are not considered student-developed.

i. The first program code segment must be a student-developed


procedure that:

□ Defines the procedure’s name and return type (if necessary)


□ Contains and uses one or more parameters that have an effect on
the functionality of the procedure

□ Implements an algorithm that includes sequencing, selection, and


iteration

ii. The second program code segment must show where your
student-developed procedure is being called in your program.

AP Computer Science Principles Student Handouts V.1 | 4


Return to Table of Contents
© 2023 College Board
List: Capture and paste two program code segments you developed during DEFINITION:
the administration of this task that contain a list (or other collection type) List
being used to manage complexity in your program. A list is an ordered
i. The first program code segment must show how data have been sequence of elements.
stored in the list. The use of lists allows
multiple related items
to be represented using
a single variable. Lists
may be referred to by
different names, such as
arrays, depending on the
programming language.

DEFINITION:
ii. The second program code segment must show the data in the
same list being used, such as creating new data from the existing Collection Type
data or accessing multiple elements in the list, as part of fulfilling A collection type is a type
the program’s purpose. that aggregates elements
in a single structure. Some
examples include lists,
databases, and sets.

IMPORTANT:
The data abstraction
manages complexity by
making the program easier
to develop (alternatives
would be more complex) or
easier to maintain (future
changes to the size of the
list would otherwise require
significant modifications to
the program code).

AP Computer Science Principles Student Handouts V.1 | 5


Return to Table of Contents
© 2023 College Board
2023

AP Computer Science
®

Principles
Scoring Guidelines

© 2023 College Board. College Board, Advanced Placement, AP, AP Central, and the acorn logo are registered
trademarks of College Board. Visit College Board on the web: collegeboard.org.
AP Central is the official online home for the AP Program: apcentral.collegeboard.org.
AP® Computer Science Principles 2023 Scoring Guidelines

Create Performance Task 6 points

General Scoring Notes


• Responses should be evaluated solely on the rationale provided.
• Responses must demonstrate all criteria, including those within bulleted lists, in each row to earn the point for that row.
• Terms and phrases defined in the terminology list are italicized when they first appear in the scoring criteria.

Reporting
Scoring Criteria Decision Rules
Category
Row 1 The video demonstrates the running of the program Consider ONLY the video and written response 3a when scoring this point.
Program Purpose including:
and Function • input Do NOT award a point if the following is true:
• program functionality • The video does not show a demonstration of the program running (screenshots or storyboards are
(0–1 points)
• output not acceptable and would not be credited).
AND • The described purpose is actually the functionality of the program. The purpose must address the
The written response: problem being solved or creative interest being pursued through the program. The function is the
behavior of a program during execution and is often described by how a user interacts with it.
• describes the overall purpose of the program.
• describes what functionality of the program is
demonstrated in the video.
• describes the input and output of the program
demonstrated in the video.
Row 2 The written response: Consider ONLY written response 3b when scoring this point.
Data Abstraction • includes two program code segments:
- one that shows how data has been stored in Requirements for program code segments:
(0–1 points) this list (or other collection type). • The written response must include two clearly distinguishable program code segments, but these
- one that shows the data in this same list being segments may be disjointed code segments or two parts of a contiguous code segment.
used as part of fulfilling the program’s purpose. • If the written response includes more than two code segments, use the first two code segments to
• identifies the name of the variable representing the determine whether or not the point is earned.
list being used in this response.
• describes what the data contained in this list is Do NOT award a point if any one or more of the following is true:
representing in the program. • The list is a one-element list.
• The use of the list does not assist in fulfilling the program’s purpose.

© 2023 College Board


AP® Computer Science Principles 2023 Scoring Guidelines

Reporting
Scoring Criteria Decision Rules
Category
Row 3 The written response: Consider ONLY written response 3b when scoring this point.
Managing • includes a program code segment that shows a list
Complexity being used to manage complexity in the program. Responses that do not earn the point in row 2 may still earn the point in this row.
• explains how the named, selected list manages
(0–1 points)
complexity in the program code by explaining why Do NOT award a point if any one or more of the following is true:
the program code could not be written, or how it
• The code segments containing the lists are not separately included in the written response section
would be written differently, without using this list.
(not included at all, or the entire program is selected without explicitly identifying the code
segments containing the list).
• The written response does not name the selected list (or other collection type).
• The use of the list is irrelevant or not used in the program.
• The explanation does not apply to the selected list.
• The explanation of how the list manages complexity is implausible, inaccurate, or inconsistent with
the program.
• The solution without the list is implausible, inaccurate, or inconsistent with the program.
• The use of the list does not result in a program that is easier to develop, meaning alternatives
presented are equally complex or potentially easier.
• The use of the list does not result in a program that is easier to maintain, meaning that future
changes to the size of the list would cause significant modifications to the code.
Row 4 The written response: Consider ONLY written response 3c when scoring this point.
Procedural • includes two program code segments:
Abstraction Requirements for program code segments:
- one showing a student-developed procedure
(0–1 points)
with at least one parameter that has an effect • The procedure must be student developed but could be developed collaboratively with a partner.
on the functionality of the procedure. • If multiple procedures are included and none are specifically called out in the written
- one showing where the student-developed response, use the first procedure listed to determine whether the point is earned.
procedure is being called.
• The parameter(s) used in the procedure must be explicit. Explicit parameters are defined in
• describes what the identified procedure does and the header of the procedure.
how it contributes to the overall functionality of the
program.
Do NOT award a point if any one or more of the following is true:
• The code segment consisting of the procedure is not included in the written responses section.
• The procedure is a built-in or existing procedure or language structure, such as an event handler or
main method, where the student only implements the body of the procedure rather than defining
the name, return type (if applicable), and parameters.
• The written response describes what the procedure does independently without relating it to the
overall function of the program.

© 2023 College Board


AP® Computer Science Principles 2023 Scoring Guidelines

Reporting
Scoring Criteria Decision Rules
Category
Row 5 The written response: Consider ONLY written response 3c when scoring this point.
Algorithm • includes a program code segment of a student-
Implementation developed algorithm that includes: Responses that do not earn the point in row 4 may still earn the point in this row.
- sequencing
(0–1 points)
- selection Requirements for program code segments:
- iteration • The algorithm being described can utilize existing language functionality or library calls.
• explains in detailed steps how the identified • An algorithm that contains selection and iteration also contains sequencing.
algorithm works in enough detail that someone else • An algorithm containing sequencing, selection, and iteration that is not contained in a procedure
could recreate it. can earn this point.
• Use the first code segment, as well as any included code for procedures called within this first code
segment, to determine whether the point is earned.
• If this code segment calls other student-developed procedures, the procedures called from
within the identified procedure can be considered when evaluating whether the elements of
sequencing, selection, and iteration are present, as long as the code for the called procedures
is included.

Do NOT award a point if any one or more of the following is true:


• The response only describes what the selected algorithm does without explaining how it does it.
• The description of the algorithm does not match the included program code.
• The code segment consisting of the selected algorithm is not included in the written response.
• The algorithm is not explicitly identified (i.e., the entire program is selected as an algorithm
without explicitly identifying the code segment containing the algorithm).
• The use of either the selection or the iteration is trivial and does not affect the outcome of the
program.

© 2023 College Board


AP® Computer Science Principles 2023 Scoring Guidelines

Reporting
Scoring Criteria Decision Rules
Category
Row 6 The written response: Consider ONLY the written response for 3d and the selected procedure identified in written
Testing • describes two calls to the selected procedure response 3c.
identified in written response 3c. Each call must
(0–1 points) pass a different argument(s) that causes a different Responses that do not earn the point in row 4 may still earn the point in this row.
segment of code in the algorithm to execute.
• describes the condition(s) being tested by each call
Requirements for program code segments:
to the procedure.
• identifies the result of each call. • Consider implicit or explicit parameters used by the selected procedure when determining
whether this point is earned. Implicit parameters are those that are assigned in anticipation of
a call to the procedure. For example, an implicit parameter can be set through interaction with
a graphical user interface.
• A condition that uses the procedure’s parameter(s) to execute two different code segments
can earn this point.
• A condition that uses the procedure’s parameter(s) to execute or bypass a code segment can
earn this point.

Do NOT award a point if any one or more of the following is true:


• A procedure is not identified in written response 3c.
• The written response for 3d does not apply to the procedure in 3c.
• The two calls cause the same exact sequence of code in the algorithm to execute even if the
result is different.
• The two calls are to two different procedures.
• The response describes conditions being tested that are implausible, inaccurate, or inconsistent
with the program.
• The identified results of either call are implausible, inaccurate, or inconsistent with the program.

© 2023 College Board


AP® Computer Science Principles 2023 Scoring Guidelines

AP Computer Science Principles Create Performance Task Terminology (in order of appearance in the scoring guidelines)

Input: Program input is data that are sent to a computer for processing by a program. Input can come in a variety of forms, such as tactile (through touch), audible, visual, or text. An
event is associated with an action and supplies input data to a program.

Program functionality: The behavior of a program during execution, often described by how a user interacts with it.

Output: Program output is any data that are sent from a program to a device. Program output can come in a variety of forms, such as tactile, audible, visual, movement, or text.

Purpose: The problem being solved or creative interest being pursued through the program.

Program code segment: A code segment refers to a collection of program statements that are part of a program. For text-based, the collection of program statements should be
continuous and within the same procedure. For block-based, the collection of program statements should be contained in the same starter block or what is referred to as a “Hat” block.

List: A list is an ordered sequence of elements. The use of lists allows multiple related items to be represented using a single variable. Lists are referred to by different terms, such as
arrays or arraylists, depending on the programming language.

Data has been stored in this list: Input into the list can be through an initialization or through some computation on other variables or list elements.

Collection type: Aggregates elements in a single structure. Some examples include: databases, hash tables, dictionaries, sets, or any other type that aggregates elements in a
single structure.

List being used: Using a list means the program is creating new data from existing data or accessing multiple elements in the list.

Student-developed procedure / algorithm: Program code that is student developed has been written (individually or collaboratively) by the student who submitted the response. Calls to
existing program code or libraries can be included but are not considered student developed. Event handlers are built-in abstractions in some languages and will therefore not be
considered student-developed. In some block-based programming languages, event handlers begin with “when”.

Procedure: A procedure is a named group of programming instructions that may have parameters and return values. Procedures are referred to by different names, such as method,
function, or constructor, depending on the programming language.

Parameter: A parameter is an input variable of a procedure. Explicit parameters are defined in the procedure header. Implicit parameters are those that are assigned in anticipation of a call
to the procedure. For example, an implicit parameter can be set through interaction with a graphical user interface.

Algorithm: An algorithm is a finite set of instructions that accomplish a specific task. Every algorithm can be constructed using combinations of sequencing, selection, and iteration.

Sequencing: The application of each step of an algorithm in the order in which the code statements are given.

Selection: Selection determines which parts of an algorithm are executed based on a condition being true or false. The use of try / exception statements is a form of selection statements.

Iteration: Iteration is a repetitive portion of an algorithm. Iteration repeats until a given condition is met or for a specified number of times. The use of recursion is a form of iteration.

Argument(s): The value(s) of the parameter(s) when a procedure is called.

© 2023 College Board


3. WRITTEN RESPONSES Create Sample A 1 of 3

3 a.
3.a.i.
The purpose of the program is to entertain and to educate students by deepening knowledge of projectiles through an
accurate physics simulation.

3.a.ii.
A realistic projectile simulation is displayed based on user inputs changing the initial angle and velocity. The projectile
shoots across the screen, and after it goes off the screen, dots trace in with density showing speed. The entire
simulation works to increase knowledge of projectile motion.

3.a.iii.
The user inputs the up and down arrow to increase or decrease the initial angle by 15 degrees each press respectively.
The user can also input the right and left arrow to increase or decrease the starting velocity respectively. When the angle
and velocity are where desired the user can input the enter button to run the simulation. Upon pressing enter, an output of
a black ball animates across the screen with accurate motion; once the ball is off the screen, the program outputs dotted
lines with density of lines showing speed. The user can then input the space bar to clear the screen and reset.

3 b.
3.b.i.

3.b.ii.

3.b.iii.
positions

3.b.iv.
It represents a list of tuples with each tuple representing the position the projectile has been at each frame. All together
the list represents every position the object has been at this run.

3.b.v.
The program utilizes the list by iterating over the list and drawing a dot at the position tuple provided by every fourth index.
This is produced by only drawing a dot when the index modulo 4 is zero. The program only draws the dots once the
object is off the screen, so a list is used to store positions so they can be accessed once the object is off screen.
Without a list it would not be able to iterate over the list drawing a dot at every fourth element in the list once the object is
off the screen. Instead, without a list, the program would have to somehow create a new variable for each tuple at each
frame and create new variables in real time while figuring out how to wait and draw a dot at each of these; this would be
extremely complex and messy if possible.
3 c.
Create Sample A 2 of 3
3.c.i.

3.c.ii.

3.c.iii.
The identified procedure clears the previous screen by covering it with white. It then displays the angle and velocity before
firing. While firing, the procedure draws the circle at each position determined by the update function producing an
animated ball movement. Once the ball is off the screen, the procedure also draws a dot at the position the ball was at
every fourth frame. Since it draws at every fourth frame the closer the dots are the slower it is moving and the farther they
are the faster. Displaying the angle and velocity add to the functionality of the program because it allows the user to
knowingly control them and see how they affect the objects movement. Displaying the object adds to the functionality by
showing the realistic movement of the projectile in a parabolic motion and how changing velocity and angle transform the
parabola. Displaying the dots after firing adds to the functionality by highlighting the realistic parabolic motion and
showing the speed based on how close the dots are together which furthers the understanding of projectile motion.

3.c.iv.
The algorithm first fills the screen white to clear the screen. Next, the function defines a font variable to use when drawing
the velocity and angle. Then, the function coverts the angle in radians represented by variable ang to degrees and rounds
to the nearest whole degree to account for small errors. The procedure then turns that new degree and the velocity
variable into strings so they can be printed to the screen later. After that, the procedure makes two new variables for the
font image for the degree and velocity string. Next, the function draws both font images to the screen. After drawing the
starting velocity and angle, the function draws a black circle at the position tuple parameter location. After drawing the
object, the procedure checks to see if index 1 of the position tuple parameter is greater than 750. This determines if the
ball is close to going of screen. If yes, the procedure iterates over the positions list and draws a dot at every fourth
element in the list which are position tuples. If not greater than 750 it does nothing. Finally, the function flips the screen.
3 d.
Create Sample A 3 of 3
3.d.i.
First call:
render(positions, pos_tuple) when pos_tuple = (50,50)

Second call:
render(positions, pos_tuple) when pos_tuple = (1000, 760)

3 d.ii.
Condition(s) tested by first call:
The first call tests if the pos_tuple index 1 is greater than 750 to check if the object is close to going off bottom of screen.

Condition(s) tested by second call:


The second call tests if pos_tuple index 1 is greater than 750 to check if the object is close to going off bottom of screen.

3.d.iii.
Results of the first call:
Since the pos_index 1 is not greater than 750, the program skips the code under the conditional and does not draw the
dots.

Results of the second call:


Since the pos_idex 1 is greater than 750, the program executes the code under the conditional and iterates over the
programs list drawing dots at every fourth position tuple contained in the list.

You might also like