Table of Contents

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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.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.

Instructors: Interested in evaluating this zyBook for your class?