AP exam review verified for 2027

AP Computer Science Principles Unit 1 Review: Creative Development

Review AP CSP Unit 1 to understand how computing innovations are built through collaboration, intentional design, and iterative development. This unit covers everything from pair programming and user feedback to identifying logic, syntax, run-time, and overflow errors.

Use the topic guides, practice questions, and FRQ practice available here to work through all four topics before your exam.

What is AP Computer Science Principles unit 1?

Creative Development is about the process behind building computing innovations, not just the end product. The College Board wants you to understand that good programs come from working with others, gathering user feedback, designing deliberately, and testing carefully.

Unit 1 covers four topics: how collaboration improves computing innovations (1.1), what programs do and how inputs and outputs work (1.2), how programs are designed and documented through iterative and incremental processes (1.3), and how to find and fix logic, syntax, run-time, and overflow errors (1.4).

Collaboration improves innovations

Diverse teams catch bias, incorporate more perspectives, and produce innovations that work for a wider range of users. Pair programming and online collaboration tools like shared documents and version control support this process.

Programs have function, purpose, inputs, and outputs

A program's purpose is why it was created, and its function is what it does. Inputs can be tactile, audio, visual, or text, and they drive outputs. In event-driven programming, code runs when triggered by events like key presses or mouse clicks rather than in strict sequence.

Development is iterative and must be documented

The four common development phases are investigating, designing, prototyping, and testing. Iterative development means revisiting earlier phases based on feedback. Documentation through comments and written descriptions helps others understand and maintain code.

The big idea: computing innovations are built, not just written

Unit 1 frames the entire course by showing that programs are the result of deliberate human choices: who collaborates, what users need, how the design evolves, and how errors get caught. These ideas connect directly to the Create Performance Task, where you must document your own development process and explain your program's purpose, function, and testing.

AP Computer Science Principles unit 1 topics

1.1

Collaboration

Explains how diverse teams and user consultation improve computing innovations. Covers pair programming, online collaboration tools, and the four interpersonal skills: communication, consensus building, conflict resolution, and negotiation.

open guide
1.2

Program Function and Purpose

Covers the difference between a program's purpose and its function, how inputs and outputs work, and how event-driven programming triggers code through events like key presses and mouse clicks rather than sequential flow.

open guide
1.3

Program Design and Development

Covers the four development phases (investigating, designing, prototyping, testing), the difference between iterative and incremental development, how to gather program requirements, and how to write documentation and comments.

open guide
1.4

Identifying and Correcting Errors

Covers the four error types (logic, syntax, run-time, overflow) and the five debugging strategies: test cases, hand tracing, visualizations, debuggers, and adding extra output statements. Includes how to design boundary test inputs.

open guide
guide

Big Idea 1 Overview: Creative Development

AP Computer Science Principles Big Idea 1 review: collaboration, program design, and error types across Topics 1.1-1.4, worth 10-13% of the exam, with practice links.

open guide
practice snapshot

Hardest AP Computer Principles unit 1 topics

This snapshot uses Fiveable practice activity to show where students tend to miss questions and which review moves are worth prioritizing first.

70%average MCQ accuracy

Across 16k multiple-choice practice attempts for this unit.

16kMCQ attempts

Practice activity included in this snapshot.

83%average FRQ score

Across 26 scored free-response attempts for this unit.

Hardest topics in unit 1

MCQ miss rate
1.3

Review Program Design and Development with attention to how the concept appears in AP-style source and evidence questions.

33%3,893 tries
1.2

Review Program Function and Purpose with attention to how the concept appears in AP-style source and evidence questions.

28%4,366 tries
1.1

Review Collaboration with attention to how the concept appears in AP-style source and evidence questions.

25%4,291 tries

Unit 1 review notes

1.1

Collaboration

