Build algorithms for finding min/max, counting, and summing
Trace an algorithm to verify correctness for given inputs
Identify which patterns combine to solve a new problem
Recognize algorithm errors on edge-case inputs
📈
Exam Impact: Algorithm development is tested through Create Task rubric criteria and BI3 MCQ design questions.
💡 Why This Matters
Every app on your phone runs algorithms. Sorting your feed, finding the nearest driver, flagging spam -- all built from small composable building blocks. This lesson builds those blocks.
Four Core Patterns
The AP exam tests these patterns repeatedly. Recognize and write each one instantly.
Accumulator: total=0; for each item: total+=item
Counter: count=0; for each item: if condition: count+=1
Min/Max: Initialize with first element; loop, compare, update
Linear Search: Loop through list; return index when target found
nums = [4, 9, 2, 7, 5]
minimum = nums[0]
for n in nums:
if n < minimum:
minimum = n
print(minimum) # 2
nums <- [4, 9, 2, 7, 5]
minimum <- nums[1]
FOR EACH n IN nums
{
IF n < minimum
{ minimum <- n }
}
DISPLAY(minimum)
Combining Patterns
Complex problems decompose into simpler patterns. Average = accumulate sum + count elements + divide. Exam strategy: ask which of the 4 patterns this problem needs.
Practice Problems
🔎 Practice MCQ
After this code, what is count?
data <- [3,8,2,9,5,8]
count <- 0
FOR EACH n IN data
{
IF n > 6
{ count <- count + 1 }
}
⚠️ Predict your answer BEFORE clicking.
🔎 Practice MCQ
To find the maximum of a list, a programmer initializes maxVal to 0. Which input causes the WRONG answer? I. [1,5,3] II. [-4,-1,-7] III. [10,0,8]
⚠️ Predict your answer BEFORE clicking.
🔎 Practice MCQ
To find the average of a list, which sequence is correct?
🎮 Game
Algorithm Trace Challenge
Trace algorithm outputs on short programs. 8 questions.
0
Correct
1/8
Question
0
Streak 🔥
🤔 Evaluate:
0/8
correct
💻 Python Code Editor
Practice Problems
Write Python and check your answer. Paste into Replit for complex programs.
Problem 1 of 3
Find and print the maximum of [3,9,1,7,4]. Expected: 9
Hint: if n > max_val: max_val = n inside the loop.
Problem 2 of 3
Count how many numbers in [4,7,2,9,3,8] are > 5. Expected: 3
Hint: if n > 5: count = count + 1
Problem 3 of 3
Spot the error: should print average of [10,20,30]=20 but prints wrong value. print(total / 2)
Hint: Should divide by len(nums) which is 3, not 2. print(total / len(nums))
Frequently Asked Questions
If all values are negative, initializing with 0 means 0 wins as the maximum -- wrong. Initializing with the first element guarantees the answer is a value that actually exists in the list.
A loop over an empty list simply doesn't execute. For min/max, accessing index 0 would cause an error. Add a length check before the loop in practice.
Recognizing that complex problems combine simpler known algorithms rather than requiring completely new ones. Sorting+searching, accumulating+counting are common exam targets.
Whether you're a student, parent, or teacher — I'd love to hear from you.
Just want free AP CS resources?
Enter your email below and check the subscribe box — no message needed.
Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.
Typically responds within 24 hours
✓
Message Sent!
Thanks for reaching out. I'll get back to you within 24 hours.