The material follows the code.org curriculum and is intended to give students a broad understanding of computer technology as it touches on many different topics such as the internet, digital information, programming, and big data. There are no formal prerequisites for this course, though the College Board recommends that students have taken at least Algebra 1.
The curriculum itself does not assume any prior knowledge of computing concepts before entering the course. It is intended to be suitable as a first course in computing though students with a variety of backgrounds and prior experiences will also find the course engaging and with plenty of challenges. While it is increasingly likely that students entering this AP course in high school will have had some prior experience in computer science (particularly with programming), that experience is equally likely to be highly varied both in quantity and quality.
Students completing this course should leave with a broadened understanding of computer science for use in diverse majors and careers. Those wanting to earn AP credit will submit one “performance task” to the College Board for grading, and will take a multiple-choice end-of-year exam. This course is not a prerequisite for AP Computer Science A, but AP Computer Science A is the logical follow-up class for students inspired to study computer science more deeply after completing this class.
Here is a brief summary of each of the units in the Code.org CSP curriculum.
Unit 1 - Digital Information- Students explore the way computers store and represent complex information like numbers, text, images, and sound. Students then learn the ideas behind real-world systems used to represent complex information. Later lessons focus on the challenges that arise from digitizing information, such as the need to compress it, or questions of intellectual property. The unit project emphasizes the profound impact digital information has on modern life.
Unit 2: The Internet- Students learn how the Internet works and discuss its impacts on politics, culture, and the economy. Through a series of activities that build on one another, students investigate the problems the original designers of the internet had to solve and then "invent” their own solutions.
Unit 3: Intro to App Design- Students design their first app while learning both fundamental programming concepts and collaborative software development processes. Throughout the unit, they learn how to use Code.org’s programming environment, App Lab, to design user interfaces and write simple event-driven programs.
Unit 4: Variables, Conditionals, and Functions- Students expand the types of apps they can create as they learn how to store information (variables), make decisions (conditionals), and better organize code (functions). The unit concludes with a three-day open-ended project in which students must build an app that makes a recommendation about any topic they wish.
Unit 5: Lists, Loops, and Traversals- Students learn to build apps that use and process lists of information. Later in the unit, students are introduced to tools that allow them to import tables of real-world data to help further power the types of apps they can make. At the conclusion of the unit, students complete a week-long project in which they must design an app around a goal of their choosing that uses one of these data sets.
Unit 6: Algorithms- Students learn to design and analyze algorithms to understand how they work and why some algorithms are considered more efficient than others. This short unit help students get an intuitive sense of how quickly different algorithms run and the pros and cons of different algorithms.
Unit 7: Parameters, Return, and Libraries- Students learn how to design clean and reusable code that can be shared with a single classmate or the entire world. In the beginning of the unit, students are introduced to the concepts of parameters and return, which allow for students to design functions that implement an algorithm. In the second half of the unit, students learn how to design libraries of functions that can be packaged up and shared with others. The unit concludes with students designing their own small library of functions that can be used by a classmate.
Unit 8: Create PT Prep- In this unit, students practice and complete the Create Performance Task (PT), starting with a series of activities that ensure they understand the College Board requirements of the Create PT, which they have practiced throughout the year. Subsequently, students are given at least 12 class hours in which to complete the Create PT.
Unit 9: Data- Students explore and visualize datasets from a wide variety of topics as they hunt for patterns and try to learn more about the world around them from the data. Students work with datasets in App Lab but are now asked to make use of a data visualizer tool that assists students in finding data patterns. They learn how different types of visualizations can be used to better understand the patterns contained in datasets and how to use visualizations when investigating hypotheses.
Unit 10: Cybersecurity and Global Impacts- Students learn about the privacy and security risks of many computing innovations and learn about the ways some of these risks can be mitigated.