5 The Create Performance Task

5 Steps to a 5: AP Computer Science Principles 2024 - Sway J.S. 2023

5 The Create Performance Task
STEP 4 Review the Knowledge You Need to Score High

IN THIS CHAPTER

Summary: For the Create performance task, students design and create a program, create a video showing it running, and answer prompts about the program. Make sure you are writing code and responding to the prompts for the correct year. You will have at least 12 hours of dedicated in-class time to work on the Create performance task. It must be submitted to the College Board via the digital portfolio by the published deadline, at 11:59 p.m. Eastern time.

Image

Key Ideas

Image The Create performance task requires you to create a computer program, record a video showing the program running, and provide a written response to questions.

Image The Create performance task counts for 30% of your total AP score.

Image There is not a designated programming language to use. You can choose the one you prefer. The programming language may be block code or text based.

Image You will have a minimum of 12 hours of in-class time to complete the Create performance task.

Image Do not make your programming project overly complicated! You can still earn all of the points with a simpler program that meets all the specified requirements.

Create Performance Task: The Basics

As you probably remember from Chapter 1, the AP Computer Science Principles exam score is comprised of two parts:

1. The two-hour multiple-choice exam of 70 questions makes up 70% of the score.

2. The Create performance task includes a program, video, and written responses to prompts and counts for 30% of the final score.

The artifacts created for the performance task must be uploaded to the College Board Digital Portfolio portal by 11:59 p.m. Eastern time on the due date. Students not attending a traditional school should contact the AP coordinator at their assigned school or at the school district level at the beginning of the school year for information on how to register for the exam and submit their performance task project. Students who are in yearlong or first-semester only AP courses must be registered with the College Board by November 15, and students in AP courses that only meet second semester must register by March 15.

Image

The College Board’s document “AP Computer Science Principles Student Handouts” provides more information about the requirements for completing the Create performance task. This PDF document was referenced in Chapter 4. If you haven’t already printed or bookmarked this document, here is the link again:

https://apcentral.collegeboard.org/pdf/ap-csp-student-task-directions.pdf

The College Board site also has examples of Create projects submitted by students along with their grading and an explanation of why each project received the scores it did (see the “Commentary” column). These projects can be viewed at the bottom of this web page:

https://apcentral.collegeboard.org/courses/ap-computer-science-principles/exam

Image

Be sure to look at the examples of the Create performance task that the College Board has provided online (see box above). Taking a careful look at these projects will be one of the most helpful things you can do to prepare yourself for the performance task. For each example, the Scoring Commentary document provides the score the project received and an explanation of how it was evaluated.

The Create Performance Task

The Create performance task requires you to demonstrate both your programming knowledge and your creativity. You get to design and develop a program on a topic of your choice. You also get to select the programming language to use. No other AP exam even comes close to allowing you this much choice in what you want to do!

Students are permitted to collaborate with another student on this task, but it is not required. If you do work with a partner, each student must complete some of the programming sections individually. Both students must clearly identify sections of code created individually, created by their partner, and those that were worked on together. You and your partner must complete your video and written responses independently.

Twelve hours of class time must be provided in class to ensure that all students have the same standard amount of time to create and document their project. You will have to turn in a video, a written response to question prompts, and the program code to the College Board using the Digital Portfolio portal.

Teachers are limited in the type of questions they can answer regarding individual projects, especially after the official in-class time to complete the task has begun. But don’t hesitate to ask a question you have for the Create performance task. Your teacher will decide whether the question can be answered wholly, in part, or not at all.

You may ask your teacher about the task and submission requirements or for help identifying a topic, resolving technical issues (such as connecting to a network), or saving files.

You can also ask for help if a partner is not completing their work and for help with the correct usage of code from an application programming interface (API).

Image

Be sure your programming topic for the Create performance task is broad enough to be able to meet the criteria but not too broad that you cannot finish it in time.

Program Code

The program you develop needs to include several features. These are listed in a checklist in the student handout from the College Board. Use the checklist to be sure you are meeting all of the needed criteria. These are highlighted below.

