AP Computer Science Principles


We will be using Gradescope which allows me to provide fast and accurate feedback on your work. Homework will be submitted through Gradescope, and homework and exam grades will be returned through Gradescope.

What is CS Principles?

Computer Science Principles introduces students to the foundational concepts of computer science and challenges them to explore how computing and technology can impact the world. More than a traditional introduction to programming, it is a rigorous, engaging, and approachable course that explores many of the foundational ideas of computing so all students understand how these concepts are transforming the world we live in.


We will be using Code.org curriculum for AP Computer Science Principles. Code.org is recognized by the College Board as an endorsed provider of curriculum for this course.

Class Calendar

Here you can find my calendar of teaching topics, homework assignments, exam dates, lesson videos, review materials and more.

Unit 1A
Unit 1B
Unit 2
Unit 3
Unit 4
Unit 5A
Unit 5B
Unit 1A

Unit 1A: The Internet

Chapter 1: Representing and Transmitting Information

1.1 Personal Innovations

1.2 Sending Binary Messages

1.3 Sending Binary Messages with the Internet Simulator

1.4 Number Systems

1.5 Binary Numbers

1.6 Sending Numbers

1.7 Sending Text

Unit 1B

Unit 1B: The Internet

Chapter 2: Inventing the Internet

1.8 The Internet

1.9 The Need for Addressing

1.10 Routers and Redundancy

1.11 Packets and Making a Reliable Internet

1.12 The Need for DNS

1.13 HTTP and Abstraction

1.14 The Internet and Society

Unit 2

Unit 2: Digital Information

2.1 Bytes and File Sizes

2.2 Text Compression

2.3 Encoding B&W Images

2.4 Encoding Color Images

2.5 Lossy vs Lossless Compression

2.6 Format Showdown

Unit 3

Unit 3: Into to Programming

3.1 The Need for Programming Languages

3.2 The Need for Algorithms

3.3 Creativity in Algorithms

3.4 Using Simple Commands

3.5 Creating Functions

3.6 Functions and Top-Down Design

3.7 APIs and Function Parameters

3.8 Creating Functions with Parameters

3.9 Looping and Random Numbers

3.10 Design a Digital Scene

Unit 4

Unit 4: Big Data and Privacy

4.1 What is Big Data?

4.2 Finding Trends with Visualizations

4.3 Check Your Assumptions

4.4 Data Innovations

4.5 Identifying People with Data

4.6 The Cost of Free

4.7 Simple Encryption

4.8 Encryption with Keys and Passwords

4.9 Public Key Crypto

4.10 Cybercrime

Unit 5A

Unit 5A: Building Apps

Chapter 1: Event-Driven Programming

5.1 Buttons and Events

5.2 Multi-Screen Apps

5.3 Building an App: Multi-Screen App

5.4 Controlling Memory with Variables

5.5 Building and App: Clicker Game

5.6 User Input and Strings

5.7 “if” Statements Unplugged

5.8 Boolean Expressions and “If” Statements

5.9 “if-else-if” and Conditional Logic

5.10 Building and App: Color Sleuth

Unit 5B

Unit 5B: Building Apps

Chapter 2: Programming with Data Structures

5.11 While Loops

5.12 Loops and Simulations

5.13 Introduction to Arrays

5.14 Building and App: Image Scroller

5.15 Processing Arrays

5.16 Functions with Return Values

5.17 Building and App: Canvas Painter