Computing innovations improve when teams include people with different backgrounds and skills. Collaboration reduces bias because diverse perspectives surface assumptions that a homogeneous team might miss. Consulting and communicating with actual users is a required part of the development process, not optional.

  • Computing innovation: Any innovation with a program as an integral part of its function. Can be physical (self-driving car), nonphysical software (photo editing app), or a nonphysical concept (e-commerce).
  • Pair programming: A collaboration model where one programmer writes code while the other reviews in real time, improving quality and shared understanding.
  • Online collaboration tools: Shared documents, version control systems, and collaborative IDEs allow programmers to share code, give feedback, and work asynchronously.
  • Interpersonal skills: Effective teams practice communication, consensus building, conflict resolution, and negotiation to keep development on track.
  • User consultation: Gathering information from potential users helps developers understand diverse needs and build programs that reflect those perspectives.
Can you explain two specific ways that including diverse perspectives improves a computing innovation? Can you name the four interpersonal skills the AP exam expects you to know?
Collaboration ModelHow It WorksKey Benefit
Pair programmingTwo programmers at one workstation, one writes and one reviewsReal-time error catching and knowledge sharing
Online tools (e.g., shared docs, version control)Asynchronous sharing and feedback on code or documentsSupports distributed teams and tracks changes over time
1.2

Program Function and Purpose

Every program exists to solve a problem or support creative expression. Knowing the purpose helps developers build the right thing. Function describes what the program does during execution, including how it responds to inputs and produces outputs. Event-driven programs do not run top to bottom; they wait for defined events to trigger specific code.

  • Program purpose: Why a computing innovation was created: to solve a problem or pursue creative expression.
  • Program function: What a program does during execution, often described by how a user interacts with it.
  • Code segment: A collection of program statements that is part of a larger program.
  • Program inputs: Data sent to a program for processing. Can be tactile, audio, visual, or text, and can come from users or other programs.
  • Event-driven programming: A model where program statements execute when triggered by events such as key presses, mouse clicks, or program start, rather than through sequential flow.
Can you distinguish between a program's purpose and its function? Can you give an example of an event and explain how it triggers program behavior?
ConceptDefinitionExample
PurposeWhy the program was createdA navigation app exists to help users find routes
FunctionWhat the program does during executionThe app takes a destination input and outputs turn-by-turn directions
InputData sent to the programUser types a destination address
OutputData sent from the program to a deviceMap display and audio directions
1.3

Program Design and Development

Programs are developed through phases: investigating and reflecting, designing, prototyping, and testing. Iterative development means you cycle back through earlier phases when testing reveals problems. Incremental development means you build and verify one piece at a time before adding it to the whole. Documentation through comments and written descriptions is required throughout, not just at the end. Any code from another source must be acknowledged in documentation.

  • Iterative development: A process that requires refinement and revision based on feedback, testing, or reflection, which may mean revisiting earlier phases.
  • Incremental development: Breaking a program into smaller pieces and verifying each piece works before combining it with the rest.
  • Program requirements: A description of how a program must function, including required user interactions. Gathered through surveys, interviews, user testing, and direct observation.
  • Program documentation: Written descriptions of what code segments, events, procedures, or programs do and how they were developed.
  • Comments: Text written into source code to explain it to human readers. Comments do not affect how the program runs.
Can you explain the difference between iterative and incremental development? Can you name three investigation methods used to gather program requirements?
Development TypeCore IdeaWhen You Revisit Earlier Work
IterativeRefine through repeated cycles based on feedback or testingYes, revisiting earlier phases is expected and built into the process
IncrementalBuild and verify one piece at a time before adding to the wholeOnly if a piece fails; focus is on completing verified chunks
1.4

Identifying and Correcting Errors

There are four error types you must know for the AP exam. Logic errors cause incorrect behavior even when the code runs. Syntax errors break the rules of the programming language and usually prevent the program from running at all. Run-time errors occur during execution. Overflow errors happen when a number exceeds the defined range a computer can handle. Finding errors requires deliberate testing with defined inputs, including values at or just beyond the extremes of expected input.

  • Logic error: A mistake in the algorithm that causes incorrect or unexpected behavior. The code may run without crashing but produces wrong results.
  • Syntax error: A violation of the programming language's rules. Usually caught before the program runs.
  • Run-time error: An error that occurs while the program is executing. Each programming language defines its own run-time errors.
  • Overflow error: Occurs when a computer tries to handle a number outside the defined range of values it can store.
  • Hand tracing: Manually stepping through code line by line, tracking variable values at each step, to find where behavior diverges from expectations.