Comments

You would have learned about the benefits of using comments for readability as one of the learning objectives for the course. In addition to commenting your code to explain functionality as needed, you should also use comments to indicate which section of code you created, and if you worked with a partner, which section your partner created. Since you must cite code you use that was created by anyone else, including using libraries or APIs, comments are the recommended way to do this. You can put the comment in a header at the top of your program and/or where you use the code or call it within your program. Do not use names. Use general wording, such as “my partner and I.” For example, you could have comments like the following:

I independently created this code to . . .

My partner created this code that does . . .

This is a call to a module from the library . . . to do . . .

Some programming languages do not provide a way to create comments. If you happen to use one of these, you can cite code not created by you when you prepare a document of your code to turn in to the College Board. You have to submit your code to the College Board Digital Portfolio in PDF format, so you can copy or screenshot a portion of the code and paste it in a word processing document such as Microsoft Word or Google Docs. Then add a sentence in the document for citation purposes. Keep documenting the rest of your code and cite as needed. Remember to save as a PDF to turn it in. The Digital Portfolio site will only accept the file for the program code in PDF format.

Input

Your program must include input from an external source and handle the input in the code. This portion of the code must be student created. You cannot use code from another source for this in your program. The options include:

• User-provided input. This could be from data the user types on a keyboard in response to a prompt from your program. For example, if you had a guessing game, your program would prompt the user for their current guess.

The input could also be from an event the user triggers. This could be a tap on a button, a swipe on the screen, or a shake of the device, among other types of events for event-driven programming.

• Input from a device. This could be from a sensor that feeds data to your program. Types of sensors include distance, motion, light, and sound. There are many other types of sensors that could be used.

Another example of a device providing input is a game controller or joystick sending commands for player movement.

• Online data stream. You may immediately think of music or movies for data streaming possibilities. Those are definitely often used. Other data streams could include sensors that take constant readings. For example, apps such as step counters continually measure and record the data. Mouse clicks in a game or website are also data stream examples.

• A file. Input to a program can come from a file that was created by a different program or a person typing and saving data. Examples could include files of e-mail addresses, passwords, temperature readings, a book manuscript, grades, or items and quantities sold or returned. The possibilities are endless!

Don’t forget to actually utilize the user input in your program! If you collect it, but then do nothing further with it, you will not earn credit it for it when your project is scored. We’ll go over the rubric later in this chapter so you can see exactly how your work will be scored.

A list or other data collection type

Your program must include some type of data collection where you can store more than one value in a single data collection variable. You have been taught about lists for this course, and a list is a perfect example of a data collection! You can store more than one value in a single list variable. Other programming languages may use alternate terminology such as array. Some languages include other data collection types, such as dictionaries. These are acceptable to use as well.

As with the user input, be sure you use your list in the program. Don’t just create one since you know you need one. If you do not use it further in your program, you will not receive credit for it during scoring.

The list is an example of data abstraction since it is much easier to manage data values of the same type in one variable name, rather than individual variables for each data element!

A procedure

You must define a procedure in your program, and the procedure must have one or more parameters. Procedures and parameters are part of the course content and are included in the Big Idea 3 chapter on algorithms and programming. Remember that procedures should be used when you have code that is needed in more than one place in your program. You can call the procedure to execute the code in it as many times as needed in your program with different values passed to it.

You must have a call to the procedure in your program, and you will need at least two calls to it for section 3d in the written response. This means you should not create a procedure that is only called once or not at all in your program. The AP readers are to check for this before awarding the point for the procedure.

Remember: values are passed to procedures using arguments when the procedure is called. The parameters in the procedure take the values from the arguments and use them in the procedure. The parameters are local to the procedure and cannot be used outside of the procedure’s scope. Your procedure must use the values sent to it for further processing within the procedure. Some form of output must be created based on the input sent to the procedure. The following are some examples of output:

• Text displayed with information or a calculation result

• An image, web page, or video

• A sound file

• A tactile type output such as a vibration

Your procedure must be complex enough to include the following:

• Selection—An IF statement

