ProjectStem AP Computer Science Principles Syllabus 2021
ProjectStem AP Computer Science Principles Syllabus 2021
Curricular Requirements
Introduction
AP Computer Science Principles (AP CSP) is a full-year, rigorous course that introduces students
to the foundational concepts of computer science and explores the impact computing and
technology have on our society. The course covers a broad range of foundational topics
including: programming, algorithms, the Internet, big data, digital privacy and security, and the
societal impacts of computing.
Project STEM developed this course in partnership with the University of Texas at Austin’s
UTeach Institute. This custom course combines the esteemed UTeach CS Principles curriculum
with additional features and tools specific for a technology-driven student-centered curriculum,
including: instructional lesson videos and slides, worked practice problems, unit project
scaffolding, student activity and task examples and grading rubrics, enhanced online and offline
question banks with College Board-style questions, annotated explanations for all assessment
questions, and a practice mini performance task. Additionally, UTeach’s lesson plans have been
substituted for lesson and unit guides, since they have been revised to focus less on
teacher-driven directives for students (“say this,” “do this,” etc.) and more on teaching tips and
strategies.
All schools using Project STEM’s AP CSP course should use this syllabus.
4
Course Overview
Prerequisites
The College Board suggests students successfully complete a first year high school Algebra
course prior to enrolling in AP CSP. An Algebra course will provide a strong foundation in
problem solving, basic linear functions, composition of functions, and the Cartesian (x,y)
coordinate system. These skills and topics are essential for student facility in this course. For
further preparation, we recommend students complete our Computer Science Python
Fundamentals course prior to taking this course. That course introduces students to the
fundamentals of computing, providing a foundation on which this course can build.
The College Board adheres to an open enrollment policy for this course, meaning any student
that is willing and academically prepared can participate in the course.
Pedagogical Approach
Project STEM’s AP CS Principles course follows the blended learning model. It takes a
student-centered approach powered by technology to help realize the goal of high achievement
for all students. The course promotes student engagement, independent thought and
interactive collaboration with peers. Student-centric lessons, activities and assessments are
paired with augmentative teacher-centric lesson, activity and task guides and reporting to
empower teachers to empower students. Additionally, teacher and student forums with
moderation and input from Project STEM staff and team of teaching assistants provide dynamic
community and support.
Programming Requirements
The coding languages Scratch and Python are both used in this course. Scratch is a free
block-based programming environment that is accessible enough for beginners, yet can support
the development of advanced algorithms used in more complex games and applications. Python
is a text-based language with easy to read and write syntax - perfect for beginning
programmers.
5
Course Goals
Project STEM’s AP CSP course fully addresses the College Board’s AP Computer Science
Principles Curriculum Framework. The framework defines two through-course curricular
requirements: six “computational thinking practices” and five “big ideas.” Additionally, the
framework describes in detail what students should be able to do, know, and retain by the end
of the course with three types of expressions: Enduring Understandings, Learning Objectives,
and Essential Knowledge Statements. A basic overview of each of these items is provided
below, and we encourage instructors to read more about them in the AP Computer Science
Principles Curriculum Framework.
Big Ideas
Big Idea 1 (CRD) Big Idea 2 (DAT) Big Idea 3 (AAP) Big Idea 4 (CSN) Big Idea 5 (IOC)
Creative Data Algorithms and Computing Systems Impact of
Development Programming and Networks Computing
Enduring Understandings
Enduring Understandings (EUs) describe the concepts students should understand after going
through this course. The goal is for Learning Objectives and Essential Knowledge Statements to
build Enduring Understandings.
Learning Objectives
Learning Objectives (LOs) articulate what students should be able to do by the end of the
course. Each learning objective corresponds to one of the Five Big Ideas and one part of a
computational thinking practice. Both the multiple choice exam and through-course
performance task test students' mastery of these learning objectives.
The AP Exam
The AP Exam will test students on their understanding of the five big ideas through a
multiple-choice exam and one through-course performance task. Together, these components
will be used to calculate the AP score (on a 1-5 scale).
Performance Task
The performance task in this course is called the Create Task. This task functions as a project
that students must complete independently and submit online prior to taking the
multiple-choice portion of the exam. The Create Task is worth 30% of a student’s overall AP
score. In this task, students will create their own program. Students will submit a video of their
program running and a written response describing how their program works. The students
must be given a minimum of 12 hours in class to work on it.
Students are required to submit their performance task via the College Board’s online Digital
Portfolio by the end of May, 2022 at 11:59 p.m. ET.
7
Course Materials
Project STEM’s AP Computer Science Principles has an introductory unit, six instructional units,
a mini performance task module, and a final AP review unit. Each is strategically designed to
prepare students for the AP CSP Exam. The course units consist of daily lessons, instructional
videos, lesson slides, lesson activities, code-along exercises, projects, vocabulary reviews, AP
test preparation, quizzes, and tests.
Student Lessons
The student lessons are typically composed of the following components:
● Introduction: a high-level overview of the lesson.
● Objectives: a list of what students will learn and do during the lesson.
● Instructional Video(s): one or more explanatory or demo videos taught by an expert
computer science teacher, some of which include code-along activities. Most videos are
accompanied by corresponding downloadable slides for review or note taking.
● In-Lesson Activities: these activities take place during the lesson, prior to the graded
exercises, such as a class discussion, interactive, or code-along activities.
● Summary: a text version of the key concepts in the lesson.
● Vocabulary: a list of terms and definitions for the lesson.
● Lesson Exercises: one or more graded exercises that ask students to apply or extend the
concepts in the lesson. Lesson exercises include coding activities, discussions, research,
strategic games, computational practices (non-coding), and more. The variety of formats
and tasks prepare students for the diverse questions and tasks on the AP CSP Exam.
● AP-Style Practices: a practice activity where students complete a set of questions in the
format and style of the AP exam.
Other Assignments
In addition to the daily lessons and exercises, the AP CSP curriculum also offers other types of
assignments for students.
● Vocabulary Practices: Each unit has a vocabulary practice that helps students to
reinforce the unit’s keywords. These practices are game-based and allow for several
different types of practice formats like matching and flashcards. The vocabulary practices
are not a graded assignment.
● Big Picture Exercises: classroom investigations or discussions that examine the cultural
and societal impact of emerging technologies.
● Unit Projects: Five of the six units include an extended project that challenges the
students to apply various concepts from the current and past units in a new or more
complex way. These projects demand a high level of critical thinking and problem
solving.
● Unit Review Activities: Each unit has an autograded review activity where students
complete a set of ~20 multiple choice questions to prepare for the unit test.
● A Mini Performance Task: The course includes a practice performance task that helps
prepare students for the official AP CSP Create Task. This is a multi-day project that
mirrors the types of tasks and activities that students must complete to meet the
College Board requirements for the official task.
8
Assessments
The AP Computer Science Principles course offers two types of assessments: quizzes and tests.
● Quizzes: Each unit has two short quizzes that act as a checkpoint for understanding.
These quizzes range from 4-7 multiple choice questions with shuffled answers.
● Tests: Each unit has a summative test at its conclusion. The tests are always 20 multiple
choice questions with shuffled answers.
Grading
For Project STEM’s AP CSP course, there are several types of formative and summative
assessments, all intended to prepare students for the end-of-year 70-question multiple choice
exam (70% of the overall AP score) as well as the through-course Create performance task (30%
of the overall AP score).
Teacher Sidebar
The Teacher Sidebar, which is located within a teacher’s version of the student course, contains
several types of resources that will help you in facilitating the course, including:
● Lesson guides that detail the lesson objectives, lesson components, as well as indicators
of key points to emphasize and common misconceptions
● Supplemental resources, such as worksheets or unit project rubrics
● Alternative assessments, such as paper-based and alternate versions of quizzes and tests
for each unit
● Answer keys, including annotated solutions to quizzes and tests
9
Course Sequencing
The year-long curriculum directly addresses the College Board’s AP Computer Science Principles
curriculum framework. It has been carefully designed to teach students the core skills for 1)
creating and using computational tools 2) applying logical reasoning and creative problem
solving and 3) recognizing real-world applications for digital technology. As described above, it is
comprised of an introductory unit, six instructional units, one mini module for performance task
preparation, and a final unit focused on the course’s AP exam. The curriculum also provides one
window of time for students to complete the required Create Task.
Content Overview
Unit 0: Course Introduction Big Ideas:
Enter the world of computer science by learning about the field itself and the goals of CRD, AAP, IOC
this AP-level course.
Unit 0 Schedule
Topic Lesson
Course Structure
Honor Code
Unit 0 Topics
Course Context
○ Students will examine and discuss the motivations behind a number of high-profile individuals in
the field of programming.
○ Students will discuss the benefits of programming as a tool and a profession.
○ Students will discuss the impact computing has on society, business, and the economy.
○ Students will examine the ideas of computational thinking and computational artifacts.
Course Resources
○ Students will become familiar with the resources on the Project STEM platform.
Self-Evaluation
○ Students will consider their relationship with computer science and programming.
11
There are no major projects in this unit, but there are several post-lesson opportunities for students to
apply the iterative development process and basic programming concepts.
Unit 1 Schedule
Topic Lesson
Languages
Idea to Execution
Defining Variables
Applying Variables
12
Unit 1 Topics
Program Development
○ Students will examine strategies for approaching large-scale problems.
○ Students will explore the non-linear approach to solving problems with the iterative
development process.
○ Students will identify a number of common features of algorithms, including sequencing,
selection, and repetition.
○ Students will design and evaluate text-based algorithms.
○ Students will examine the need for clarity and precision in communicating an algorithmic
solution to a problem.
○ Students will examine the shortcomings and ambiguities of natural languages.
○ Students will identify the elements of clear communication, including well-specified grammar,
vocabulary, and syntax.
○ Students will analyze the need for artificial programming languages.
○ Students will compare high-level languages with low-level languages.
○ Students will examine the process in which a program is written in a high-level language,
compiled into a low-level language, loaded into memory, and then executed by a processor.
Big Picture
○ Students will examine the benefits of working collaboratively.
Visual Programming
○ Students will utilize a graphical editor to read, construct, and execute dynamic programs.
○ Students will examine, modify, and execute programs developed by others.
○ Students will examine how well-specified behavior of objects can be constructed through
sequential actions and operations.
○ Students will examine a number of common programming errors.
○ Students will explore a number of common debugging strategies.
○ Students will develop solutions for correcting common programming errors.
Program State
○ Students will write programs that incorporate dynamic, user-driven, keyboard controls and
input.
○ Students will examine how the dynamic state of an object or program can be stored and
changed using variables.
○ Students will analyze the role of clear, descriptive names for objects, behaviors, variables, and
other identifiers in maintaining the readability of code.
○ Students will analyze and evaluate the correctness of their programs.
Unit 2: Programming
This unit focuses on the three main control structures utilized within algorithms and programs:
sequencing, selection, and iteration. Students first examine these structures conceptually, and then learn
how to formally construct and evaluate them in Scratch and AP-style Pseudocode. In doing so, they hone
their programming abilities and become familiar with the importance of precise commands and
well-structured logic. Building on this knowledge, students explore how abstraction can be applied to
algorithmic solutions using procedures, and examine 1) how algorithmic solutions should be efficient
and help programs scale and 2) what happens when a problem is not able to be solved with an
algorithm. At the end of the unit, students get a glimpse of how design documentation for hardware
components employs computational logic and abstraction just like programming.
There is one major project in this unit: the Password Generator Project.
Unit 2 Schedule
Topic Lesson
Defining Iteration
Applying Iteration
Procedural Procedures
Abstraction
Unit 2 Topics
Control Structures
○ Students will examine a number of common features of algorithms, including sequencing,
selection, and repetition.
○ Students will examine how well-specified behavior of objects can be constructed through
sequential actions and operations.
○ Students will examine the uses of selection statements in programming.
○ Students will analyze the differences between simple selection and complex, nested selection
statements.
○ Students will examine the use of the Boolean operators "AND," "OR," and "NOT" in constructing
complex conditional statements.
○ Students will examine the uses of iteration statements in programming.
○ Students will consider how to make a sequence of events more efficient with iteration
statements.
○ Students will combine sequencing, selection, and repetition structures alongside programming
constructs like user input and variables to create computational artifacts.
Coding Skills
○ Students will examine how pseudocode can outline algorithmic processes.
○ Students will read, execute, and construct algorithms in AP-style pseudocode.
Procedural Abstraction
○ Students will compare the methods and relative efficiencies of different algorithms.
Big Picture
○ Students will examine the implications of Moore's Law on the research and development of new
and existing technologies.
Hardware Abstraction
○ Students will explore the logical processes implemented in hardware design documentation.
15
Unit 3 Schedule
Topic Lesson
Digital Digitization
Approximations
Analog vs. Digital Data
Processing a List
Sorting a List
Lists in Pseudocode
Unit 3 Topics
Binary Encoding of Information
○ Students will examine how numerical values are represented using different bases, including
decimal and binary.
○ Students will explore methods of converting values from decimal to binary and binary to
decimal.
○ Students will examine the exponential relationship between the number of digits and their range
of representable values.
○ Students will examine how alphanumeric characters and symbols may be represented using
ASCII and Unicode character mappings.
○ Students will analyze the differences in state space between ASCII and Unicode standards.
○ Students will explore how the interpretation of binary data is dependent upon its intended
format and use, including base-64, bitmaps (*.BMP), plaintext (*.TXT), audio (*.MP3), etc.
Coding Skills
○ Students will construct a Scratch program that simulates candles on a birthday cake being lit so
as to show the user's age in binary.
Digital Approximations
○ Students will examine the implications of variable-width encodings (e.g., Morse code) versus
fixed-width encodings (e.g., Baudot code).
○ Students will explore ways in which natural phenomena may be represented digitally.
○ Students will analyze the extent to which digital approximations accurately reflect the reality
that they represent.
○ Students will analyze the differences between discrete (digital) and continuous (analog)
representations of natural phenomena.
○ Students will examine the social implications of the ease with which perfect digital copies can be
made.
Big Picture
○ Students will examine and discuss the legality of reselling "used" digital music.
Lists
○ Students will examine the use of lists as ordered data structures that may contain multiple
values.
○ Students will investigate the use of index values to represent the position of an item in a list.
○ Students will analyze the implications of accessing an index position beyond the bounds of a list.
○ Students will investigate common operations for processing elements of a list, including
searching for an element, removing an element, swapping the positions of two elements, or
sorting an entire list into ascending or descending order.
○ Students will examine the implications of case-sensitivity on ordered lists of strings.
○ Students will consider how lists can appear in pseudocode.
18
After completing this activity, students will be prepared for the Create Task later in the course. [P3]
19
There is one major project in this unit: the Image Filter Project.
Unit 4 Schedule
Topic Lesson
Procedural Abstraction
Encoding Schemes
Digital Manipulation
Audio Compression
Unit 4 Topics
Introduction to Python
○ Students will explore the capabilities of a text-based programming language (Python).
○ Students will compare and contrast the programming capabilities of a visual programming
language (Scratch) with those of a text-based programming language (Python).
○ Students will understand the importance of using proper punctuation and syntax when coding in
a text-based programming language.
Control Structures
○ Students will write code using common programming constructs like conditional if() for selection
and while() loops for iteration.
○ Students will use boolean, relational and conditional expressions.
Abstraction
○ Students will write code using data abstraction (lists).
○ Students will create and use procedural abstractions in order to make their programs more
readable and versatile.
Image Manipulation
○ Students will examine the structure of raster images as compositions of individual pixels.
○ Students will explore various methods of representing color, including RGB, CMYK, and HSV.
○ Students will explore the various colors that can be produced by the combination of different
ratios of red, green, and blue light.
○ Students will perform base conversions for decimal, binary, and hexadecimal number systems.
○ Students will modify the color channels of pixels in an image to produce a variety of effects.
○ Students will design algorithms for modifying the pixels in an image in prescribed ways to create
custom image filters.
○ Students will explore the difference between lossy and lossless encoding schemes of several
common image file formats.
Big Picture
○ Students will explore the positive and negative consequences of digitally altering images.
○ Students will discuss the ethics of digitally manipulating images, especially in the context of
journalism.
○ Students will discuss the issues related to intellectual property.
○ Students will explore the limitations and rights associated with a number of common licenses,
including Creative Commons.
Audio Manipulation
○ Students will analyze the differences between analog and digital sound.
○ Students will explore the roles that sampling rate and bit depth play in determining the quality of
digitized sound.
○ Students will explore methods of programmatically generating digital audio.
○ Students will explore methods of programmatically altering and modifying digital audio by
adjusting volume, pitch, and sampling rate.
○ Students will explore the methods and effects of compression algorithms in reducing the
amount of data needed to represent an audio sample.
21
Topic Tasks
The final activity described above is the one major project in this unit: the TEDxKinda Project.
Unit 5 Schedule
Topic Lesson
Extraction
Data Breaches
Data Mining
Supplemental Clustering
Data Analysis
Anomaly Detection
Regression
Classification
Automatic Summarization
24
Unit 5 Topics
Data Science
○ Students will relate the impact of computing to ubiquitous and large-scale data processing.
○ Students will explore the ways that patterns within large data sets can be used in a predictive
manner.
○ Students will discuss the risks and benefits of drawing conclusions from patterns found in large
data sets.
○ Students will combine visuals, content knowledge, and interaction to create a dynamic
infographic that clearly communicates discrete information about a data set.
○ Students will identify the characteristics that differentiate usable data from unusable data.
○ Students will identify the characteristics that differentiate useful data from useless data.
Data Aggregation
○ Students will explore the purposes of various processing tasks, including collection, knowledge
extraction, and data storage.
○ Students will identify multiple techniques for data collection, both on and off of the Internet.
○ Students will analyze the characteristics of structured and unstructured data.
○ Students will extract structured information from unstructured data.
○ Students will examine methods of extracting information from online sources, including
structured and unstructured search engines, screen scrapers, and spiders.
○ Students will explore the basic features and functionality of modern relational databases.
○ Students will debate the implications of large-scale data storage and data persistence on privacy
and utility, including the costs associated with each.
Big Picture
○ Students will apply the technique of crowdsourcing to a novel data collection problem.
○ Students will examine the security risks and responsibilities assumed by companies that collect
and store sensitive personal data.
○ Students will examine the causes and impact of data breaches involving sensitive personal data.
There is one major project in this unit: the Exploring Computing Innovations Project.
Unit 6 Schedule
Topic Lesson
Cloud Computing
Big Picture The Digital Divide
Communication Protocols
Internet Protocols
Cryptography Encryption
Cybersecurity Cybersecurity
Internet of Things
Unit 6 Topics
Big Picture
○ Students will examine computing innovations and consider their impact on the economy, society,
culture and environment.
○ Students will investigate the socioeconomic causes and effects related to the digital divide.
○ Students will discuss the benefits and risks of open versus closed platforms.
Implications of Computing
○ Students will explore the ways that innovations in digital technology can impact the lives of
individuals and communities.
○ Students will analyze the role that digital technology plays in their everyday lives.
○ Students will analyze the role that digital technology plays in their social communications and
interactions.
○ Students will explore the impact that instant access to global search, news, and information has
had on individuals and communities.
○ Students will analyze the benefits and risks of cloud computing.
The Internet
○ Students will examine the overall design and architecture of the Internet.
○ Students will explore the role of servers, routers, gateways, and clients.
○ Students will examine the domain name system and its role in network routing.
○ Students will examine a number of standard network protocols, including IP, TCP, UDP, SMTP,
HTTP, and FTP.
○ Students will investigate the series of components and events that are involved in the
transmission of an email or SMS text over the network.
○ Students will investigate the series of components and events that are involved in the
transmission of an HTML request from a Web browser.
Cryptography
○ Students will identify the needs and applications of cryptography in our digital world.
○ Students will encode and decode messages using common cryptographic techniques.
○ Students will examine the mathematical foundation of cryptography.
○ Students will analyze the differences between symmetric (single-key) encryption and asymmetric
(public key) encryption.
○ Students will examine the features of open and closed platforms and consider the role
cryptography plays in systems security.
Cybersecurity
○ Students will examine a number of common threats to cybersecurity, including distributed denial
of service attacks (DDoS), phishing, viruses, and social engineering.
○ Students will identify the needs for robust cybersecurity.
○ Students will analyze the software, hardware, and human components of cybersecurity.
○ Students will analyze the function and effectiveness of common cybersecurity solutions,
including antivirus software and firewalls.
28
Interconnectedness in Computing
○ Students will investigate the origins and applications of the World Wide Web.
○ Students will analyze the impact of hyperlinked documents on how individuals find, acquire, and
learn new information.
○ Students will analyze the legal, social, and commercial impact that the World Wide Web has had
on society.
○ Students will examine the roles and applications of distributed computing.
○ Students will investigate and extrapolate from recent advances in computing to make predictions
about the capabilities of future technologies.
○ Students will analyze how future technologies might impact individuals and societies.
○ Students will examine the legal and ethical implications of autonomous technology.