- Performance Overview
- Overall Performance Summary
- Error Analysis
- Check concatenation order matches original sequence
- Priority Review List
- 7-Day Study Plan
Performance Overview

Overall Performance Summary
- Strengths:
- 15/26 topics at 100% mastery (e.g., Lists, Internet, Simulations)
- Strong in Data units (2.2-2.4) and Programming fundamentals (3.1, 3.4, 3.7-3.12)
- Weaknesses:
- Critical gaps in “Program Function and Purpose” (0%) and “Developing Procedures” (0%)
- Lower scores in Boolean Expressions (75%), Conditionals (67%), and Mathematical Expressions (67%)
- Ethical/Legal topics (5.4-5.5) at 50%
Error Analysis
| Topic | Issue Type | Example Problem |
|---|---|---|
| 1.2: Program Function | Conceptual misunderstanding | Misidentifying program outputs |
| 3.3: Math Expressions | Calculation errors | Order of operations in complex expressions |
| 3.5: Boolean Logic | Truth table confusion | Evaluating compound AND/OR conditions |
| 3.6: Conditionals | Flow control errors | Missing edge cases in if-else chains |
| 5.4/5.5: Ethics | Terminology mix-ups | Confusing “crowdsourcing” with “open source” |
Q58: (1.2)
Which of the following data must be collected from a user’s smartphone in order for RunRoutr to suggest a running route?
Responses:
A. Available running routes near the user’s home
B. The current time
C. The starting location of the user’s previous run
D. The user’s geographic position
Correct Answer: D (User’s geographic position)
Mistake: Chose C (Previous run’s start location)
Why Wrong:
- Routes are based on current location, not past runs
- GPS is mandatory; historical data is optional
Key Concept:
Real-time GPS is essential for location-based apps. Past data can improve suggestions but isn’t required.
How to Improve:
- Identify absolute requirements vs nice-to-have data
- Focus on words like “must” in questions
- Remember: live location powers most map/fitness apps
Q59: (1.2)
Question:
Adrianna uses RunRoutr to suggest a running route. All compatible users near Adrianna receive a notification that shows her running route. Which of the following data is not obtained using data collected from Adrianna’s smartphone but necessary for RunRoutr to share Adrianna’s running route?
Responses:
A. Adrianna’s average running speed
B. Adrianna’s preferred running distance
C. The current locations of other RunRoutr users
D. The usernames on Adrianna’s contact list
Correct Answer: C (The current locations of other RunRoutr users)
Mistake: If chose A, B, or D
Why Wrong:
- A (Running speed): Collected from Adrianna’s smartphone via GPS tracking
- B (Preferred distance): Input by Adrianna when requesting the route
- D (Contact list): Stored in Adrianna’s profile (on her device/account)
- C (Others’ locations): Must come from other users’ devices, not Adrianna’s
Key Concept:
- Data sourcing: Distinguish between data collected from one user’s device vs external sources
- System design: Features relying on multiple users require server-side aggregation (other users’ GPS data)
How to Improve:
- Ask: “Can this data come solely from the primary user’s device?”
- For multi-user apps, identify dependencies on networked data
- Note that contact lists (D) are user-generated data, while real-time locations (C) are actively transmitted
Q70: (3.4)
Question:
Create a new string by removing the character at position n of oldStr (1 < n < len(oldStr)). Select two correct solutions.
Responses:
A.
left ← substring(oldStr, 1, n - 1)
right ← substring(oldStr, n + 1, len(oldStr))
newStr ← concat(left, right)
B.
left ← substring(oldStr, 1, n + 1)
right ← substring(oldStr, n - 1, len(oldStr))
newStr ← concat(left, right)
C.
newStr ← substring(oldStr, 1, n - 1)
newStr ← concat(newStr, substring(oldStr, n + 1, len(oldStr)))
D.
newStr ← substring(oldStr, n + 1, len(oldStr))
newStr ← concat(newStr, substring(oldStr, 1, n - 1)))
Correct Answers: A and C
Why Others Are Wrong:
- B: Incorrectly includes the character at position
nin bothleftandright - D: Reverses the order of the string segments (would produce “tbe” instead of “bet” for “best”)
Key Concept:
String manipulation requires:
- Correctly splitting around the target position (
n-1andn+1) - Preserving original order when concatenating
Test Case Proof:
For oldStr = "best", n = 3:
- A/C produce:
"be" + "t" = "bet" - B would produce:
"bes" + "est" = "besest" - D would produce:
"t" + "be" = "tbe"
How to Improve:
- Visualize string positions with index numbers
- Verify edge cases (n at start/end of string, though excluded here)
-
Check concatenation order matches original sequence
Priority Review List
- Urgent Gaps (0% scores):
- 1.2 Program Function/Purpose
- 3.13 Developing Procedures
- High-Weight Topics:
- Conditionals/Nested Logic (3.6-3.7)
- Boolean Expressions (3.5)
- Mathematical Operations (3.3)
- Ethical Concepts:
- Digital rights management (5.5)
- Bias in algorithms (5.3)
7-Day Study Plan
| Day | Focus Area | Tasks |
|---|---|---|
| 1 | Programming Fundamentals | Drill: Function tracing (1.2), Math expressions (3.3) |
| 2 | Logic Structures | Practice: Truth tables (3.5), Conditional flowcharts (3.6) |
| 3 | Procedural Abstraction | Code 3 procedures with parameters (3.13) |
| 4 | Data Concepts | Review binary conversions (2.1), compression tradeoffs (2.2) |
| 5 | Ethics/Society | Flashcards for terms (5.1-5.6), case studies |
| 6 | Full-Length Practice Test | Timed 60-question simulation |
| 7 | Targeted Review | Revisit incorrect practice problems, final concept map |
Key Strategy: For 0% topics, use College Board’s AP Classroom videos + 3 practice problems per concept.