Cspsyllabusmay2017 Codeorg
Cspsyllabusmay2017 Codeorg
org Computer Science Principles
Syllabus and Overview
rev. May 2017
AP® Computer Science Principles
Code.org’s Computer Science Principles (CSP) curriculum is a full-year, rigorous, entry-level course that
introduces high school students to the foundations of modern computing. The course covers a broad range
of foundational topics such as programming, algorithms, the Internet, big data, digital privacy and security,
and the societal impacts of computing. The course is designed for typical school settings with teachers in
classrooms. All teacher and student materials are provided for free online.
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 AP is a trademark registered and
owned by the College Board.
Course Audit, and officially recognized professional development
that prepares teachers to teach AP CSP.
Curriculum Overview and Goals
Computing affects almost all aspects of modern life and all students deserve access to a computing
education that prepares them to pursue the wide array of intellectual and career opportunities that
computing has made possible. 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.
Use a variety of digital tools to look at, generate, clean, and manipulate data to explore
Unit 2:
the relationship between information and data. Create and use visualizations to identify
Digital Information
patterns and trends.
Unit 3: Learn the JavaScript language with turtle programming in Code.org’s App Lab. Learn
Algorithms and general principles of algorithms and program design that are applicable to any
programming programming language.
Unit 4: Research current events around the complex questions related to public policy, law,
Big Data and Privacy ethics, and societal impact. Learn the basics of how and why modern encryption works.
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.
This course is not a tour of current events and technologies. Rather, it seeks to provide students with a
“future proof” foundation in computing principles so that they are adequately prepared with both the
knowledge and skills to live and meaningfully participate in our increasingly digital society, economy, and
culture.
1
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Addressing Diversity, Equity, and Broadening Participation in the Curriculum
A central goal of Code.org’s CSP curriculum is for it to be accessible to all students, especially those in
groups typically underrepresented in computing. To this end, we have worked to provide examples and
activities that are relevant and topical enough for students to connect back to their own interests and lives.
Wherever possible, and especially in the videos that accompany the curriculum, we seek to highlight a
diverse array of role models in terms of gender, race, and profession from which students can draw
inspiration and “see themselves” participating in computing.
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.
Who Should Take This Course?
There are no formal prerequisites for this course, though the College Board recommends that students have
taken at least Algebra 1. The course requires a significant amount of expository writing (as well as writing
computer code, of course). For students wishing to complete the requirements of the AP Exam and
Performance Tasks, we recommend they be in 10th grade or above due the expectations of student
responsibility and maturity for an AP course.
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
rev. May 2017
Who Should Teach This Course?
The curriculum is designed so that a teacher who is new to teaching this material has adequate
support and preparation - especially for those who go through Code.org’s professional development
program. A teacher who is motivated to teach a course like this, but who has limited technical or formal
computer science experience should be able to be successful. At a minimum, we strongly recommend that
the teacher have a reasonable level of comfort using computers (using the web, email, downloading and
saving files, basic troubleshooting, etc.).
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.
Code.org CS Principles Course Snapshot
The chart on the following page is intended to show the big picture of the entire course.
● Each unit is broken into “chapters” - groups of lessons that address a related set of topics. Each
chapter ends with some kind of assessment.
● Each chapter shows every lesson title along with suggested pacing guidance
● Note the Performance Tasks cluster of lessons at the end. They are not a formal unit of the course
because work on the tasks can take place at various points throughout the course. However, you
must plan to allocate time toward completing them.
3
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
4
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
While the layout of units appears to be modular, the units of study are scaffolded and sequenced to build
students’ skills and knowledge toward the Enduring Understandings of the CSP Course Framework.
The lessons for each unit assume that students have the knowledge and skills obtained in the previous
units. There are also many thematic connections that can be made between and among lessons and units.
Each unit attempts to “tell a story” about a particular topic in computing from a more primitive beginning to a
more complex end. The lessons in each unit are grouped into one or two chapters of a few weeks worth of
lessons whose content is related or connected in some way. The course snapshot on the first page shows
the chapters for each unit. Each lesson is intended to be a complete thought that takes the student from
some motivational question or premise to an activity that builds skills and knowledge toward some learning
objective(s).
Each unit contains at least one summative assessment, project, or Practice PT that asks students to
complete tasks similar to the official PTs. Sometimes these come mid-unit, and sometimes they come closer
to the end.
Technical and Material Requirements
The course requires and assumes a 1:1 computer lab or setup such that each student in the class has
access to an Internet-connected computer every day in class. Each computer must have a modern web
browser installed. All of the course tools and resources (lesson plans, teacher dashboard, videos, student
tools, programming environment, etc.) are online and accessible through a modern web browser. For more
details on the technical requirements, please visit: code.org/educate/it
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.
Computational Tools, Resources and Materials Provided
The Code.org CSP curriculum includes almost all resources teachers need to teach the course including:
Lesson Plans
● Instructional guides for every lesson
● Activity Guides and handouts for students
● Formative and summative assessments
● Exemplars, rubrics, and teacher dashboard
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
5
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Required Materials / Supplies:
One potentially significant cost to consider is printing. Many lessons have handouts that are designed to
guide students through activities. While it is not required that all of these handouts be printed, many were
designed with print in mind and we highly recommend their use.
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.).
Suggested Text
AP® Assessment
The AP Assessment consists of a 74-question multiple choice exam and two “through-course” assessments
called the AP Performance Tasks (PTs). The tasks can be found in the official AP CS Principles Exam and
Course Description.
● Create Performance Task (p. 108)
● Explore Performance Task (p. 111)
Coverage of the AP CS Principles Framework and Computational
Thinking Practices
The CS Principles Framework outlines seven “Big Ideas” of computing, and six “Computational Thinking
Practices”. Activities in the course should ensure that students are engaging in the Computational Thinking
Practices while investigating the Big Ideas.
6
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Seven Big Ideas Six Computational Thinking Practices
The course is organized around seven big ideas,
Computational thinking practices capture important
which encompass ideas foundational to studying
aspects of the work that computer scientists engage in.
computer science.
Big Idea 1: Creativity
P1: Connecting Computing
Big Idea 2: Abstraction
P2: Creating Computational Artifacts
Big Idea 3: Data
P3: Abstracting
Big Idea 4: Algorithms
P4: Analyzing Problems and Artifacts
Big Idea 5: Programming
P5: Communicating
Big Idea 6: The Internet
P6: Collaborating
Big Idea 7: Global Impacts
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 in 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 E
ssential 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
rev. May 2017
Unit 1: The Internet
This unit explores the technical challenges and questions that arise from the need to represent digital
information in computers and transfer it between people and computational devices. Topics include: the
digital representation of information - especially, numbers, text, and communication protocols. The first unit
of this course purposefully addresses material that is fundamental to computing but with which many
students, even those with computers at home or who have some prior experience with programming, are
unfamiliar. This levels the playing field for participation and engagement right from the beginning of the
course.
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).
For the practice Performance Task at the end of Learning Objectives Addressed:
the unit students research a modern societal Internet: 6.1.1[P3], 6.2.2[P4], 6.3.1 [P1]
issue related to the Internet such as “Net Global Impacts: 7.1.1 [P4], 7.3.1 [P4], 7.4.1 [P1], 7.5.2
Neutrality” or internet censorship, which layers in [P5]
enduring understandings about the fact that
Computational Thinking Practices Emphasized:
computing has a global affect -- both P1: Connecting Computing
beneficial and harmful -- on people and P5: Communicating
society (7.3).
8
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
9
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Unit 2: Digital Information
This unit further explores the ways that digital information is encoded, represented and manipulated. In this
unit students will use a variety of tools including Code.org widgets and external data manipulation and
visualization tools (such as Excel or Google Sheets).
The unit begins by continuing to look at the possibilities
and limitations of encoding information in binary and Unit 2: Practice PT Highlights
building on the enduring understanding that there are
trade offs when representing information as digital Practice PT: Encode an Experience
data (3.3). Students create an image that they encode Students invent a binary encoding (file format) for a
real life experience. How might you encode a
with binary by hand, and also look at a variety of data
birthday party? or a soccer game? or the brush
compression techniques for text and images. The strokes of a real painting? Students come up with
Practice PT: Encode an Experience has students their own creation and present their work in a
devise their own completely new data encoding format similar to that of a Performance Task. This
scheme for something complex like a human assignment emphasizes the writing process, and
experience which has students deeply consider how a giving and incorporating feedback from peers.
variety of abstractions built upon binary sequences
can be used to represent all digital data (2.1). Learning Objectives Addressed:
Creativity: 1.1.1 [P2], 1.2.4 [P6]
Abstraction: 2.1.1 [P3], 2.1.2 [P5], 2.2.1 [P2]
In the second chapter students develop skills Data: 3.2.1 [P1], 3.3.1 [P4]
interpreting visual data and using spreadsheet and Computational Thinking Practices Emphasized:
visualization tools to create their own digital artifacts. P1: Connecting Computing P3: Abstracting P 5:
Through an ongoing project - the “class data tracker” - Communicating P6: C ollaborating
students learn how to collect and clean data, and to use
a few common tools for computing aggregations and Practice PT: Tell a Data Story
creating visualizations. These activities build toward the This small project culminates a series of lessons in
enduring understandings that people use computer which students must use digital tools to
programs to process information to gain insight collaboratively investigate a data set to discover
and knowledge (3.1) and that computing facilitates possible connections and trends. Students must
produce a visual explanation of their findings in the
exploration and the discovery of connections in
data and write a short piece about what the data
information (3.2). shows.
10
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Ch. 1: Encoding and Compressing Complex Information 8. Finding Trends with Visualizations
3.1 3.1.1[P4] (ABE)
1. Bytes and File Sizes
2.1 2.1.1[P3] (BC) 3.1 3.1.2[P6] (ABCDEF)
2.1 2.1.2[P5] (BCEF) 3.1 3.1.3[P5] (ABCE)
3.3 3.3.1[P4] (G) 3.2 3.2.1[P1] (ABCDE)
2. Text Compression 9. Check Your Assumptions
2.1 2.1.1[P3] (ABC) 3.3 3.3.1[P4] (A)
2.2 2.2.1[P2] (B) 4.2 4.2.1[P1] (ABCD) 3.1 3.1.1[P4] (E)
3.1 3.1.1[P4] (ADE) 4.2 4.2.2[P1] (BC) 3.1 3.1.2[P6] (ABCDF)
3.1 3.1.2[P6] (ABCD) 4.2 4.2.3[P1] (ABC) 3.2 3.2.1[P1] (ABC)
3.1 3.1.3[P5] (AE) 4.2 4.2.4[P4] (ACD) 7.4 7.4.1[P1] (ABCD)
3. Encoding B&W Images 10. Good and Bad Data Visualizations
1.1 1.1.1[P2] (AB) 3.1 3.1.1[P4] (ADE) 1.2 1.2.5[P4] (ABCD)
1.2 1.2.1[P2] (A) 3.1 3.1.2[P6] (ABCD) 3.1 3.1.1[P4] (DE)
1.3 1.3.1[P2] (C) 3.1 3.1.3[P5] (AE) 3.1 3.1.2[P6] (ABCDF)
2.1 2.1.1[P3] (ABC) 3.2 3.2.1[P1] (GHI) 3.1 3.1.3[P5] (ABCDE)
2.1 2.1.2[P5] (AB) 3.3 3.3.1[P4] (A) 11. Making Data Visualizations
2.3 2.3.1[P3] (ABCD) 1.2 1.2.5[P4] (ABCD)
4. Encoding Color Images 3.1 3.1.1[P4] (DE)
1.1 1.1.1[P2] (AB) 2.3 2.3.1[P3] (ABCD) 3.1 3.1.2[P6] (ABCDF)
1.2 1.2.1[P2] (A) 3.1 3.1.1[P4] (ADE) 3.1 3.1.3[P5] (ABCDE)
1.3 1.3.1[P2] (C) 3.1 3.1.2[P6] (ABCD) 12. Discover a Data Story
2.1 2.1.1[P3] (ABCDF) 3.1 3.1.3[P5] (AE) 1.1 1.1.1[P2] (AB) 1.3 1.3.1[P2] (E)
2.1 2.1.2[P5] (DEF) 3.2 3.2.1[P1] (GHI) 1.2 1.2.1[P2] (ABC) 3.1 3.1.1[P4] (DE)
2.2 2.2.1[P2] (AB) 1.2 1.2.2[P2] (A) 3.1 3.1.2[P6] (ABCDF)
5. Lossy Compression and File Formats 1.2 1.2.4[P6] (A) 3.1 3.1.3[P5] (ABCD)
3.3 3.3.1[P4] (ACDEG) 1.2 1.2.5[P4] (D)
13. Cleaning Data
6. Practice PT - Encode an Experience
1.2 1.2.1[P2] (ABCDE) 3.1 3.1.2[P6] (ABCDEF)
2.1 2.1.1[P3] (ABCDE)
1.2 1.2.4[P6] (AB) 3.2 3.2.1[P1] (ABCDEF)
2.1 2.1.2[P5] (ABDF)
3.1 3.1.1[P4] (AB) 3.2 3.2.2[P3] (BCG)
2.2 2.2.1[P2] (AB)
7.1 7.1.2[P4] (CD)
14. Creating Summary Tables
Ch. 2: Manipulating and Visualizing Data
1.1 1.1.1[P2] (AB) 3.1 3.1.2[P6] (DEF)
7. Introduction to Data 1.2 1.2.1[P2] (ABE) 3.1 3.1.3[P5] (ABCD)
2.2 2.2.3[P3] (E) 1.2 1.2.4[P6] (AB) 3.2 3.2.1[P1] (CF)
3.1 3.1.1[P4] (BCDE) 3.1 3.1.1[P4] (ABCDE)
3.1 3.1.3[P5] (D)
3.2 3.2.1[P1] (ABC) 15. Practice PT - Tell a Data Story
7.3 7.3.1[P4] (HJ) 1.2 1.2.1[P2] (ABCE)
1.2 1.2.2[P2] (AB)
1.2 1.2.5[P4] (ABCD)
3.1 3.1.3[P5] (ABCD)
7.3 7.3.1[P4] (J)
11
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Unit 3: Algorithms and Programming
This unit introduces students to programming in the JavaScript language and creating small applications
(apps) that live on the web. This introduction places a heavy emphasis on understanding general principles
of computer programming and revealing those things that are universally applicable to any programming
language.
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 Unit 3: Practice PT Highlight
imaginary character that moves around the screen and can
Practice PT: Design a Digital Scene
draw. In the lessons students learn features of the
In this project students work with a small team
JavaScript language by going through a series of short to create a digital scene with turtle graphics.
tutorials to familiarize students with the environment, and They plan the scene together, code the parts
new concepts. There is a heavy emphasis on writing separately and bring them together to make a
procedures (functions in JavaScript), and using top-down whole. An important focus of this project is on
program design - a process by which a large problem is how teams of programmers work together.
broken down into smaller and more manageable parts. Students reflect on their experience in a way
These lessons highlight the way multiple levels of that is similar to the Create performance task. A
heavy programming emphasis is on writing
abstraction are used to write programs (2.2).
functions (procedures) that can be easily
incorporated into others’ code.
Along the way students create more and more sophisticated
drawings culminating in the Practice PT: Design a Digital
Learning Objectives Addressed:
Scene in which small groups must collaborate to design Creativity: 1.1.1 [P2], 1.2.1 [P2], 1.2.4 [P6],
and share code to create a small vignette created with turtle 1.3.1 [P2]
art. Through the lessons and PTs we want to build toward Abstraction: 2.2.1 [P2], 2.2.2 [P3]
some enduring understandings that creative development Algorithms: 4.1.1 [P2]
can be an essential process for creating computational Programming: 5.1.1 [P2], 5.1.3 [P6], 5.3.1
artifacts (1.1) and that collaboration and computing [P3]
enables people to use creative development processes Computational Practices Emphasized:
P2: Creating Computational Artifacts P3:
to create computational artifacts for creative
Abstracting P6: Collaborating
expression or to solve a problem (1.2).
12
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
13
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Unit 4: Big Data and Privacy
The data rich world we live in also introduces many complex questions related to public policy, law, ethics
and societal impact. In many ways this unit acts as a unit on current events. It is highly likely that there will
be something related to big data, privacy and security going on in the news at any point in time. The major
goals of the unit are 1) for students to develop a well-rounded and balanced view about data in the world
around them and both the positive and negative effects of it and 2) to understand the basics of how and why
modern encryption works.
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 in the third week around data encryption
follow a pattern: introduce an encryption concept through Unit 4 Practice PT Highlights
an unplugged activity or thinking prompt, and then “plug it
Practice PT: Big Data and Cybersecurity
in” by using a Code.org widget to explore the concept Dilemmas
further. The purpose of the widgets is to allow students Students will complete a research project on a
time to play with some of the ideas - often mathematical in current issue or event related to Big Data, security
nature - underlying different methods of encryption and and encryption. Students will need to identify
why they might be susceptible to being “cracked.” These appropriate online resources to learn about the
explorations lead towards an understanding of issues and find good artifacts to include with their
computationally hard problems and the fact that findings. The written components and audio /
visual artifact students will identify are similar to
algorithms can solve many but not all computational
those students will see in the AP Performance
problems (4.2). Tasks.
In particular students should come away with a high level Learning Objectives Addressed:
understanding of how asymmetric encryption works and Data: 3.3.1 [P4]
why it makes certain things possible (sending encrypted Internet: 6.1.1 [P3], 6.2.1 [P5], 6.2.2 [P4], 6.3.1
data without a shared key) and certain things basically [P1]
impossible (cracking a key). By investigating some of the Global Impacts: 7.1.1 [P4], 7.3.1 [P4], 7.5.1[P1],
mathematical foundations of encryption we build toward 7.5.2 [P5]
the enduring understanding that cybersecurity is an
Computational Thinking Practices Emphasized:
important concern for the Internet and the systems
P1: Connecting Computing
built on it (6.3) and as always There are trade offs when P5: Communicating
representing information as digital data (3.3).
14
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
15
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Unit 5: Building Apps
This unit continues to develop students’ ability to program in the JavaScript language, using Code.org’s App
Lab environment to create a series of small applications (apps) that live on the web, each highlighting a core
concept of programming. In this unit students transition to creating event-driven apps. The unit assumes
that students have learned the concepts and skills from Unit 3, namely: writing and using functions, using
simple repeat loops, being able to read documentation, collaborating, and using the Code Studio
environment with App Lab.
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 Unit 5: Practice PT Highlight
models and simulation to develop new insight and
Practice PT: Create Your Own App
knowledge (2.3). We want to reinforce the idea that Students will design an app based off of one they
programs are developed, maintained, and used by have previously worked on in the programming
people for different purposes (5.4). Each app also unit. Students will choose the kinds of
emphasizes a different core concept and skill of improvements they wish to make to a past project
programming allowing us to further the connections that in order to show their ability to add new
people write programs to execute algorithms (5.2) abstractions (procedures and functions) and
and that programs employ appropriate abstractions algorithms to an existing program. The project
concludes with reflection questions similar to those
(5.3) (such as list structures) as well as mathematical
students will see on the AP Create Performance
and logical concepts (5.5) to extend traditional forms Task.
of human expression and experience (1.3).
Learning Objectives Addressed:
The Practice PT: Create Your Own App asks students to Creativity: 1.1.1 [P2], 1.2.1 [P2], 1.2.2 [P2],
look back at the apps they’ve created during the unit and 1.2.3 [P2], 1.2.4 [P6], 1.3.1 [P2]
use one as a point of inspiration for creating their own Abstraction: 2.2.1 [P2], 2.2.2 [P3]
app. This project is designed to highlight the way Algorithms: 4.1.1 [P2], 4.1.2 [P5]
programs can be developed for creative expression, 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]
to satisfy personal curiosity, to create new
Computational Practices Emphasized:
knowledge, or to solve problems (5.1) and is designed P2: Creating Computational Artifacts P3:
to closely mirror the actual Create PT which students will Abstracting P5: Communicating P 6: Collaborating
complete in the following unit.
16
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
17
Code.org Computer Science Principles
Syllabus and Overview
rev. May 2017
Performance Tasks
In Units 1-5 students learn the content and practice the skills they need in order to succeed on the AP CSP
Performance Tasks. Still, a certain level of guidance during the PT development process is not only
recommended, but vital. For example, coaching students early on helps them clarify their ideas and/or
approaches to the PTs especially related to finding, evaluating and citing sources (7.5).
The curriculum provides a few lessons to help instructors and students prepare and make a plan for
completing the AP Performance Tasks. There are a few guided activities for teachers to run that will help
students get organized and ensure they have reasonable project plans that can be achieved in the time
allotted.
Please note that instructors are required to provide the appropriate amount of class time for students to
complete each Performance Task - 8 hours for Explore, 12 hours for Create. The hours are the minimum
amount of class time required, and do not need to be contiguous. In the official submission to the College
Board, teachers will attest that all student work is original and that the required amount of time was
provided.
Performance Tasks
18