5.7. Quiz App Written Response Questions Practice (NEW)¶
Time Estimate: 180 minutes
5.7.1. Introduction and Goals¶
|
The extended Quiz App which you completed in the last lesson contains all of the programming requirements to satisfy the College Board's Create Performance Task scoring guidelines. Objective: In this lesson, you will practice creating a PPR (Personalized Project Reference) and using it to answer sample Create Performance Task Written Response Questions. |
5.7.2. Learning Activities¶
Personalized Project Reference (PPR)
For the Create Performance Task, you will need to submit a Personalized Project Reference (PPR) that includes screenshots of your code.
- Open your Quiz App project with the searching extension from the last lesson in MIT App Inventor.
- Make a copy of the PPR template.
- Follow the directions to paste in screenshots of your code. In App Inventor, you can right click on blocks to "Download Blocks as Image" or use a snipping tool to capture screenshots.
Written Response Questions
On the end-of-course AP CSP exam, you will respond to 4 prompts related to the code in your Personalized Project Reference. You will have access to your Personalized Project Reference while responding to these prompts. Students should be prepared to respond to prompts about their program that assess any of the following learning objectives.
- Written Response 1: Program Design, Function, and Purpose
- CRD-2.A: Describe the purpose of a computing innovation.
- CRD-2.B: Explain how a program or code segment functions.
- CRD-2.C: Identify input(s) to a program.
- CRD-2.D: Identify output(s) produced by a program.
- CRD-2.E: Develop a program using a development process.
- CRD-2.F: Design a program and its user interface.
- CRD-2.G: Describe the purpose of a code segment or program by writing documentation.
- Written Response 2(a): Algorithm Development
- CRD-2.B: Explain how a program or code segment functions.
- AAP-2.E.b: Evaluate expressions that use relational operators.
- AAP-2.F.b: Evaluate expressions that use logic operators.
- AAP-2.H.b: Determine the result of conditional statements.
- AAP-2.J: Express an algorithm that uses iteration without using a programming language.
- AAP-2.K.b: Determine the result or side effect of iteration statements.
- AAP-2.L: Compare multiple algorithms to determine if they yield the same side effect or result.
- AAP-2.M.a: Create algorithms.
- AAP-2.M.b: Combine and modify existing algorithms.
- Written Response 2(b): Errors and Testing
- CRD-2.I.a: Identify the error.
- CRD-2.I.b: Correct the error.
- CRD-2.J: Identify inputs and corresponding expected outputs or behaviors that can be used to check the correctness of an algorithm or program.
- Written Response 2(c): Data and Procedural Abstraction
- AAP-1.D.a: Develop data abstraction using lists to store multiple elements.
- AAP-1.D.b: Explain how the use of data abstraction manages complexity in program code.
- AAP-2.O.a: Write iteration statements to traverse a list.
- AAP-2.O.b: Determine the result of an algorithm that includes list traversals.
- AAP-3.B: Explain how the use of procedural abstraction manages complexity in a program.
Practice for the written response questions with the following prompts which you can answer in a copy of this practice written responses document.
- Written Response 1: Program Design, Function, and Purpose
- Describe the overall purpose of the program
- Describe the input(s) and output(s) of the program demonstrated in the video
- (From 2024 Exam) Identify the expected group of users of your program. Explain how your program addresses at least one concern or interest of the users you identified.
- Written Response 2(a) Algorithm Development:
- (From 2024 exam) Consider the first iteration statement included in the Procedure section of your Personalized Project Reference. Describe what is being accomplished by the code in the body of the iteration statement.
- Consider the code segment in part (i) of the List section of your Personalized Project Reference that shows your list. Describe what the data contained in this list represents in your program.
- Consider the code segment in part (ii) of the List section of your Personalized Project Reference that shows how your list is being used. Explain in detailed steps how this code segment works. Your explanation must be detailed enough for someone else to write the code segment.
- Written Response 2(b): Errors and Testing:
- (From 2024 exam) Consider the procedure identified in part (i) of the Procedure section of your Personalized Project Reference. Write two calls to your procedure that each cause a different code segment in the procedure to execute. Describe the expected behavior of each call. If it is not possible for two calls to your procedure to cause different code segments to execute, explain why this is the case for your procedure.
- (From 2024 Exam): Consider the procedure and procedure call identified in parts (i) and (ii) of the Procedure section of your Personalized Project Reference. Describe the outcome that your procedure call is intended to produce. Write a new procedure call with at least one different argument value that will produce the same outcome, if possible, and explain why this procedure call produces the same outcome. If it is not possible to write a new procedure call that produces the same outcome, explain why this is not possible.
- Written Response 2(c): Data and Procedural Abstraction:
- (From 2024 Exam) Consider the procedure identified in part (i) of the Procedure section of your Personalized Project Reference. Identify the parameter(s) used in this procedure. Explain how your identified parameter(s) use abstraction to manage complexity in your program.
- (From 2024 Exam) Suppose another programmer provides you with a procedure called checkValidity(value) that returns true if a value passed as an argument is considered valid by the other programmer and returns false otherwise. Using the list identified in the List section of your Personalized Project Reference, explain in detailed steps an algorithm that uses checkValidity to check whether all elements in your list are considered valid by the other programmer. Your explanation must be detailed enough for someone else to write the program code for the algorithm that uses checkValidity.
(Hint: write pseudocode that steps through your list of questions in the Quiz App and calls the checkValidity(value) function with each question in the list. Words you should use: loop, if, index, checkValidity with the correct argument. Don’t worry about what checkValidity does, just use it; we can imagine that it checks that the question has correct spelling and punctuation.)
5.7.3. Summary¶
In this lesson, you learned more about the College Board's requirements for the Create Performance task and practiced answering the prompts.
5.7.4. Self-Check¶
Vocabulary
Here is a table of some of the technical terms you've reviewed in this lesson. Hover over the terms to review the definitions.
Input
Output Program Algorithm |
Comment
Sequence Selection Iteration |
Procedural Abstraction
Parameter Arguments List |
Check Your Understanding
- It could be written without a list, but we would need 9 global variables each with the number in them and then a random number generator to call these numbers. Now we have a built in system to generate a random sequence. It puts all the data in one location that can be accessed with an index number.
- This response does not provide enough detail regarding how the list manages complexity in the program.
- The ButtonItems list manages the complexity of my program since it gives a set of numbers the text-to-speech can say that can be sorted or ordered randomly, and easily changed if I wanted to expand the app to include a language other than French. Without this list the program would need to individually call the numbers and set them in a random order manually, which would be more difficult than using a list where the values can be easily called by the program and ordered randomly by selecting a random list item; likewise, I’d have to manually go into the procedures that start the game and other rounds without a list and adjust the values individually to expand the program.
- Correct! This response identifies a list that is being used to manage complexity in the program and also explains how the list manages complexity in the program code by explaining how it would be written without using the list.
- This list manages complexity in the program because without the lists there would not be a purpose or way for the app to function. Without this list and how it is looped through for each item so the global speakListAsText variable will give the user random numbers, an if, then, else, statement will have to be repeated for each of the numbers so the speakListAsText variable to work.
- This response does not clearly explain how the selected list manages complexity. Saying “there would not be a purpose or way for the app to function” is inaccurate.
- This list is very important for the development of the app because it is the main structure. This list represents the input that appears on the spreen when the buttons are pressed which allows the user to know what buttons that they have already pressed. It also is the main items that are used for the game for the speech and the names of the buttons. The code would have to be written differently because you would have to list out all of the items in the button list each time you would normally put the procedure.
- This response does not clearly explain how the selected list manages complexity.
Q-1: Which of the following responses would probably earn a point for a question how a list would manage complexity in a Language Learning app for Written Response 2(c): Data and Procedural Abstraction?
5.7.5. Reflection: For Your Portfolio¶
Include your PPR and your answers from the Practice Written Responses from above in your portfolio.