Skip to main content

Written Response 1: Program design, function and purpose

Bus countdown: input and output

  • Units 1 and 3
  • 1 point
  • About 15 minutes

One prompt about the program as a whole: for example, who the program is for and how its design meets that user's needs, what its inputs and outputs are, or what documentation would help another programmer understand a code segment. On the exam: Question 1 of 2 (1 point). Section II has 2 written-response questions (4 prompts) in 60 minutes, taken in Bluebook at the end-of-course exam; no calculator. On the real exam the questions are about your own Create performance task program, and you can see your Personalized Project Reference (screenshots of your procedure and list code). The Create task is 30% of the AP score, scored on 6 one-point rows: video, program requirements, WR1, WR2(a), WR2(b) and WR2(c). On this site you answer the same kinds of prompts about a short sample program given with the question.

The question and its sources

This written-response prompt is about the sample program below. On the exam you answer this kind of prompt about your own Create task program; here, answer about this program and refer to its code. Write in complete sentences.

About the program

This program tells a rider at a school bus stop how long until the next bus. The bus times are stored in arrivals as minutes after midnight: 425 is 7:05 a.m., 445 is 7:25, 465 is 7:45, 490 is 8:10 and 520 is 8:40.

The user enters the current time in the same form, for example 450 for 7:30 a.m. The procedure nextBus returns the number of minutes until the next bus, or -1 if no more buses are coming.

Source: Sample program written for this practice question (hypothetical)

The procedure

Pseudocode
PROCEDURE nextBus(arrivals, now)
{
    FOR EACH t IN arrivals
    {
        IF(t ≥ now)
        {
            RETURN(t - now)
        }
    }
    RETURN(-1)
}

Source: Sample program written for this practice question (hypothetical)

The main program

Pseudocode
arrivals ← [425, 445, 465, 490, 520]
wait ← nextBus(arrivals, INPUT())
IF(wait = -1)
{
    DISPLAY("No more buses today")
}
ELSE
{
    DISPLAY(wait)
    DISPLAY("minutes")
}

Source: Sample program written for this practice question (hypothetical)

Suggested time: 15 minutes

Your answers are saved in this browser as you type.

Something wrong with this question?

What's wrong?

Please don't include personal details.

Part (a)

1 point

Describe one specific input a user could give this program and the exact output the program produces for it. Explain how the program code uses that input to produce that output.

0 / 2,500 characters

Checking scoring…

Scoring it yourself shows you the rubric, examples and a model answer. Try writing your answer first.