Can you identify which error type matches a given scenario? Can you explain why testing with boundary inputs is important for finding errors?
Error TypeWhen It OccursExample
Logic errorDuring or after execution; code runs but gives wrong outputA loop runs one too many times, producing an off-by-one result
Syntax errorBefore execution; language rules violatedMissing closing parenthesis in a function call
Run-time errorDuring executionDividing by zero when user input is 0
Overflow errorDuring executionAdding 1 to the maximum integer value a variable can store

Practice AP Computer Science Principles unit 1 questions

Try AP-style multiple-choice questions and written prompts after you review the notes.

Example AP-style MCQs

open all practice
MCQ

AP-style practice question

Question

A smart thermostat is designed to reduce electricity costs for homeowners. The utility company charges higher rates during peak afternoon hours and lower rates at night. Which program behavior best achieves the purpose of cost reduction?

Pre-cooling the home during low-rate hours to minimize usage during peak times.

Maintaining a constant temperature setting throughout the entire day and night.

Increasing the cooling intensity immediately whenever the outdoor heat peaks.

Disabling the cooling system entirely whenever the user is away from the home.

MCQ

AP-style practice question

Question

A traffic simulation program crashes because it attempts to track the tire friction of every car, exceeding the computer's memory. The developer modifies the program to treat cars as simple points moving at constant speeds. How does this change correct the error using abstraction?

It reduces the model's complexity by filtering out irrelevant details, ensuring the simulation runs within the hardware's memory limits.

It reduces the model's complexity by simplifying car behavior, but the simulation still crashes because abstraction cannot eliminate memory constraints imposed by hardware limitations.

It reduces the model's complexity by filtering out irrelevant details, but increases runtime performance instead of addressing the memory overflow that caused the crash.

It reduces the model's complexity by replacing detailed physics calculations with simplified movement logic, but requires additional memory to store the abstraction layer itself.

Example FRQs

open all FRQs
FRQ

Boolean expressions, procedures, and list modifications

2. Refer to your Personalized Project Reference when answering this question.

A.

Consider the first selection statement included in the Procedure section of your Personalized Project Reference. Identify the Boolean expression in this selection statement. Identify a specific value or set of values that will cause this expression to evaluate to true. Explain why the specified value(s) will cause the expression to evaluate to true.

B.

Consider the procedure included in part (i) of the Procedure section of your Personalized Project Reference. Suppose another programmer modifies the code within this procedure. Describe a modification the other programmer could make that would cause this procedure to have a logic error. Describe how the behavior of this procedure would change because of the error.

C.

Consider the list included in the List section of your Personalized Project Reference. Suppose another programmer adds several new elements to the end of the list. Explain how the code segment in part (ii) of the List section would need to be modified to account for the additional elements. If no changes to the code segment are necessary, explain why this is the case for your program.

Key terms

TermDefinition
Iterative Development ProcessA development approach where the program is refined through repeated cycles of investigating, designing, prototyping, and testing, with earlier phases revisited based on feedback or test results.
pair programmingA collaboration model where two programmers work together at one workstation: one writes code while the other reviews in real time, improving quality and shared understanding.
Program InputsData sent to a program for processing. Inputs can be tactile, audio, visual, or text, and can come from users or other programs.
Code SegmentA collection of program statements that is part of a larger program, used to perform a specific task or operation.
Program DocumentationWritten descriptions of what code segments, events, procedures, or programs do and how they were developed, used to help others understand and maintain the code.
CommentsText written into source code to explain it to human readers. Comments do not affect how the program runs and are a required form of documentation.
Program RequirementsA description of how a program must function, including required user interactions, gathered through surveys, interviews, user testing, and direct observation.
logic errorA mistake in an algorithm or program that causes it to behave incorrectly or unexpectedly, even though the code may run without crashing.
syntax errorA mistake in a program where the rules of the programming language are not followed, usually preventing the program from running.
run-time errorA mistake in a program that occurs during execution. Each programming language defines its own run-time errors.
Hand TracingManually stepping through code line by line and tracking variable values at each step to find where behavior diverges from what was intended.
DebuggingThe process of finding and fixing errors in a program using strategies such as test cases, hand tracing, visualizations, debuggers, and extra output statements.
User Interface DesignThe process of planning how users will interact with a program, including layouts and input methods, as part of the design phase of development.
Create Performance TaskThe AP CSP exam component where students design and implement a program, document their development process, and explain their program's purpose, function, and testing.