• Iteration—Any type of loop is acceptable. Make sure your loop executes more than once. Students have submitted code with a loop that would only execute once by design. This will not meet the requirements in the AP rubric to earn the point!

• Sequencing—If you have selection and iteration, you also have sequencing.

The procedure you create does not have to use the RETURN statement to send data back to the calling location, but it is acceptable if it does.

While you may have built-in procedures or event handlers within your program, these will not count as a student-created procedure. You must write your own!

Video Requirements Image

You must submit a video of the program running. It must include the following features and information:

• You must show how input is entered into your program.

• At least one feature that uses the input just entered must be shown working, even if it is not working correctly. Try to show one that is key to the functioning of the program.

• The output the program produced from the input provided must also be shown.

The use of captions in your video is encouraged but not required. You may NOT narrate your video with your voice or anyone else’s voice. Your name, image, or bitmoji should not be visible in your video.

The video can be no more than 60 seconds long, must be no larger than 30 MB, and must be in one of the accepted file formats. If your video is too large, there are many tools available to compress it to the 30 MB or less size requirement. Check your video after compression to be sure that it is still viewable! Sometimes files become corrupt or are too blurry to view.

Check the College Board’s document “AP Computer Science Principles Student Handouts” for the most current list of acceptable file formats. As of this writing, these are .mp4, .wmv, .avi, or .mov. (If you haven’t already printed or bookmarked this PDF document, see the box earlier in this chapter for information on accessing it.)

PITFALL TO AVOID: Even if you work with a partner, you each must create your own video.

Rubric Readiness

To earn this point, you must have a video that shows input to your program, program functionality, and output. You cannot show screenshots or other images of your program or just the code in the video. You must show the program running. You must also have a written response in section 3a. See the Rubric Readiness checklist under 3a below.

Written Response Requirements

You have a maximum of 750 words total to answer the prompts. Be sure to clearly label each prompt, and be direct about answering the question asked. That is not many words to get your ideas across, so ensure your writing is succinct and clear. Make sure you are working from prompts labeled 3a, 3b, 3c, and 3d. Those are the new prompts. If you are using prompts labeled 2a—2d, then you have the old prompts! Do not use the old ones, as you will not earn many points after all of your hard work. The new prompts are very different! To help avoid this, the College Board will have you upload your written responses to a template, but you don’t want to find out you used the wrong prompts after you’ve finished!

Image

Your program code is not included in the 750-word-count limit. Remember that you must work independently on your written responses to the following prompts. Collaboration is not allowed on these!

Image

Be sure to leave plenty of time to complete the written response. You can write an amazing program, but if you do not write adequately about it to answer all the questions, you will not receive many points for it. The scoring focuses mostly on your written responses, not on how cool your program is.

Section 3a Image

There are three parts for the first prompt. You have to answer each part to be able to earn the credit, and partial credit is not given. You have roughly 150 words to answer this prompt in total.

3.a.i. Describe the overall purpose of the program.

This is what the program is supposed to do. For example:

The purpose of my program is to play a guessing game of numbers between 1—100.

You don’t need many words for this section. Be specific and use the word “purpose.” It makes it very clear when it is being scored.

3.a.ii. Describe the functionality you presented in your video.

This is where you describe what the program is doing in your video. Even if you used captions in your video, you must complete this response. Expand on your captions to provide more detail or provide the details if you did not caption.

• Describe what the program code in the video does.

For example: The program shows instructions for how to play the game. It then starts the game and asks the user to try and guess a number from 1 to 100. The player types in a number. The program then compares the guess to the secret number to see if it is correct.

3.a.iii. Describe the input and output of the section of code you showed in the video.

• Describe the input and how it is sent to the section of code you showed.

For example: The user types in a number that is their current guess using a real or virtual keyboard.

• Describe the output produced from the input provided after the code completes.

For example: If the guess is correct, a “Congratulations!” screen is displayed. If the guess is greater than the number, then the words “too high” are displayed on the screen. If the guess is less than the actual number, then the words “too low” are displayed. The number of remaining guesses is also displayed on the screen along with an encouraging message to keep trying if the player did not guess correctly.

