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