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
- Revision Sheet
- Syllabus Checklist
- Scheme of Work
- Exam Technique
- Command Words — A3 poster
- Lesson Plans — one page per topic
- 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
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions
- 3.6 Conditionals
- 3.7 Nested Conditionals
- 3.8 Iteration
- 3.9 Developing Algorithms
- 3.10 Lists
- 3.11 Binary Search
- 3.12 Calling Procedures
- 3.13 Developing Procedures
- 3.14 Libraries
- 3.15 Random Values
- 3.16 Simulations
- 3.17 Algorithmic Efficiency
- 3.18 Undecidable Problems
- 3.1 Variables and Assignments
- 3.2 Data Abstraction
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions
- 3.6 Conditionals
- 3.7 Nested Conditionals
- 3.8 Iteration
- 3.9 Developing Algorithms
- 3.10 Lists
- 3.11 Binary Search
- 3.12 Calling Procedures
- 3.13 Developing Procedures
- 3.14 Libraries
- 3.15 Random Values
- 3.16 Simulations
- 3.17 Algorithmic Efficiency
- 3.18 Undecidable Problems
4. Computer Systems and Networks 10 files
5. Impact of Computing 16 files
2026 1 files
- 2026 Questions
2023 1 files
- 2023 Answers
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
- 1.2 Program Function and Purpose
- 1.3 Program Design and Development
- 1.4 Identifying and Correcting Errors
- 3.2 Data Abstraction
- 3.5 Boolean Expressions
- 3.6 Conditionals
- 3.8 Iteration
- 3.9 Developing Algorithms
- 3.10 Lists
- 3.12 Calling Procedures
- 3.13 Developing Procedures
Topic quizzes
- 1. Creative Development
- 2. Data
- 3. Algorithms and Programming
- 4. Computer Systems and Networks
- 5. Impact of Computing
Unit tests
Mock papers
Course companion
Glossary
Topic handouts
- 1.1 Collaboration
- 1.2 Program Function and Purpose
- 1.3 Program Design and Development
- 1.4 Identifying and Correcting Errors
- 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
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions
- 3.6 Conditionals
- 3.7 Nested Conditionals
- 3.8 Iteration
- 3.9 Developing Algorithms
- 3.10 Lists
- 3.11 Binary Search
- 3.12 Calling Procedures
- 3.13 Developing Procedures
- 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
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
- 1.3 Program Design and Development
- 1.4 Identifying and Correcting Errors
- 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
- 3.3 Mathematical Expressions
- 3.4 Strings
- 3.5 Boolean Expressions
- 3.6 Conditionals
- 3.7 Nested Conditionals
- 3.8 Iteration
- 3.9 Developing Algorithms
- 3.10 Lists
- 3.11 Binary Search
- 3.12 Calling Procedures
- 3.13 Developing Procedures
- 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
- 3. Algorithms and Programming
- 4. Computer Systems and Networks
- 5. Impact of Computing
Flashcards
Weekly vocab tests
Weekly homework
Exercise sheets
- Complete pack — exercise sheets + past papers
- 1 Creative Development — Part 1
- 1 Creative Development — Part 2
- 2 Data — Part 1
- 2 Data — Part 2
- 3 Algorithms and Programming — Part 1
- 3 Algorithms and Programming — Part 2
- 4 Computer Systems and Networks — Part 1
- 4 Computer Systems and Networks — Part 2
- 5 Impact of Computing — Part 1
- 5 Impact of Computing — Part 2
Past papers
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.