Skip to main content

Written Response 2: Algorithms, errors and testing, and abstraction

Backup network paths

  • Units 3 and 4
  • 3 points
  • About 45 minutes

Three prompts about the program's code. (a) Algorithm development: explain how a loop or condition works, such as how many times a loop runs or what makes it stop. (b) Errors and testing: describe a call, input or change that causes an error or wrong behavior and explain why. (c) Data and procedural abstraction: explain how the list or procedure manages complexity, or explain, step by step, an algorithm that uses the list. On the exam: Question 2 of 2 (3 points: parts (a), (b) and (c) are worth 1 point each). 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

Answer parts (a), (b) and (c) about the sample program below. On the exam these prompts are about your own Create task program and your Personalized Project Reference; here, the code segments below play that role. Refer to the specific code in every answer, and write in complete sentences.

About the program

A school network has two paths to the internet. Each path is a list of the devices that data passes through, in order. When a device fails, the monitoring system sends its exact name as an alert; the program reads alerts into the list down until it receives "end".

pathWorks(path, down) returns true when none of the devices in path is in down, and false otherwise. The program then reports which path the school can use.

Example: an alert for "Router 1" followed by "end" displays Connected on backup path.

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

Procedure: pathWorks

Pseudocode
PROCEDURE pathWorks(path, down)
{
    FOR EACH device IN path
    {
        FOR EACH broken IN down
        {
            IF(device = broken)
            {
                RETURN(false)
            }
        }
    }
    RETURN(true)
}

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

Lists: the two paths and the devices that are down

Pseudocode
primary ← ["Switch A", "Router 1", "Firewall", "ISP 1"]
backup ← ["Switch B", "Router 2", "Firewall", "ISP 2"]
down ← []
alert ← INPUT()
REPEAT UNTIL(alert = "end")
{
    APPEND(down, alert)
    alert ← INPUT()
}

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

Calling the procedure and using the lists

Pseudocode
IF(pathWorks(primary, down))
{
    DISPLAY("Connected on primary path")
}
ELSE
{
    IF(pathWorks(backup, down))
    {
        DISPLAY("Connected on backup path")
    }
    ELSE
    {
        DISPLAY("No connection")
    }
}

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

Suggested time: 45 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

Consider the first iteration statement in pathWorks (FOR EACH device IN path). Explain the ways this iteration statement can stop. Then identify how many times its body executes for the call pathWorks(primary, ["Router 1"]).

0 / 2,500 characters

Part (b)

1 point

Write a call to pathWorks with specific argument(s) that the procedure accepts but that cause it to behave incorrectly. Describe the incorrect behavior, and explain why it happens as a result of your call. If no call with accepted arguments can make pathWorks behave incorrectly, explain why.

0 / 2,500 characters

Part (c)

1 point

The network team wants a list of every device that appears in both primary and backup, because if one of those devices fails, neither path works. Using these two lists, explain in detailed steps an algorithm that builds this new list, and identify which device(s) it would contain for this program. Your explanation must be detailed enough for someone else to write the program code.

0 / 2,500 characters

Checking scoring…

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