Skip to the content.

2021 MC Reflection

Performance Overview

MC MC


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:

  1. Identify absolute requirements vs nice-to-have data
  2. Focus on words like “must” in questions
  3. 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:

  1. Ask: “Can this data come solely from the primary user’s device?”
  2. For multi-user apps, identify dependencies on networked data
  3. 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 n in both left and right
  • D: Reverses the order of the string segments (would produce “tbe” instead of “bet” for “best”)

Key Concept:
String manipulation requires:

  1. Correctly splitting around the target position (n-1 and n+1)
  2. 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:

  1. Visualize string positions with index numbers
  2. Verify edge cases (n at start/end of string, though excluded here)
  3. Check concatenation order matches original sequence

Priority Review List

  1. Urgent Gaps (0% scores):
    • 1.2 Program Function/Purpose
    • 3.13 Developing Procedures
  2. High-Weight Topics:
    • Conditionals/Nested Logic (3.6-3.7)
    • Boolean Expressions (3.5)
    • Mathematical Operations (3.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.