Written Response 1:
Program Design, Function, and Purpose
Students should be prepared to respond to prompts about their program that assess any of the following learning objectives:
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
Question 1
2025 Set 1 Question #1:
Identify an example output of your program. Explain how this output shows an aspect of your program’s functionality.
2025 Set 2 Question #1:
Identify an unexpected or invalid input that a user could provide to your program. Describe the behavior of your program after it receives this input. If it is not possible for your program to accept an unexpected or invalid input, explain why this is the case.
2024 Set 1 Question #1:
Programs accept input to achieve their intended functionality. Describe at least one valid input to your program and what your program does with that input.
2024 Set 2 Question #1:
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.
Common Themes Across the Questions
These prompts consistently assess whether students can:
Explain the purpose of their program
Describe how the program functions
Identify and explain inputs and outputs
Describe the intended users
Explain how the interface/design supports the user
Clearly communicate functionality in words
Must Know
Students should be able to:
Clearly explain:
what the program does
who it is for
why it exists
Identify:
valid inputs
invalid inputs
outputs
Explain how inputs affect outputs
Describe program functionality in complete sentences
Use specific examples from their own app
5 Practice Questions
Identify one valid input to your program and explain how the program processes that input to produce an output.
Describe one output produced by your program and explain how it demonstrates your program’s functionality.
Identify the intended users of your program. Explain how your program addresses one specific need or interest of those users.
Describe an unexpected or invalid input a user could enter into your program. Explain how your program responds to this input.
Explain the overall purpose of your program and describe one feature of the user interface that helps users interact with the program.
Written Response 2(a):
Algorithm Development
Students should be prepared to respond to prompts about their program that assess any of the following learning objectives:
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.
Question 2A
2025 Set 1 Question #2A:
Consider the first selection statement included in the Procedure section of your Personalized Project Reference. Identify the Boolean expression in this selection statement. Identify a specific value or set of values that will cause this expression to evaluate to true. Explain why the specified value(s) will cause the expression to evaluate to true.
2025 Set 2 Question #2A:
Consider the first selection statement included in the Procedure section of your Personalized Project Reference. Identify the Boolean expression in this selection statement. Identify a specific value or set of values that will cause this expression to evaluate to false. Explain why the specified value(s) will cause the expression to evaluate to false.
2024 Set 1 Question #2A:
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.
2024 Set 2 Question #2A:
Consider the first conditional statement included in the Procedure section of your Personalized Project Reference. Describe your conditional statement, including its Boolean expression. Describe what the procedure does in general when the Boolean expression of this conditional statement evaluates to false.
Common Themes Across the Questions
These prompts consistently assess whether students can:
Explain conditionals and iteration
Evaluate Boolean expressions
Describe algorithms in plain English
Trace code execution
Explain how algorithms behave under different conditions
Analyze control flow
Must Know
Students should be able to:
Identify Boolean expressions
Explain when conditions are true/false
Describe what loops accomplish
Explain algorithms step-by-step
Trace code execution
Describe iteration in words
Predict outcomes of conditionals and loops
5 Practice Questions
Identify the Boolean expression used in a conditional statement in your procedure. Describe a value that would cause the expression to evaluate to true.
Consider a loop in your program. Describe what the loop accomplishes and explain how the loop changes during each iteration.
Explain what happens when a specific conditional statement in your program evaluates to false.
Describe an algorithm used in your program without writing code. Your explanation should be detailed enough for another programmer to recreate the algorithm.
Suppose a programmer changes the condition of a loop in your program. Describe how this modification could change the behavior of the algorithm.
Written Response 2(b):
Errors and Testing
Students should be prepared to respond to prompts about their program that assess any of the following learning objectives:
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.
Question 2B
2025 Set 1 Question #2B:
Consider the procedure included in part (i) of the Procedure section of your Personalized Project Reference. Suppose another programmer modifies the code within this procedure. Describe a modification the other programmer could make that would cause this procedure to have a logic error. Describe how the behavior of this procedure would change because of the error.
2025 Set 2 Question #2B:
Consider the code segment in part (ii) of the List section of your Personalized Project Reference. Suppose another programmer modifies this code segment. Describe a modification the other programmer could make to this code segment that would result in a logic error. Explain why this modification would result in a logic error.
2024 Set 1 Question #2B:
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.
2024 Set 2 Question #2B:
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.
Common Themes Across the Questions
These prompts consistently assess whether students can:
Identify logic errors
Predict how errors affect behavior
Test procedures using inputs
Explain expected outputs
Compare outcomes of different procedure calls
Must Know
Students should be able to:
Identify possible logic errors
Explain how errors affect outputs
Describe test cases
Predict expected behavior
Explain procedure calls and arguments
Understand that different inputs can produce different outcomes
5 Practice Questions
Describe one possible logic error that could occur in your procedure and explain how the error would affect the program’s behavior.
Identify a test case that could be used to verify that your procedure works correctly. Include the expected output or behavior.
Write two different calls to your procedure that produce different outcomes. Explain the expected behavior of each call.
Suppose another programmer changes one condition in your code. Explain how this modification could result in incorrect program behavior.
Describe a situation where two different inputs could produce the same output in your procedure.
Written Response 2(c):
Data and Procedural Abstraction
Students should be prepared to respond to prompts about their program that assess any of the following learning objectives:
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.
Question 2C
2025 Set 1 Question #2C:
Consider the list included in the List section of your Personalized Project Reference. Suppose another programmer adds several new elements to the end of the list. Explain how the code segment in part (ii) of the List section would need to be modified to account for the additional elements. If no changes to the code segment are necessary, explain why this is the case for your program.
2025 Set 2 Question #2C:
Consider the procedure identified in part (i) of the Procedure section of your Personalized Project Reference. Describe the functionality provided by this procedure. Explain how implementing this functionality as a procedure results in your program being easier to maintain than if the functionality were not implemented as a procedure.
2024 Set 1 Question #2C:
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.
2024 Set 2 Question #2C:
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.
Common Themes Across the Questions
These prompts consistently assess whether students can:
Explain how lists manage complexity
Explain how procedures manage complexity
Describe list traversal
Explain abstraction
Describe scalable solutions
Explain why procedures and lists improve programs
Must Know
Students should be able to:
Explain why lists are useful
Explain how lists reduce complexity
Describe list traversal algorithms
Explain why procedures improve maintainability
Explain how parameters increase flexibility
Describe abstraction in plain English
5 Practice Questions
Explain how your list manages complexity in your program. Describe what would be more difficult if the list did not exist.
Describe an algorithm that traverses your list to check whether all elements meet a specific condition.
Suppose additional elements are added to your list. Explain whether your existing code would need to change and why.
Explain how implementing functionality as a procedure makes your program easier to maintain or update.
Identify the parameter(s) used in your procedure and explain how they help generalize the procedure for different situations.