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.
NCAA Approved.
Course Outline
show details
hide details
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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
To take any of our courses, students must be familiar with opening a browser, navigating to a website, and joining a Zoom meeting.
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.
Students are required to have their camera on at all times during the class, unless they have an explicit exception approved by their parent or legal guardian.
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, webcam, and an external mouse. |
|
A high-speed internet connection with at least 15mbps download speed (check your Internet speed). |
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.