Rubric Readiness

To earn this point, you must have a video showing the following:

• Input to your program

• The program functioning using that input

• Output from the input shown

AND your written response to section 3.a describing the following:

• The purpose of your program (what it’s supposed to do)

• The functionality shown in the video

• The input and output as shown in the video

Remember, you cannot show screenshots or other images of your program or only the code in the video. You must show the program running. This should be an easy point to earn. Use the video to show off your hard work and creativity! Just make sure you also meet the written criteria listed above.

Section 3b List data type

This section is all about the list or other data collection type you used in your program. You have to include parts of your actual code and answer the prompts. You should plan to use about 200 words for all of this section. The program code does not count in the total word count. Just as with section 3a, you must answer all five sections of this prompt to earn the points. You do not get partial credit—it’s all or nothing.

3.b.i. Paste the code segment showing data stored in the list (or other data collection type).

If you declare the list and load it with values, you can show that statement. If the list is initially empty, paste the line of code where you define it and also include the code where you add elements to the list.

3.b.ii. Paste the code that shows the data in the list being used.

This will vary depending on the purpose of your overall program. You can show elements of the list being used, such as using a loop to traverse the list and checking list elements for some purpose. You can show new data being created based on the list values. There are many possibilities that are acceptable. However, do not include your entire program and expect the person scoring your project to find the list being used. You will not earn the point if you do this.

3.b.iii. Name the list you are using in this section.

Some programs use multiple lists, so make sure you name the list you included in your snippets of code in 3.b.i and 3.b.ii. All you need to write is the list name.

3.b.iv. Describe what the data in the list represent in your program.

Be sure to describe the list data you are referencing in the above sections of this prompt! For example: This list holds the various tools, potions, and spells that the player’s character gains during the game. These are added to the list when earned and removed when the player uses them in the game to stay alive or advance.

3.b.v. Explain how the list manages complexity in your program.

This is the section where you’ll use most of your 200 words. Lists are examples of data abstractions that you learned about during the course. Without a list, your program would need multiple variables to hold the different values that are stored in your list. Keeping up with multiple variables is more complex, introduces more room for a variety of errors, is less readable, and is harder to maintain.

Rubric Readiness

Section 3b can earn two of the six points on the rubric. This may be a little confusing, as only the first four parts of section 3b are considered to earn the first point. Section 3.b.v is considered, along with a closer look at the code showing the list being used, for another point.

First point for this section:

The following items must be in section 3b of the written response to earn this point.

• Check to be sure you have code that shows how elements were stored in the list.

• Include a separate section of code showing the same list being used in the program. Do not include your entire program.

• Provide the name of the list.

• Describe what the data in the list represent for your program.

Second point for this section:

To earn this point, the code segment provided in 3.b.ii must show the list managing complexity in your program. The first point considers how the list is being used in the code to achieve the program’s purpose. This point looks at the list and how it handles complexity. Students must also write about how the list is used in their program to manage complexity, including how the code could either not be written without a list or how it would have to be written differently without using a list. Be sure to reference the list you highlighted.

Section 3c Procedure

This section requires you to paste or screenshot two sections of code related to a procedure that you wrote. Students often lose points here by using a built-in procedure, such as random(), or an event handler. Be sure to use a procedure that you wrote or you and your partner wrote together. You then write about the procedure in 200 words or less for the combined writing. Program code does not count toward the 200-word count.

3.c.i. Student written procedure code segment

Copy and paste or screenshot a procedure that you or you and your partner created. The procedure must have at least one parameter and implement an algorithm with sequencing, selection, and iteration. You learned about these features throughout the course and should have included them in your procedure. Now write about your knowledge!

3.c.ii. Procedure call code segment

This section of code has to show that your procedure was used in your program by the call to invoke it. Paste just the call to the procedure, including the argument(s).

3.c.iii. Describe what the procedure does

