Library
AP Computer Science Principles
Got a question wrong? Open the notes for that topic.
Teaching this subject? Everything for the classroom in one place →
- Course & Exam Description 2-up
- Revision Sheet 2-up
- Syllabus Checklist 2-up
- Scheme of Work
- Exam Technique 2-up
- Command Words — A3 poster
- Lesson Plans — one page per topic 2-up
- Class Mark Book
1. Creative Development 16 files
2. Data 12 files
3. Algorithms and Programming 49 files
- 3.1 Variables and Assignments
- 3.2 Data Abstraction Past-paper walk-through
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions Past-paper walk-through
- 3.6 Conditionals Past-paper walk-through
- 3.7 Nested Conditionals
- 3.8 Iteration Past-paper walk-through
- 3.9 Developing Algorithms Past-paper walk-through
- 3.10 Lists Past-paper walk-through
- 3.11 Binary Search
- 3.12 Calling Procedures Past-paper walk-through
- 3.13 Developing Procedures Past-paper walk-through
- 3.14 Libraries
- 3.15 Random Values
- 3.16 Simulations
- 3.17 Algorithmic Efficiency
- 3.18 Undecidable Problems
- 3.1 Variables and Assignments 2-up
- 3.2 Data Abstraction 2-up
- 3.3 Mathematical Expressions 2-up
- 3.4 Strings 2-up
- 3.5 Boolean Expressions 2-up
- 3.6 Conditionals 2-up
- 3.7 Nested Conditionals 2-up
- 3.8 Iteration 2-up
- 3.9 Developing Algorithms 2-up
- 3.10 Lists 2-up
- 3.11 Binary Search 2-up
- 3.12 Calling Procedures 2-up
- 3.13 Developing Procedures 2-up
- 3.14 Libraries 2-up
- 3.15 Random Values 2-up
- 3.16 Simulations 2-up
- 3.17 Algorithmic Efficiency 2-up
- 3.18 Undecidable Problems 2-up
4. Computer Systems and Networks 10 files
5. Impact of Computing 16 files
2026 1 files
- 2026 Questions
2022 1 files
- 2022 Answers
2021 1 files
- 2021 Answers
2020 1 files
- 2020 Answers
2019 1 files
- 2019 Answers
2018 1 files
- 2018 Answers
2017 1 files
- 2017 Answers
- AP Computer Science Principles — Question index 2-up
- 1.2 Program Function and Purpose 2-upAnswers2-up
- 1.3 Program Design and Development 2-upAnswers2-up
- 1.4 Identifying and Correcting Errors 2-upAnswers2-up
- 3.2 Data Abstraction 2-up
- 3.5 Boolean Expressions 2-upAnswers2-up
- 3.6 Conditionals 2-upAnswers2-up
- 3.8 Iteration 2-up
- 3.9 Developing Algorithms 2-up
- 3.10 Lists 2-upAnswers2-up
- 3.12 Calling Procedures 2-up
- 3.13 Developing Procedures 2-upAnswers2-up
Topic quizzes
- 1. Creative Development 2-up
- 2. Data 2-up
- 3. Algorithms and Programming 2-up
- 4. Computer Systems and Networks 2-up
- 5. Impact of Computing 2-up
Unit tests
Mock papers
Course companion
Glossary
Topic handouts
- 1.1 Collaboration 2-up
- 1.2 Program Function and Purpose 2-up
- 1.3 Program Design and Development 2-up
- 1.4 Identifying and Correcting Errors 2-up
- 2.1 Binary Numbers 2-up
- 2.2 Data Compression 2-up
- 2.3 Extracting Information from Data 2-up
- 2.4 Using Programs with Data 2-up
- 3.1 Variables and Assignments 2-up
- 3.2 Data Abstraction 2-up
- 3.3 Mathematical Expressions 2-up
- 3.4 Strings 2-up
- 3.5 Boolean Expressions 2-up
- 3.6 Conditionals 2-up
- 3.7 Nested Conditionals 2-up
- 3.8 Iteration 2-up
- 3.9 Developing Algorithms 2-up
- 3.10 Lists 2-up
- 3.11 Binary Search 2-up
- 3.12 Calling Procedures 2-up
- 3.13 Developing Procedures 2-up
- 3.14 Libraries 2-up
- 3.15 Random Values 2-up
- 3.16 Simulations 2-up
- 3.17 Algorithmic Efficiency 2-up
- 3.18 Undecidable Problems 2-up
- 4.1 The Internet 2-up
- 4.2 Fault Tolerance 2-up
- 4.3 Parallel and Distributed Computing 2-up
- 5.1 Beneficial and Harmful Effects 2-up
- 5.2 Digital Divide 2-up
- 5.3 Computing Bias 2-up
- 5.4 Crowdsourcing 2-up
- 5.5 Legal and Ethical Concerns 2-up
- 5.6 Safe Computing 2-up
Lesson slides
- 1. Creative Development
- 2. Data
- 3. Algorithms and Programming
- 4. Computer Systems and Networks
- 5. Impact of Computing
Lesson slides
- 1.1 Collaboration
- 1.2 Program Function and Purpose Past-paper walk-through
- 1.3 Program Design and Development Past-paper walk-through
- 1.4 Identifying and Correcting Errors Past-paper walk-through
- 2.1 Binary Numbers
- 2.2 Data Compression
- 2.3 Extracting Information from Data
- 2.4 Using Programs with Data
- 3.1 Variables and Assignments
- 3.2 Data Abstraction Past-paper walk-through
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions Past-paper walk-through
- 3.6 Conditionals Past-paper walk-through
- 3.7 Nested Conditionals
- 3.8 Iteration Past-paper walk-through
- 3.9 Developing Algorithms Past-paper walk-through
- 3.10 Lists Past-paper walk-through
- 3.11 Binary Search
- 3.12 Calling Procedures Past-paper walk-through
- 3.13 Developing Procedures Past-paper walk-through
- 3.14 Libraries
- 3.15 Random Values
- 3.16 Simulations
- 3.17 Algorithmic Efficiency
- 3.18 Undecidable Problems
- 4.1 The Internet
- 4.2 Fault Tolerance
- 4.3 Parallel and Distributed Computing
- 5.1 Beneficial and Harmful Effects
- 5.2 Digital Divide
- 5.3 Computing Bias
- 5.4 Crowdsourcing
- 5.5 Legal and Ethical Concerns
- 5.6 Safe Computing
Vocabulary lists
- 1. Creative Development
- 2. Data 2-up
- 3. Algorithms and Programming 2-up
- 4. Computer Systems and Networks
- 5. Impact of Computing 2-up
Flashcards
Weekly vocab tests
- Week 1 · Topics 1–2 · Creative Development, Data 2-upAnswer key
- Week 2 · Topics 2–3 · Data, Algorithms and Programming 2-upAnswer key
- Week 3 · Topics 3–4 · Algorithms and Programming, Computer Systems and Networks 2-upAnswer key
- Week 4 · Topics 1–5 · Creative Development, Impact of Computing 2-upAnswer key
Weekly homework
Exercise sheets
- Complete pack — exercise sheets + past papers 2-up
- 1 Creative Development — Part 1 2-upAnswer key
- 1 Creative Development — Part 2 2-upAnswer key
- 2 Data — Part 1 2-upAnswer key
- 2 Data — Part 2 2-upAnswer key
- 3 Algorithms and Programming — Part 1 2-upAnswer key
- 3 Algorithms and Programming — Part 2 2-upAnswer key
- 4 Computer Systems and Networks — Part 1 2-upAnswer key
- 4 Computer Systems and Networks — Part 2 2-upAnswer key
- 5 Impact of Computing — Part 1 2-upAnswer key
- 5 Impact of Computing — Part 2 2-upAnswer key
Past papers
- 1.2 Program Function and Purpose Answers2-up
- 1.3 Program Design and Development Answers2-up
- 1.4 Identifying and Correcting Errors Answers2-up
- 3.2 Data Abstraction
- 3.5 Boolean Expressions Answers2-up
- 3.6 Conditionals Answers2-up
- 3.8 Iteration
- 3.9 Developing Algorithms 2-up
- 3.10 Lists Answers2-up
- 3.12 Calling Procedures
- 3.13 Developing Procedures Answers2-up
Tips
Practise reading the pseudocode as its own language. The multiple-choice section uses it throughout, and students who only ever read Python lose time translating in their heads.
Write the Create task's responses as you build, not at the end. Describing an algorithm you wrote last week is far harder than describing one you wrote this morning, and the description is what is graded.
Be exact about which part of your program you mean. A response that says "my algorithm sorts the list" without pointing at the code and naming what it does earns much less than one that walks through the selection and iteration it uses.