Common unit 1 mistakes

Confusing logic errors with run-time errors

A logic error produces wrong output but the program still runs. A run-time error crashes or halts the program during execution. Students often label any error that appears while running as a run-time error, but if the program finishes and just gives the wrong answer, that is a logic error.

Treating iterative and incremental development as the same thing

Iterative development means cycling back through phases based on feedback. Incremental development means building and verifying one piece at a time. A program can use both, but they describe different aspects of the process and the AP exam tests them separately.

Describing program purpose and function as interchangeable

Purpose is why the program was created (the problem it solves or the creative goal). Function is what the program actually does during execution. Exam questions often ask you to describe one specifically, so using the wrong term costs points.

Skipping boundary inputs when designing test cases

Testing only typical inputs misses errors that appear at the edges. The AP exam expects you to know that defined test inputs should include values at or just beyond the minimum and maximum of expected input data.

Omitting attribution for borrowed code in documentation

Any code segment written by someone else and used in your program must be acknowledged in documentation with the origin or original author's name. Leaving this out is both an academic integrity issue and a testable AP concept.

How this unit shows up on the AP exam

Identifying error types from code or scenario descriptions

Multiple-choice questions frequently present a short code segment or scenario and ask you to identify whether the error is a logic, syntax, run-time, or overflow error. Practice reading code carefully: if it runs but gives wrong output, think logic error; if it violates language rules, think syntax error; if it crashes during execution, think run-time error.

Explaining development process decisions

Questions may describe a development scenario and ask you to identify which phase is occurring, whether the process is iterative or incremental, or why a developer would return to an earlier phase. Be ready to connect investigation methods (surveys, interviews, user testing, direct observation) to the goal of gathering program requirements.

Create Performance Task connections

The Create Performance Task directly assesses Unit 1 skills. You must describe your program's purpose and function, explain how you used an iterative development process, document your code with comments, and acknowledge any code from other sources. The written responses on the task use the same vocabulary tested in Unit 1 multiple-choice questions.

Final unit 1 review checklist

  • Unit 1 review checklist: CollaborationExplain how diverse perspectives reduce bias in computing innovations. Name the four interpersonal skills and describe how pair programming and online tools support collaboration.
  • Unit 1 review checklist: Program purpose vs. functionDistinguish between why a program was created (purpose) and what it does during execution (function). Give examples of physical, nonphysical software, and nonphysical concept innovations.
  • Unit 1 review checklist: Inputs, outputs, and eventsIdentify input types (tactile, audio, visual, text) and output types. Explain how event-driven programming differs from sequential flow and give examples of events that trigger program behavior.
  • Unit 1 review checklist: Development processName the four development phases and explain the difference between iterative and incremental development. Describe at least three investigation methods used to gather program requirements.
  • Unit 1 review checklist: Documentation and attributionExplain what program documentation includes, how comments work, and why code from other sources must be acknowledged with the origin or original author's name in documentation.
  • Unit 1 review checklist: Error typesIdentify and distinguish logic, syntax, run-time, and overflow errors. Match each error type to a scenario and explain when each occurs.
  • Unit 1 review checklist: Debugging strategiesDescribe all five error-finding strategies: test cases, hand tracing, visualizations, debuggers, and extra output statements. Explain why boundary inputs (at or just beyond extremes) are important for testing.

