AP CSP Topic 1.3: Program Design and Development
Master the development process—from requirements to documentation—for exam success and your Create Task.
📘 Big Idea 1: Creative DevelopmentHow do I design and develop an AP CSP program the right way? This guide covers iterative/incremental development, gathering requirements, writing specifications, and proper documentation—all essential for the exam and Create Task.
🎯 What You'll Learn
- Ordered vs. exploratory development processes
- Iterative and incremental development strategies
- Requirements gathering and specification writing
- UI design and prototyping techniques
- Documentation and code acknowledgement practices
🔄 Development Processes
Development can be ordered/intentional (following a plan) or exploratory (discovering solutions through experimentation). Most real projects use both.
Common Development Phases
- Investigating & Reflecting – Understanding the problem and user needs
- Designing – Planning how to solve the problem
- Prototyping – Building working versions
- Testing – Verifying the solution works correctly
🔁 Iterative vs Incremental Development
These are two key strategies: \( \text{Iteration}_k: \text{Build} \rightarrow \text{Test} \rightarrow \text{Reflect} \rightarrow \text{Revise} \)
Iterative Development
Refine the whole product through repeated cycles. Each iteration improves based on feedback and testing.
Example: Build a complete study timer, test it, get feedback, improve the whole app, repeat.
Incremental Development
Build piece by piece. Ensure each feature works before adding the next: \( \text{Program} = \text{Feature}_1 + \text{Feature}_2 + ... + \text{Feature}_n \)
Example: First make the timer count down, then add start/pause, then add sound alerts.
📋 Requirements & Specification
Before coding, investigate what users need:
🔍 Investigation Methods
- Surveys and questionnaires
- User testing sessions
- Interviews with stakeholders
- Direct observations
📝 What to Document
- Requirements: What functions and interactions are needed
- Constraints: Limitations (time, technology, resources)
- User concerns: What matters to users
📱 Example: Study Timer App
Requirements: Set duration, start/pause, sound when done, track sessions.
Constraints: Must work offline, simple UI for quick use.
Specification: Timer displays MM:SS, buttons for control, stores session count in local storage.
✏️ Design Phase
Design outlines how to accomplish the specification:
- Brainstorming – Generate ideas without judgment
- Planning/Storyboarding – Map out user flows
- Modularizing – Break into smaller, manageable pieces
- UI Layout Diagrams – Sketch interface designs
- Testing Strategy – Plan how to verify each feature
✅ Development Checklist
Track your progress (saves automatically):
📄 Documentation
Documentation is written description of code function and how it was developed. Comments are documentation embedded in code—read by people, not executed by the computer.
- Document throughout development, not just at the end
- Describe what code does and why
- Supports maintenance, debugging, and collaboration
- Not all environments support comments (document elsewhere if needed)
⚠️ Acknowledgements Required
You must acknowledge code segments from other sources. Include the origin and original author in your documentation. This applies to code from tutorials, libraries, classmates, or online resources.
🎯 Exam + Create Task Readiness
The Create Task requires you to document your development process, explain your code, and acknowledge sources. Understanding iterative development and proper documentation is essential for scoring well.
⚠️ Common Pitfalls
- Skipping user investigation – Building what you assume users want instead of what they actually need
- No testing plan – Testing randomly instead of systematically
- Missing acknowledgements – Using code from others without credit (academic integrity issue!)
- Documentation at the end – Waiting until finished, then forgetting key details
📝 Practice Quiz
Review the explanations above!
❓ Frequently Asked Questions
Iterative refines the whole product through repeated cycles. Incremental builds piece by piece, completing each feature before adding the next. Most projects use both strategies together.
A specification defines what the program must do based on gathered requirements. It describes functions, user interactions, constraints, and expected behaviors in detail.
Documentation helps developers understand, maintain, and debug code. It describes what code does, how it was developed, and acknowledges sources. Good documentation saves time and prevents errors.
Common methods include surveys, user testing, interviews, and direct observations. These help identify what users need, their concerns, and constraints the program must work within.
Acknowledge any code segments from other sources, including the origin and original author. This applies to code from tutorials, libraries, classmates, or online resources.
Common phases include investigating/reflecting, designing, prototyping, and testing. In iterative development, these phases may be revisited multiple times as the project evolves.
📚 About This Guide
This AP CSP Topic 1.3 study guide is developed by NUM8ERS Institute & Education LLC Dubai, specializing in AP and IB exam preparation. Our materials align with the official College Board curriculum.
Official references:
More NUM8ERS resources: