AP Computer Science Principles

AP Computer Science Principles

Learn how to code using Python through exercises, assessments, and projects, and gain vital data analysis and visualization techniques

  • Duration: 150 hours

  • Grades: 9-12

  • Level: Beginner


About this course

This course unveils the captivating world of Computer Science — where knowledge fuels innovation! Explore core principles and real-world applications in Artificial Intelligence and Data Science. Learn how to code using Python through exercises, assessments, and projects, and gain vital data analysis and visualization techniques. This course also facilitates discussions around several ethical implications of computing. This course prepares students to take the AP Computer Science Principles exam.


What you'll learn

  • Understand and apply computer science fundamentals to the real world

  • Use the Python programming language

  • Apply data analysis and visualization techniques

  • Think critically about computer science and AI applications including their impacts on society


How this course is structured

The course is divided into 9 total units. Each unit has several lessons. Within each lesson are instructional videos and practice activities. It will take no more than 60 minutes to complete each lesson. Learners will be asked to complete a creative project every 2-3 units.


Course Syllabus

Unit 1: Fundamentals of Communicating with a Computer
  • Lesson 1: Motivations & Applications

  • Lesson 2: Print Statements and Commenting

  • Lesson 3: Data Types

  • Lesson 4: Variables

  • Lesson 5: Bugs and Debugging

  • Lesson 6: User Input and Output


Unit 2: Decision Making with Computers using If-else Statements
  • Lesson 1: If Statements and Operators

  • Lesson 2: Decision Trees and Flow Charts

  • Lesson 3: If-else Statements

  • Lesson 4: Elif Statements

  • Lesson 5: Nested if statements


Unit 3: Expanding Capabilities with Functions and Libraries
  • Lesson 1: Functions

  • Lesson 2: Functions with Return Values

  • Lesson 3: Built-In Functions

  • Lesson 4: Using Modules and Libraries


Unit 4: Storing Data with Lists
  • Lesson 1: Creating Lists

  • Lesson 2: Indexing into Lists and Changing Elements in Lists

  • Lesson 3: Appending to and Removing from Lists

  • Lesson 4: Tuples and Nested Lists


Unit 5: Repetition and Iteration with Loops
  • Lesson 1: While Loops

  • Lesson 2: For Loops

  • Lesson 3: Looping over Strings and Lists

  • Lesson 4: Nested Loops

  • Lesson 5: Loops for Data Scientists


Unit 6: Storing Data with Dictionaries
  • Lesson 1: Creating a Dictionary

  • Lesson 2: Accessing Elements in a Dictionary

  • Lesson 3: Changing and Adding Elements in a Dictionary

  • Lesson 4: Complex Data Structures


Unit 7: Creating Custom Data Types with Classes
  • Lesson 1: Creating Classes

  • Lesson 2: Adding Behavior to Classes with Methods


Unit 8: Data Analysis Life Cycle
  • Lesson 1: What is the Data Analysis Life Cycle?

  • Lesson 2: Importing and Exploring Datasets

  • Lesson 3: Cleaning Datasets

  • Lesson 4: Uncovering Information from Data


Unit 9: Data Visualization
  • Lesson 1: Purpose of Data Visualizations

  • Lesson 2: Creating Bar Plots

  • Lesson 3: Creating Line Plots and Scatter Plots

  • Lesson 4: Using Visualizations to Find Trends in Data


Kernels of Curiosity

These mini-units cover concepts beyond programming that are critical to students' understanding of how computer science shows up in the real world in different ways, and the risks and limitations associated with it.

  • Kernel of Curiosity 1: Data under the Hood

  • Kernel of Curiosity 2: Theory of Computing

  • Kernel of Curiosity 3: Computer Systems and Networks

  • Kernel of Curiosity 4: Privacy and Ownership

  • Kernel of Curiosity 5: Community and Access