How to study unit 1

Step 1: Collaboration (Topic 1.1)Read the Topic 1.1 guide on Fiveable. Focus on why diverse perspectives reduce bias, the definition of a computing innovation, and the four interpersonal skills. Practice explaining the difference between pair programming and using online collaboration tools.
Step 2: Program function, purpose, inputs, and outputs (Topic 1.2)Read the Topic 1.2 guide. Write out the distinction between purpose and function in your own words. Then trace through a simple event-driven scenario: identify the event, the input, and the resulting output.
Step 3: Design, development, and documentation (Topic 1.3)Read the Topic 1.3 guide. Draw a diagram of the four development phases and annotate where iterative feedback loops occur. Practice writing a short comment for a code segment and a one-sentence attribution for borrowed code.
Step 4: Error types and debugging (Topic 1.4)Read the Topic 1.4 guide. Use the comparison table to drill all four error types until you can match each to a scenario. Practice hand tracing a short algorithm and identify where a logic error would appear.
Step 5: Full unit review and practiceUse the Big Idea 1 overview guide to review all four topics together. Work through the available practice questions and FRQ practice to apply concepts in exam-style contexts. Use the AP score calculator to estimate where you stand.

More ways to review

Topic study guides

Open the individual guides for Unit 1 when you want a closer review of one topic.

browse guides

FRQ practice

Practice free-response reasoning and compare your answer with scoring guidance.

practice FRQs

Cram archive videos

Watch past review streams filtered to Unit 1 when you want a video walkthrough.

open videos

Cheatsheets

Use unit cheatsheets for a quick visual review after you work through the notes.

open cheatsheets

Score calculator

Estimate your broader AP score goal after you review the course and exam format.

open calculator

Frequently Asked Questions

What topics are covered in AP CSP Unit 1?

AP CSP Unit 1: Creative Development covers 4 topics: **1.1 Collaboration**, **1.2 Program Function and Purpose**, **1.3 Program Design and Development**, and **1.4 Identifying and Correcting Errors**. Together they build the foundation for how programs are designed, built, and debugged through an iterative, user-centered process. See the full topic breakdown at AP CSP Unit 1.

What's on the AP CSP Unit 1 progress check (MCQ and FRQ)?

The AP CSP Unit 1 progress check in AP Classroom includes both MCQ and FRQ parts drawn from all 4 unit topics: Collaboration, Program Function and Purpose, Program Design and Development, and Identifying and Correcting Errors. MCQ questions test conceptual understanding, while the FRQ section asks you to apply design and debugging thinking to short scenarios. For matched practice questions that mirror the progress check format, visit AP CSP Unit 1.

How do I practice AP CSP Unit 1 FRQs?

AP CSP Unit 1 FRQs most often draw from Program Design and Development (1.3) and Identifying and Correcting Errors (1.4), asking you to trace through a design process, explain a program's purpose, or identify and fix a specific bug. Practice by writing out step-by-step explanations for short code or design scenarios, then checking whether your answer addresses the prompt's exact ask. You can find FRQ-style practice at AP CSP Unit 1.

Where can I find AP CSP Unit 1 practice questions?

The best place to find AP CSP Unit 1 practice questions, including multiple-choice and practice test sets, is AP CSP Unit 1. That page organizes MCQ and FRQ practice by topic, covering Collaboration, Program Function and Purpose, Program Design and Development, and Identifying and Correcting Errors, so you can target exactly what you need.

How should I study AP CSP Unit 1?

Start AP CSP Unit 1 by understanding the iterative design cycle: how collaboration (1.1) shapes a program's purpose (1.2), how that purpose drives design decisions (1.3), and how testing reveals errors to fix (1.4). Study each topic in that order since they build on each other. For 1.4, practice tracing code line by line to spot logic, syntax, and runtime errors. Then test yourself with MCQ questions to check your understanding before moving on. Find topic guides and practice sets at AP CSP Unit 1.

Ready to review Unit 1?Start with the notes, check the topic cards, and use the practice or resource links when they are available for this course.