Describe the functionality of the procedure. This is how the procedure works. Then write about how the procedure impacts the overall program functionality. For example: This procedure takes in two numbers that represent scores for each player and determines which number is higher. The higher number means that player won the game. Without this procedure, the game would end without indicating who won and without giving positive reinforcement for the users to want to play again.

3.c.iv. Algorithm

This is where you describe in detail how the procedure’s algorithm works. Remember that an algorithm is a set of steps to complete a task. Be sure to include how it shows the following:

• Selection with an IF around the / (condition)

• Iteration with any type of loop

• Sequencing—The steps running in a particular order for the needed functionality. If you have selection and iteration, then you have sequencing. Just don’t forget to describe it.

You have to write in sufficient detail so that someone else could recreate the algorithm from your words. Therefore, don’t just say you have an IF statement. Describe what the condition tests and what happens if it is true. If you also have an ELSE IF or ELSE, be sure to describe those as well. The same holds true for the iteration description. Don’t simply say you have a loop. Describe what code is repeating with each iteration and when the loop stops. With sequencing, describe how the steps have to be in a particular order for the algorithm to work correctly.

Rubric Readiness

Section 3c can earn two of the six points on the rubric. The first three parts of section 3c are considered to earn the first point. Section 3.c.iv is considered for an additional point along with a closer look at the code for the procedure that you included.

First point for this section:

The following items must be in section 3c of the written response to earn this point.

• Check to be sure you have code that shows a procedure that you or you and your partner developed. The procedure must have at least one parameter. Do not use a built-in procedure or an event handler. Those will not be considered student-developed and you will not earn the point.

• Include a separate section of code showing the procedure you referenced being called. Do not include your entire program.

• Describe what the procedure does AND how it works within the overall program. If you only write about one of these, you will not earn the point.

Second point for this section:

• To earn this point, the code for the procedure is reviewed to ensure it includes sequencing, selection, and iteration.

• You must provide a detailed description of what the algorithm is AND how it works in your procedure. It has to be detailed enough that someone else could reconstruct it based on your description. Don’t rewrite the code—just describe it.

Image

PITFALL TO AVOID: The algorithm chosen can use an API or library call you imported into your program, but cannot be only the API code. It also must be longer than one instruction (e.g., DISPLAY or PRINT would not be acceptable).

Image

PITFALL TO AVOID: Be sure to write about what the algorithm does and how it does it.

Section 3d

This section is where you show two calls to the same procedure you’ve been writing about in section 3c, and each call must cause a different section of the code to be executed. You have up to 200 words for all of the sections in 3d combined. Program code is not included in your word count.

3.d.i. Two procedure calls

You will document two calls to your procedure using two different arguments or sets of arguments if you have more than one parameter. The arguments in each call must cause a different section of code in the procedure to run. For example, if your procedure tests if a number is positive, have one call to it use a positive number as the argument and the second call should use a negative number.

First call: numPositive(50)

Second call: numPositive(—4)

3.d.ii. Condition being tested

Here you need to document the condition being tested in each call to the procedure using the values in section 3.d.i.

First call: The code tests to see if a number is positive using a selection statement. It checks if the value passed to the procedure is greater than or equal to 0. Since 50 is greater than 0, the condition is true.

Second call: The code tests to see if the number is greater than or equal to 0. It is not, so the condition evaluates to be false.

3.d.iii. Results of the call

Describe what happens in the code with each call. Be sure you used an example that has at least two branches, one for each case you used.

First call: Since the argument, 50, is positive, the count of positive numbers is increased by one. The number is then added to a calculation of the sum of the positive values entered by the user.

Second call: The argument, —4, is not positive, so an error message is displayed on the screen telling the user that the number was invalid and to enter a new number that is a positive integer.

Rubric Readiness

Section 3d can earn one point. All three sections of the written response must be included to earn the point AND the procedure you included in section 3c is used here. Be sure you write about the same procedure in your response!

• Provide two calls to the procedure with two different values for the argument(s). Each argument needs to branch to a different result of a condition in the code.

• Describe the condition(s) being tested by the different arguments.

• Describe the result of each call. The results should be different because the arguments you use are supposed to execute different sections of your code.

