Table of Contents
1. Computational Thinking and Creativity
1.1 Brief history
1.2 Computers all around us
1.3 Computational problem solving
1.4 The creative process
1.5 Computational artifacts
1.6 Collaboration
1.7 Information system development
2. Abstraction of Information
2.1 Abstraction in computing
2.2 Representing information as bits
2.3 Unsigned binary numbers
2.4 Binary, hexadecimal, and octal
2.5 General number bases
2.6 Naming numerous bits
2.7 Floating-point numbers
3. Computing Hardware
3.1 Basic hardware
3.2 Cache, memory, drive
3.3 Types of computers
3.4 Moore’s Law
3.5 Hardware trends
3.6 Computers and programs (general)
3.7 Programming: Machine language
3.8 Gates
3.9 Programming: Assembly language
3.10 Programming: High-level language
4. Data
4.1 Computer models and simulations
4.2 Large data sets
4.3 Data visualization
4.4 Compression
4.5 Image and video data
4.6 Computer graphics
4.7 Audio
4.8 Creating and editing digital media
5. Programming
5.1 Programming (general)
5.2 Programming basics
5.3 Comments and whitespace
5.4 Problem solving
5.5 Code and pseudocode
5.6 Language survey
6. Variables, Operations, and Sequences
6.1 Variables and assignments (general)
6.2 Variables (integer)
6.3 Identifiers
6.4 Arithmetic expressions (general)
6.5 Arithmetic expressions (integer)
6.6 Example: Health data
6.7 Floating-point numbers (float)
6.8 Using math functions
6.9 Random numbers
6.10 Integer division
6.11 Type conversions
6.12 Modulo operator
6.13 Data types
6.14 Constants
6.15 Code: Variables and assignments
7. Branches (Selection)
7.1 Branches
7.2 More branches
7.3 Equality and relational operators
7.4 Detecting ranges using branches
7.5 Logical operators
7.6 Order of evaluation
7.7 Example: Toll calculation
7.8 Floating-point comparison
7.9 Code: Branches
7.10 Code: More branches
8. Iteration
8.1 Loops (general)
8.2 Loop basics
8.3 More loop examples
8.4 Looping N times
8.5 Loop examples iterating N times
8.6 While and for loops
8.7 Nested loops
8.8 Code: While loops
8.9 Code: For loops
9. Arrays
9.1 Array concept (general)
9.2 Arrays
9.3 Array iteration drill
9.4 Iterating through arrays
9.5 Swapping two variables (general)
9.6 Code: Arrays
10. Functions (Procedures)
10.1 User-defined function basics
10.2 Return
10.3 Reasons for defining functions
10.4 Functions with branches/loops
10.5 Libraries and APIs
10.6 Code: Functions
10.7 Code: Functions with array parameters
11. Troubleshooting
11.1 Troubleshooting: Hypotheses and tests
11.2 Logic of troubleshooting
11.3 Creating hypotheses
11.4 Ex: Dog whimpering
11.5 Knowledge
11.6 Ex: iPhone headset
11.7 Ex: USB car charger
12. Program Debugging
12.1 Basic debugging
12.2 Ex: Calculation error
12.3 Ex: Logic error
12.4 Ex: Loop error
12.5 Ex: Function error
12.6 Programming knowledge
13. Algorithms
13.1 Introduction to algorithms
13.2 Algorithm efficiency
13.3 Searching and algorithms
13.4 Binary search
13.5 Sorting: Introduction
13.6 Heuristics
14. The Internet
14.1 Internet basics
14.2 IP addresses
14.3 Home networking
14.4 Cellular networks
14.5 Web basics
14.6 Web search engines
14.7 Web search tips
14.8 Domain names and URLs
14.9 Setting up a website
15. Privacy
15.1 Users leave footprints
15.2 Users aren’t anonymous
15.3 Information Is valuable
15.4 Someone could listen
15.5 Sharing releases control
16. Security
16.1 Security basics
16.2 Viruses and malware
16.3 Antivirus software and firewalls
16.4 Internet scams and spam
16.5 Cryptography
16.6 Denial of service (DoS) attacks
16.7 Digital certificates
17. Global Impact
17.1 Social networking
17.2 Email basics
17.3 Text messages
17.4 Blogs
17.5 Cloud computing applications
17.6 Crowdsourcing
17.7 E-commerce
17.8 Intellectual property
17.9 IP licensing and theft
17.10 Cybercrime and punishment
17.11 Cyberbullying
17.12 Digital divide
Teach a hands-on, interactive introduction to foundational programming concepts
AP Computer Science Principles aligns with the College Board AP Computer Science Principles curriculum.
- AP Computer Science Principles’ big ideas include Creativity, Abstraction, Data and Information, Algorithms, Programming, The Internet, and Global Impact
- Real insights, experiences, and practical skills relating to the exciting world of computing technology
- Initially uses flowcharts to teach basic programming concepts including variables, data types, assignment statements, arithmetic operations, decisions, loops, arrays, and functions, while teaching coding for each concept.
- Uses a new, ultra-simple programming language, Coral, featuring a unified flowchart and code version
- Coral allows easy conversion to most programming languages, including C++, Java, Python, and C
- Adopters have access to a test bank with over 500 questions
What is a zyBook?
AP Computer Science Principles is a web-native, interactive zyBook that helps students visualize concepts to learn faster and more effectively than with a traditional textbook. (Check out our research.)
Since 2012, over 1,200 universities and colleges across the country have adopted digital zyBooks to transform their STEM education.
zyBooks utilize the “Say, Show, Ask” approach
Say. We use concise text as a jumping board to our animations and learning questions.
Show. Much of a traditional textbook is replaced with animations to help students visualize key concepts.
Ask. Learning questions and auto-graded homework problems encouraged more student participation.