Skip to main content

AP® Computer Science Principles

Basic & On Demand

Enrollment for Basic and On Demand courses is open on a rolling basis.

Enroll Now

Plus

Teachers can use the complete Plus course curriculum for flexible instruction.

Request Course

Course Summary

Engage with computer science through foundational concepts including creative development, algorithms and programming, computer systems and networks, and the impact of computing. Employ reflection and research to explore computing innovations and systems and their potential impacts on society and your own life. Students design, evaluate, and apply computer science solutions to solve problems through the development of algorithms and programs. In this course, work on problem-solving activities and learn to incorporate abstraction into programs and use data to discover new knowledge. 

This course prepares students for the AP® Computer Science Principles exam.

Curriculum

This is a 2-semester course. We do not recommend taking both semesters simultaneously.

Unit 1: Intro to Computer Science Principles
  • 1.1 Intro to Computer Science Overview
  • 1.3 Introduction to Computer Science
  • 1.4 Computer History
  • 1.5 CS Impact on Our Lives
Unit 2: Algorithms
  • 2.1 Intro to Algorithms Overview
  • 2.2 Computational Thinking
  • 2.4 Algorithms
  • 2.5 Pseudocode
  • 2.6 Flowcharting
  • 2.10 What is Abstraction?
Unit 3: Data
  • 3.1 Data Overview
  • 3.3 Data Systems
  • 3.4 Data Abstraction
  • 3.6 Digital Data Representation
  • 3.7 Binary Number System
  • 3.10 Binary Search vs Linear Search
  • 3.11 Searching & Sorting
  • 3.12 ASCII
  • 3.13 Data Compression
  • 3.14 Data Compression and Storage
Unit 4: Programming with Scratch
  • 4.1 Programming with Scratch Overview
  • 4.3 Intro to Scratch
  • 4.4 Project Tutorial in Scratch
  • 4.8 Loops in Scratch
  • 4.10 Planning a Project in Scratch
Unit 5: Programming with App Lab
  • 5.1 Programming with App Lab Overview
  • 5.3 Intro to App Inventor
  • 5.4 Using a Tutorial to Build an App
  • 5.5 App Architecture
  • 5.6 Event Handling
  • 5.10 Boolean Logic
Unit 6: Software Development
  • 6.1 Software Development Overview
  • 6.3 Software Development Cycle
  • 6.4 Stages of Development
  • 6.5 Ethical Issues
  • 6.6 Ethical Use and Responsibility
Unit 7: Mock Create Performance Task
  • 7.1 Mock Create Performance Task Overview
  • 7.3 Mock Create Performance Task
Unit 8: Programming with Python
  • 8.1 Programming with Python Overview
  • 8.3 Intro to Python
  • 8.4 Programming with Python
Unit 9: Lists and More in Python
  • 9.1 Lists and More in Python Overview
  • 9.2 Strings in Python
  • 9.4 Lists in Python
  • 9.6 Reading Pseudocode
Unit 10: The Internet
  • 10.1 The Internet Overview
  • 10.3 History of the Internet
  • 10.4 Internet Systems
  • 10.5 Using HTML to Create a Webpage
  • 10.6 What is the Internet?
  • 10.7 Building a Network
  • 10.9 The Need for Addressing
  • 10.10 Routing & Redundancy
  • 10.11 Packets
  • 10.13 HTTPS & DNS
  • 10.16 Fault Tolerance
  • 10.17 Parallel and Distributed Computing
Unit 11: Cybersecurity
  • 11.1 Cybersecurity Overview
  • 11.2 Intro to Cybersecurity
  • 11.3 PIIs & Cookies
  • 11.4 Internet Privacy
  • 11.7 Digital Footprint
  • 11.8 Passwords
  • 11.9 Cybersecurity & Cryptography
  • 11.12 Cryptography
  • 11.15 Encryption  
Unit 12: Impact of Computing
  • 12.1 Impact of Computing Overview
  • 12.2 Machine Learning
  • 12.3 Training Data & Bias
  • 12.5 Algorithmic Bias
Unit 13: Create Performance Task Overview
  • 13.1 Create Performance Task Overview
  • 13.2 Expectations of CPT
  • 13.6 Explanation of Personal Project Reference Document Use
Unit 14: APCSP Exam Review
  • 14.1 APCSP Exam Review Overview
  • 14.2 APCSP Exam Strategies
  • 14.3 Big Idea 1 Creative Development
  • 14.5 Big Idea 2 Data
  • 14.7 Big Idea 3 Algorithms & Programming
  • 14.9 Big Idea 4 Computing Systems & Networks
  • 14.11 Big Idea 5 Impact of Computing
  • 14.13 Final APCSP Review