Program Code Image

This section includes your entire code in PDF format. Be sure to acknowledge who wrote sections of code that you did not, whether it was your partner or through use of an imported library. You can show comments in your code that indicate this or write the statement in a document before saving it in PDF format. Be sure your code is legible!

Image

Keeping programming notes to document design decisions and programming structures as you implement algorithms and incorporate abstraction will help in writing the written response for this section.

You are allowed to work with a partner on this project, even though you both must also independently create sections of code and you each must work independently to create your own video and written responses. Remember that you cannot submit a project you have worked on in class as a practice Create project.

Always refer to the College Board’s document “AP Computer Science Principles Student Handouts” for specific details on the code and written response expectations. If you haven’t already bookmarked or printed this document, here is the link again:

https://apcentral.collegeboard.org/pdf/ap-csp-student-task-directions.pdf

Submitting Your Performance Task to the College Board

To submit your Create performance task, you must first be registered for the AP exam by November 15 if you are in a yearlong or first-semester-only course or March 15 for courses that only meet second semester. Once you register with the College Board, you can then join your class with a code your teacher will provide.

If you took an AP class in a prior year, you will already have an AP account. Be sure to use this same account. If you cannot remember your username or password, you can click the “Forgot username or password” option, and a message will be sent to the e-mail address you registered with.

Once you have logged in, you will have information to confirm or enter for the first time. You may then request to join the class your teacher has set up. You must be registered in an approved AP Computer Science Principles course to be able to access the digital portfolio. Your teacher will then approve your request and your account will be ready to accept the performance task files.

Independent study students must contact the AP coordinator at their assigned school or their school district. Students must be registered in an approved class to be able to access the digital portfolio website. This is where the Create performance task is uploaded. If you do not have a local school to contact, please call the College Board at 1-877-274-6474.

You can then access the Digital Portfolio site from your College Board “MyAP” account or using the link:

https://digitalportfolio.collegeboard.org/

The performance task is broken down into separate parts you must upload individually.

Create Performance Task

This performance task has three components:

• Individual Video—labeled IV

• Individual Written Response—labeled IWR

• Program Code—labeled PC

Until you load a submission, the components are labelled with a gray square □.

After you submit a section, the shape will show an orange triangle, which means draft mode. Δ You may still upload new versions that will overlay the existing version in draft mode. When you are ready for the final submission of your project components, you’ll be prompted to confirm that each file is in the correct section, your name is not included in any of the documents or the file name, and that you did not plagiarize. After you submit as final, you cannot overlay a new version anymore and a green check mark shows Image. However, your instructor may return a file to you after final submission. The teacher has to indicate one of the valid reasons for returning the final submission, such as a corrupt file or the wrong file. No files can be returned after the submission date passes.

PITFALL TO AVOID: You cannot have a file with the same name in multiple sections of the Create components. The portfolio portal will not allow you to upload a file with the same name as one you already submitted in a different section. You can use the same file name to overwrite a file in the same section.

Image

Be sure to check that you plan to take the multiple-choice exam while you are in the digital portfolio.

Image

To avoid delay in the event the site slows down or becomes unavailable due to high demand, plan to finish and submit your project before the due date. This date is set by the College Board each year and can be found on their website.

If you cannot complete all aspects of the Create performance task before the submission deadline, you may still submit the sections you have completed to the College Board portal. They will be graded. You will only receive points for the sections that were submitted.

Image Rapid Review

The Create performance task requires you to create a computer program, record a video showing the program running, and provide a written response to questions.

You will have a minimum of 12 hours of in-class time to complete the Create performance task.

The Create performance task must be uploaded to the College Board Digital Portfolio site by 11:59 p.m. Eastern time on the due date set by the College Board each year.

Review the examples and rubrics on the College Board site. Grade your own project based on the rubric and modify as needed before your final submission to the College Board.

Be aware of the maximum word counts for each section of your written responses for the performance task.

The Create performance task counts for 30% of your total AP score.

Do not make your programming project overly complicated! You can still earn all of the points with a simpler program that meets all the specified requirements.