AP® Computer Science Principles

  9-12 graders

  Credits awarded on transcript  

  Algebra I completed with B- or better

  UC A-G approved for [D] Science credits

  90 minutes per class

  8-10 students per class

  Twice per week over 36 weeks

  1049 per student, per semester  

  Self paced instructor-guided  

  Online community

  Office hours on-demand

  749 per student, per semester  

  4 hours per day (summer)  

  8-10 students per class

  5 days per week 2, 4, or 6 weeks

  389 per student, per week  

AP® Computer Science Principles (AP CSP) is an introductory-level course meant for all students, regardless of whether they intend to pursue a major in a STEM discipline or not. You don't need an advanced understanding of programming. One year studying Computer Science will help students explore careers they may not have considered open to them. Students who take AP CSP —

  • Gain confidence in problem-solving abilities
  • Understand better how computers really work
  • Broaden their understanding of how computers impact every career and discipline
  • Stretch their creativity by bringing their own ideas to life
  • Learn skills that they can apply to a wide range of fields and interests
  • Learn new ways to help their community through technology

This course adequately covers the requirements of the AP® CSP curriculum and allows students to go further in more advanced topics that are outside of AP CSP requirements if they have interest and time.

This course covers a broad range of foundational topics such as digital information, the Internet, programming, algorithms, big data, cybersecurity, and the societal impacts of computing. It provides students with the essential knowledge and skills needed to work with modern computing throughout their lives. Not only do we show students how our current computational world was built from the first computer through the Internet, we also develop the foundational skills that they will need to build the next generation of computational tools. Students will develop their ability for computational solution design, algorithms and program development, abstraction in program development, code analysis computing innovations, and responsible computing.

The course provides its own browser-based Integrated Development Environment (IDE) that the students will use to create and run their programs. It encompasses an editor and compiler, a custom graphics package, and an autograder that is capable of grading not only textual problems and solutions, but also a broad range of graphics problems and solutions.


Students will be provided access to lessons and practice AP exams through AP Classroom.
  Authorized by the College Board to use the AP® designation.
  University of California A-G approved for recommended third year of [D] Science credits.

Course Outline

    hide details
  1. Digital Information
    This unit explores the technical challenges and questions that arise from the need to represent digital information in computers. Students learn how complex information like numbers, text, images, and sound are represented, how compression works, the importance of the binary number system, and the broader social impacts of digitizing the world's information.
  2. The Internet
    This unit reveals how the Internet was designed to connect billions of devices and people to one another. Students will learn how the different protocols of the Internet work and actually build them using an Internet Simulator. Then they will consider the impacts the Internet has had, both good and bad, on modern life. Students will be able to work with the seven different layers in the Open System Interconnection (OSI) model.
  3. Intro to Python Programming
    This unit is an introduction to programming and app design with a heavy focus on important skills like debugging, pair programming, and user testing. Students learn how to design user interfaces and write event-driven programs using the Python programming language and a graphics library so they can explore the nuances of programming in future units.
  4. Functions, User Input, and Conditionals
    Students are introduced to functions, conditionals, and user input followed by editing starter code and solving engaging exercises. The unit concludes with an open-ended project in which students must create a program that implements the new concepts of functions and conditionals while reacting to user generated mouse events.
  5. Data Structures and Loops
    Students will learn about two key programming concepts - data structures and loops. We introduce students to a basic data structure called a group that allows students to combine shapes into one object and manipulate it as if it were an individual object. Students learn how to leverage loops to iterate through the group.
  6. Algorithms
    An exploration of how computer scientists design algorithms to solve problems and how they analyze the speed of different algorithms. Students will learn about the concept of algorithmic efficiency, their applications in modern computing, limits of algorithms, and how parallel and distributed algorithms can help solve more complex problems with larger data sets.
  7. Complex Conditionals and Libraries
    Students will add more precise and nuanced control to their programs through complex conditionals and new user input methods using the keyboard. Students will create programs that include automation by using step events to automatically move parts of their programs. We explore important libraries, including the math library to create more realistic programs and games.
  8. Creative Coding Project
    Students will synthesize all of the knowledge and skills they have learned into a project that demonstrates their mastery. Students will be guided through the development process, from idea to implementation. Students will document their thinking throughout so that they can present their project process and output in detail.
  9. Data
    Students learn how data analysis helps turn raw data into useful information about the world. This starts with identifying a quality dataset, filtering, cleaning, and organizing the data. Students will use data visualization to find patterns and learn how data analysis is used in contexts like machine learning for making decisions. This includes building bar charts, histograms, crosstab and scatter charts.
  10. Cybersecurity and Global Impacts
    Students will learn how computing innovations have impacted our world in beneficial and harmful ways, how data can pose a threat to our privacy and security and the ways that encryption, data policies, and other techniques are used to protect it. They will explore security risks like phishing, keylogging, malware, and other cybercrime methods. Throughout the unit students participate in a ‘school of the future’ conference where they will form a team and make a proposal for how best to improve school life with computing innovations.

Summer of Code
    see detailed summer schedule

Our technology requirements are similar to that of most Online classes.

A desktop or laptop computer running Windows (PC), Mac OS (Mac), or Chrome OS (Chromebook).
Students must be able to run a Zoom Client.
A working microphone, speaker, and webcam.
A high-speed internet connection with at least 10mbps download speed (check your Internet speed).

Students must have a quiet place to study and participate in the class for the duration of the class. Some students may prefer a headset to isolate any background noise and help them focus in class.

Most course lectures and content may be viewed on mobile devices but programming assignments and certain quizzes require a desktop or laptop computer.

We encourage (but do not require) students taking AP® courses to take the AP Exams administered in May by the College Board. Being an Online School, we do not conduct AP® Exams ourselves yet. See the College Board's website to find a local location near you, if your school doesn't offer these exams.

This course includes several timed tests where you will be asked to complete a given number of questions within a 1-3 hour time limit. These tests are designed to keep you competitively prepared but you can take them as often as you like. We do not proctor these exams, neither do we require that you install special lockdown browser.

In today's environment, when students have access to multiple devices, most attempts to avoid cheating in online exams are symbolic. Our exams are meant to encourage you to learn and push yourself using an honor system.

We do assign a grade at the end of the year based on a number of criteria which includes class participation, completion of assignments, and performance in the tests. We do not reveal the exact formula to minimize students' incentive to optimize for a higher grade.

We believe that your grade in the course should reflect how well you have learnt the skills, and a couple of timed-tests, while traditional, aren't the best way to evaluate your learning.

Top