AP® Computer Science Principles: Unit 1
AP® Computer Science Principles: Unit 1
AP Endorsed
Code.org is recognized by the College Board as an endorsed provider of curriculum and
professional development for AP® Computer Science Principles (AP CSP). This
endorsement affirms that all components of Code.org CSP’s offerings are aligned to the
AP Curriculum Framework standards, the AP CSP assessment, and the AP framework for
professional development. Using an endorsed provider affords schools access to
resources including an AP CSP syllabus pre-approved by the College Board’s AP Course
Audit, and officially recognized professional development that prepares teachers to teach AP is a trademark registered and
owned by the College Board.
AP CSP.
Here is a brief summary of each of the units in the Code.org CSP curriculum.
Learn how the multi-layered systems of the internet function as you collaboratively solve
Unit 1:
problems and puzzles about encoding and transmitting data, both ‘unplugged’ and using
The Internet
Code.org’s Internet Simulator.
Unit 2: Learn how computers store complex information like images, video, and sound. Use
Digital Information interactive widgets to explore concepts like image representation and compression.
Learn the JavaScript language with turtle programming in Code.org’s App Lab coding
Unit 3:
environment. Learn general principles of algorithms and program design that apply to any
Intro to Programming
programming language.
Unit 4: Research current events at the intersection of data, public policy, law, ethics, and societal
Big Data and Privacy impact. Learn the basics of how and why modern encryption works.
Explore PT Prep Practice and then complete the Explore Performance Task (PT).
Continue learning how to program in the JavaScript language. Use Code.org’s App Lab
Unit 5:
environment to create a series of applications that live on the web. Each app highlights a
Building Apps
core concept of programming.
Create PT Prep Practice and then complete the Create Performance Task (PT).
Post AP: Learn how computers allow data to be collected, cleaned, analyzed, and visualized in
Data Tools order to find patterns and draw conclusions.
1
Code.org Computer Science Principles Syllabus and Overview
The curriculum assumes no prior knowledge of computing and is written to support both students and teachers
who are new to the discipline. Activities are designed and structured in such a way that students with diverse learning
needs have space to find their voice and to express their thoughts and opinions. The activities, videos, and computing
tools in the curriculum strive to have a broad appeal and to be accessible to a student body diverse in background,
gender, race, prior knowledge of computing, and personal interests.
Broadening student participation in computer science is a national goal, and effectively an issue of social justice.
Motivational marketing messages only get you so far. We believe that the real key to attracting students to computer
science and then sustaining that growth has as much to do with the teacher in the classroom as it does with anything else.
The real “access” students need to computing is an opportunity to legitimately and meaningfully participate in every
lesson regardless of the student’s background or prior experience in computing coming into the course. For example, the
course begins with material that is challenging but typically unfamiliar even to students who have some prior experience
or knowledge of computer science.
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. It is for this reason that the
course does not start with programming, but instead with material that is much more likely to put all students on a level
playing field for the first few weeks of class. Read more about this below in the description of Unit 1.
2
Code.org Computer Science Principles Syllabus and Overview
Teachers of this course should be especially interested in creating and nurturing equitable, engaging classrooms. The
work of providing an equitable classroom doesn't start or stop with curriculum -- the classroom environment and teaching
practices must also be structured such that all learners can access and engage with the material at a level that doesn’t
advantage some at the expense of others. Equitable teaching practices are inextricably linked and woven into the
design and structure of our lessons, and in some cases the reason for their existence.
The curriculum provides a number of resources for the teacher, such as assessment support, computing tools that are
designed for learning specific concepts, and the programming environment, App Lab. These resources have been
specifically curated for each step of each lesson, which allows the teacher to act in the role of facilitator and coach when
addressing unfamiliar material, rather than having to worry about presenting or lecturing.
3
Code.org Computer Science Principles Syllabus and Overview
4
Code.org Computer Science Principles Syllabus and Overview
While the course features many “unplugged” activities designed to be completed away from the computer, daily access to
a computer is essential for every student. It is not required that students have access to internet-connected computers at
home to teach this course. But because almost all of the materials are online, it is certainly an advantage. PDFs of
handouts, worksheets and readings are available on the course website.
Videos
● Student videos - including tutorials, instructional and inspirational videos
● Teacher videos - including lesson supports and pedagogical tips and tricks
Computational Tools
● Widgets for exploring individual computing concepts
● Internet Simulator - Code.org’s tool for investigating the various “layers” of the internet
● App Lab - Code.org’s JavaScript programming environment for making apps
Beyond printing, a some lessons call for typical classroom supplies and manipulatives such as:
● Student Journal
● Poster paper
● Markers
● Post-it notes
● Graph paper, etc.
There is a complete materials list in the curriculum front matter. Besides printing costs, all other materials are highly
suggested, and are low cost (cups, string, playing cards, etc.).
5
Code.org Computer Science Principles Syllabus and Overview
Suggested Text
Blown to Bits http://www.bitsbook.com/
This course does not require or follow a textbook. Blown to Bits is a book that can be accessed online free of
cost. Many of its chapters are excellent supplemental reading for our course, especially for material in Units 1,
2 and 4. We refer to chapters as supplemental reading in lesson plans as appropriate.
AP® Assessment
The AP Assessment consists of a 74-question multiple choice exam and two “through-course” assessments called the AP
Performance Tasks ( PTs). T
he tasks can be found in the official AP CS Principles Exam and Course Description.
● Explore Performance Task (p. 108)
● Create Performance Task (p. 113)
6
Code.org Computer Science Principles Syllabus and Overview
These Big Ideas and Practices are not intended to be taught in any particular order, nor are they units of study in and of
themselves. The Big Ideas overlap, intersect, and reference each other. The practices represent higher order thinking
skills, behaviors, and habits of mind that need to be constantly visited, repeatedly honed, and refined over time.
Unit Overviews
On the pages that follow are more in-depth prose descriptions of each unit of study which explain the topics covered, what
students will be doing and how the lessons build toward the Enduring Understandings i n the framework.
We also show how each lesson maps to the CSP Framework for the Enduring Understandings as well as the specific
Learning Objective and Essential Knowledge statements. For example you might see a table like:
See the CSP Framework document for listings of all the Enduring Understandings.
Each unit also highlights a particular lesson, project or assignment of interest, explaining what students do and showing
which learning objectives and computational thinking practices that particular assignment addresses.
7
Code.org Computer Science Principles Syllabus and Overview
Chapter 1 of the unit begins with a consideration of what is involved in sending a single bit of information from one place
to another. In the Sending Binary Messages lesson students work with a partner to invent and build their own bit-sending
“device.” Complexity increases as students adapt their machines to handle multi-bit messages and increasingly complex
information. Students use an Internet Simulator that allows them to develop and test binary encodings and communication
protocols of their own invention.These should be an illustrative set of activities that helps build toward the Enduring
Understandings that: A variety of abstractions built upon binary sequences can be used to represent all digital
data (2.1) and that characteristics of the Internet influence the systems built on it (6.2).
8
Code.org Computer Science Principles Syllabus and Overview
9
Code.org Computer Science Principles Syllabus and Overview
10
Code.org Computer Science Principles Syllabus and Overview
11
Code.org Computer Science Principles Syllabus and Overview
To start the unit we use unplugged activities to introduce algorithms and highlight the need for a programming language to
implement them on a computer. These activities will involve the whole class working in small groups to solve problems
using simple manipulatives like playing cards or blocks. We want to draw connections here between the rules of Internet
protocols developed earlier in the course, in which students acted as the computer processing the information. Many of
the structured and systematic thinking that goes into developing communication protocols feels similar to designing
algorithms - ultimately you’re designing a series of steps to solve a problem that a machine could follow. We want to
establish the dual Enduring Understandings that algorithms are precise sequences of instructions for processes that
can be executed by a computer and are implemented using programming languages (4.1) and people write
programs to execute algorithms (5.2).
Students are introduced to the App Lab programming
environment by writing programs to control a “turtle”, an imaginary Unit 3: Practice PT
character that moves around the screen and can draw. In the
lessons students learn features of the JavaScript language by
Highlight
going through a series of short tutorials to familiarize students Practice PT: Design a Digital Scene
with the environment, and new concepts. There is a heavy In this project students work with a small team
emphasis on writing procedures (functions in JavaScript), and to create a digital scene with turtle graphics.
using top-down program design - a process by which a large They plan the scene together, code the parts
problem is broken down into smaller and more manageable parts. separately and bring them together to make a
These lessons highlight the way multiple levels of abstraction whole. An important focus of this project is on
are used to write programs (2.2). how teams of programmers work together.
Students reflect on their experience in a way
Along the way students create more and more sophisticated that is similar to the Create performance task. A
drawings culminating in the Practice PT: Design a Digital Scene heavy programming emphasis is on writing
in which small groups must collaborate to design and share code functions (procedures) that can be easily
to create a small vignette created with turtle art. Through the incorporated into others’ code.
lessons and PTs we want to build toward some Enduring
Understandings that creative development can be an essential
process for creating computational artifacts (1.1) and that Learning Objectives Addressed:
collaboration and computing enables people to use creative Creativity: 1.1.1 [P2], 1.2.1 [P2], 1.2.4 [P6],
development processes to create computational artifacts for 1.3.1 [P2]
creative expression or to solve a problem (1.2). Abstraction: 2.2.1 [P2], 2.2.2 [P3]
Algorithms: 4.1.1 [P2]
Programming: 5.1.1 [P2], 5.1.3 [P6], 5.3.1
[P3]
Computational Practices Emphasized:
P2: Creating Computational Artifacts P3:
Abstracting P6: Collaborating
12
Code.org Computer Science Principles Syllabus and Overview
13
Code.org Computer Science Principles Syllabus and Overview
During the first two weeks of the unit students will research and discuss innovations enabled by computing in a wide
variety of fields (7.2). During this time views about the benefits - “Big Data is great!” - and drawbacks - “Big Data is
scary!” will swing quickly. We primarily want to build toward the dual Enduring Understandings that Computing
facilitates exploration and the discovery of connections in information (3.2) and that Computing innovations
influence and are influenced by the economic, social, and cultural contexts in which they are designed and used
(7.4) while the beneficial and harmful effects (7.3) of these things must be weighed and kept in balance.
The activities later in the unit about data encryption follow a
pattern: introduce an encryption concept through an unplugged Unit 4 Practice PT Highlights
activity or thinking prompt, and then “plug it in” by using a
Rapid Research - Data Innovations
Code.org widget to explore the concept further. The purpose of
Students will complete a research project on a
the widgets is to allow students time to play with some of the
computing innovation and the data that allows it to
ideas - often mathematical in nature - underlying different
function. Students will need to identify appropriate
methods of encryption and why they might be susceptible to
online resources and compile their findings to
being “cracked.” These explorations lead towards an
present to classmates. Many components and
understanding of computationally hard problems and the fact that
audio / visual artifact students will identify are
algorithms can solve many but not all computational
similar to those students will see in the AP
problems (4.2).
Performance Tasks.
In particular students should come away with a high level
understanding of how asymmetric encryption works and why it Learning Objectives Addressed:
makes certain things possible (sending encrypted data without a Creativity: 1.2.3 [P2], 1.2.5 [P5]
shared key) and certain things basically impossible (cracking a Data: 3.3.2 [P3]
key). By investigating some of the mathematical foundations of Global Impacts: 7.1.1 [P4], 7.4.1 [P1], 7.5.2 [P5]
encryption we build toward the Enduring Understanding that
cybersecurity is an important concern for the Internet and Computational Thinking Practices Emphasized:
the systems built on it (6.3) and as always There are trade P1: Connecting Computing
offs when representing information as digital data (3.3). P3: Abstracting
P5: Communicating
14
Code.org Computer Science Principles Syllabus and Overview
15
Code.org Computer Science Principles Syllabus and Overview
Explore PT Prep
In Units 1-4 students learn the content and practice the skills they need in order to succeed on the AP CSP Explore
Performance Task. This short unit prepares students for the logistics of completing and submitting the Explore
Performance Task.
The first two lessons of this unit include whole-class activities designed to prepare students for the task itself. Students will
explore sample submissions and complete activities designed to help them understand the task requirements and develop
a plan for the time given to complete the task. The third lesson guides students through the process of completing the task
and gives guidance to the instructor on how to effectively manage the classroom during the 8 hours of class time a
teacher is required to give students to complete the task. Guidance is also provided to teachers on how much assistance
they are able to provide students during this largely independent project.
The 8 hours are the minimum amount of class time required, and do not need to be contiguous.
16
Code.org Computer Science Principles Syllabus and Overview
The first chapter begins by introducing App Lab’s “Design Mode” which allows students to rapidly prototype an app. Again,
we want to highlight the Enduring Understanding that Computing enables people to use creative development
processes to create computational artifacts for creative expression or to solve a problem (1.2). As students
construct simple apps that respond to user actions and inputs, the lessons progress through some core concepts of
programming; Specifically, the lessons cover variables, boolean logic and conditionals, which enforces the understanding
that Programming uses mathematical and logical concepts (5.5).
The second chapter goes deeper into core programming
concepts including looping, arrays, and the use of models Unit 5: Practice PT Highlight
and simulation to develop new insight and knowledge
Building an App: Color Sleuth
(2.3). We want to reinforce the idea that programs are
Students will design a game, following the creative
developed, maintained, and used by people for different
development process of two fictional students. The
purposes (5.4). Each app also emphasizes a different core
lesson alternates between dialogue in which these
concept and skill of programming allowing us to further the
fictional students decide on which features to add
connections that people write programs to execute
to the project and opportunities for your actual
algorithms (5.2) and that programs employ appropriate
students to program these features themselves. At
abstractions (5.3) (such as list structures) as well as
the end of the lesson students will extend this
mathematical and logical concepts (5.5) to extend
project by adding features of their own design. This
traditional forms of human expression and experience
lesson is designed to highlight the types of
(1.3).
development processes students will use
themselves when they create the AP Create
The Practice PT: Create Your Own App asks students to look
Performance Task.
back at the apps they’ve created during the unit and use one
as a point of inspiration for creating their own app. This project
Learning Objectives Addressed:
is designed to highlight the way programs can be developed
Creativity: 1.1.1 [P2], 1.2.1 [P2], 1.2.3 [P2], 1.2.4
for creative expression, to satisfy personal curiosity, to
[P6], 1.2.5 [P4]
create new knowledge, or to solve problems (5.1) and is
Abstraction: 2.2.1 [P2]
designed to closely mirror the actual Create PT which students
Algorithms: 4.1.1 [P2], 4.1.2 [P5]
will complete in the following unit.
Programming: 5.1.1 [P2], 5.1.2 [P2], 5.1.3 [P6],
5.2.1 [P3], 5.3.1 [P3], 5.4.1 [P4], 5.5.1 [P1]
Computational Practices Emphasized:
P1: Connection Computing P2: Creating
Computational Artifacts P3: Abstracting P4:
Analyzing Problems and Artifacts P5:
Communicating P6: Collaborating
17
Code.org Computer Science Principles Syllabus and Overview
18
Code.org Computer Science Principles Syllabus and Overview
Create PT Prep
In Units 1-5 students learn the content and practice the skills they need in order to succeed on the AP CSP Performance
Tasks. This short unit prepares students for the logistics of completing and submitting the Create Performance Task.
The first two lessons of this unit include whole-class activities designed to prepare students for the task itself. Students will
explore sample task submissions and complete activities designed to help them understand the task requirements and
then develop a plan for the time given to complete the task. The third lesson guides students through the process of
completing the task and gives guidance to the instructor on how to effectively manage the classroom during the 12 hours
of class time a teacher is required to give students to complete the task. Guidance is also provided to teachers on how
much assistance they are able to provide students during this largely independent project.
The 12 hours are the minimum amount of class time required, and do not need to be contiguous.
19
Code.org Computer Science Principles Syllabus and Overview
20
Code.org Computer Science Principles Syllabus and Overview
1. Introduction to Data
2.2 2.2.3[P3] (E)
3.1 3.1.1[P4] (BCDE)
3.1 3.1.3[P5] (D)
3.2 3.2.1[P1] (ABC)
7.3 7.3.1[P4] (HJ)
2. Good and Bad Data Visualizations
1.2 1.2.5[P4] (ABCD)
3.1 3.1.1[P4] (DE)
3.1 3.1.2[P6] (ABCDF)
3.1 3.1.3[P5] (ABCDE)
3. Making Data Visualizations
1.2 1.2.5[P4] (ABCD)
3.1 3.1.1[P4] (DE)
3.1 3.1.2[P6] (ABCDF)
3.1 3.1.3[P5] (ABCDE)
4. Discover a Data Story
1.1 1.1.1[P2] (AB) 1.3 1.3.1[P2] (E)
1.2 1.2.1[P2] (ABC) 3.1 3.1.1[P4] (DE)
1.2 1.2.2[P2] (A) 3.1 3.1.2[P6] (ABCDF)
1.2 1.2.4[P6] (A) 3.1 3.1.3[P5] (ABCD)
1.2 1.2.5[P4] (D)
5. Cleaning Data
1.2 1.2.1[P2] (ABCDE) 3.1 3.1.2[P6] (ABCDEF)
1.2 1.2.4[P6] (AB) 3.2 3.2.1[P1] (ABCDEF)
3.1 3.1.1[P4] (AB) 3.2 3.2.2[P3] (BCG)
7.1 7.1.2[P4] (CD)
6. Creating Summary Tables
1.1 1.1.1[P2] (AB) 3.1 3.1.2[P6] (DEF)
1.2 1.2.1[P2] (ABE) 3.1 3.1.3[P5] (ABCD)
1.2 1.2.4[P6] (AB) 3.2 3.2.1[P1] (CF)
3.1 3.1.1[P4] (ABCDE)
21