Curriculum available here:
Switch branches/tags
Nothing to show
Clone or download
Latest commit c6030b9 Jun 19, 2017
Failed to load latest commit information.
Code_Examples testing Atom ⚛️ Jun 19, 2017
_includes new code examples Nov 30, 2016
_layouts 📅 stamped Nov 15, 2016
_posts replaced with vimeo Jun 16, 2017
_sass 🆙 📅 ed Nov 13, 2016
_site Day 1 May 12, 2017
css 🆙 📅 ed Nov 13, 2016
images imgae Feb 13, 2017
public 🎯 Learning targets Nov 14, 2016
.DS_Store testing Atom ⚛️ Jun 19, 2017
.Ulysses-Group.plist questions i have them Jan 3, 2017
.Ulysses-favorites.plist questions i have them Jan 3, 2017
.gitignore ✖ = variables Sep 25, 2016
404.html 🖌CSS! Jul 28, 2016
Gemfile 💎 commit Jul 28, 2016
_config.yml got rid of pagination Nov 15, 2016 credited Jan 23, 2017
feed.xml 👍 let's do this Jul 28, 2016
index.html 🔧 home Jul 28, 2016 no & Oct 25, 2016

layout title permalink

Course Overview

This course is designed to address the seven Big Ideas of the AP CS Principles Framework, with a primary emphasis on Big Idea #1, Creativity.

If a Computer Science class is grounded in creativity, it becomes a place where learners feel welcome to try, fail, and iterate. It becomes a place where diversity of background and experience is a benefit to learners and teachers alike.

A secondary emphasis of this course is on Big Idea #7, Global Impact. This course is taught in the South Bronx, in one of the poorest neighborhoods in the United States. The class will be 50% female and entirely students of color. Students will leave this course with a knowledge of the disparities and injustices in the outside world, and equipped with the skills and knowledge to begin crafting solutions.

This syllabus draws from the Beauty & Joy of Computing curriculum as well as readings and activities from I'm thankful to both of these organizations for releasing their work and helping to make Computer Science accessible to all.

Programming Language

The programming components of this course will be taught using p5.js, a JavaScript library designed to turn the entire browser page into a “sketch.” It includes all of the functionality of JavaScript, and has a rich history in creative computing:

p5.js is a JavaScript library that starts with the original goal of Processing, to make coding accessible for artists, designers, educators, and beginners, and reinterprets this for today’s web.

Using the original metaphor of a software sketchbook, p5.js has a full set of drawing functionality. However, you’re not limited to your drawing canvas, you can think of your whole browser page as your sketch! For this, p5.js has addon libraries that make it easy to interact with other HTML5 objects, including text, input, video, webcam, and sound.

Teaching Strategies

This course is designed to provide students with rigorous and interesting opportunities to engage in computational thinking and programming. Most learning will be done through labs– there will be a minimum of didactic, direct instruction. Readings will be drawn from current, relevant sources that intersect with the Big Ideas of the Framework.

Students will regularly engage in small-group and whole-class discussions. The layout and design of the classroom emphasize collaboration by allowing students to see many screens while working, and through directed activities involving pair programming.


Every week or so, students will be assessed using multiple choice questions drawn from AP CSP exams, or adapted from AP CSP exams.

At the end of each unit of study, students will complete a practice Performance Task, aligned to either the Explore or Create tasks they will submit to College Board.

AP Explore Performance Task – After completing Unit 5, students complete through-course assessment Explore - Impact of Computing Innovations (8 hours in class).

AP Create Performance Task – After completing Unit 5 and before the AP exam, students complete through- course assessment Create - Applications from Ideas (12 hours in class).

Units of Study

🔢 Unit 1: Algorithms and p5: Introduction to Algorithms & Programming

  • Designing algorithms
  • Abstractions
  • Flowcharts & design
  • Conditionals & loops
  • Writing functions

Practice Create Performance Task: Build a Drawing App

🌐 Unit 2: The Interwebz

  • Binary!
  • Encoding and sending numbers and text
  • IP Addresses, packets, redundancy
  • Routing, DNS, Protocols, Abstraction

Practice Explore Performance Task: The Internet & Society

🔨 Unit 3: Building Apps

  • User inputs & variables
  • Lists & arrays
  • Boolean logic

Practice Create Performance Task: Todo list

💡 Unit 4: Digital Information & Representation

  • Encoding & decoding images
  • Cyphers
  • Interpreting visual data
  • Creating visual data

Practice Create Performance Task Word Cloud Generator [^1]

[^1]: This task will integrate with AP English Language & Literature

📡 Unit 5: Big Data & Privacy

  • Data and commerce
  • "Free" apps
  • Encryption schemes
  • Real world concerns

Practice Explore Performance Task: Advocacy Webpage

💃🏾 Unit 6: Performance Tasks

AP Create Performance Task (12 hours) AP Explore Performance Task (8 hours)

Example Activities

P1: Connecting Computing

  • In Unit 5: The Interwebz students learn about common security attacks (bug exploits, viruses, phishing, and DDoS attacks) and learn about security measures that they can take to mitigate their own risk. LO 6.3.1 [P1]
  • In Unit 5: The Interwebz PT (Innovating for Social Change), students research and analyze the contextual suitability and effects of a computing innovation. LO 1.2.5 [P4], LO 7.1.1 [P4], LO 7.3.1 [P4], LO 7.4.1 [P1], LO 7.5.1 [P1], LO 7.5.2 [P5]

P2: Creating Computational Artifacts

  • In Unit 1: Algorithms and p5: Algorithms & Programming, students collaborate to develop a program in p5.js to create a simple drawing application. LO 4.1.1 [P2], LO 4.1.2 [P5], LO 5.1.3 [P6]
  • In Unit 2: Building Apps, students use an iterative and exploratory development process and multiple levels of abstraction as they create scripts to draw a single tile, a row, and a grid for a game board. LO 1.1.1 [P2], LO 2.2.2 [P3]

P3: Abstracting

  • In Unit 1: Algorithms and p5: Algorithms & Programming, students analyze how several programs implement algorithms, e.g. discussing how a short algorithm with a loop generates the image of a square; comparing and contrasting various square-drawing algorithms; and predicting what an algorithm does. Students iterate on these algorithms to create programs to draw different shapes based on user input in Unit 2: Building Apps. LO 5.2.1 [P3]
  • In Unit 3: Digital Information, students import data from texts and display the data visually to draw insights and represent information. LO 2.3.1 [P3], LO 2.3.2 [P3]

P4: Analyzing Problems and Artifacts

  • In Unit 1: Algorithms and p5: Algorithms & Programming, students analyze a script to determine what is likely to go wrong before running it and use this developing understanding to create correct programs to calculate powers of numbers and do linguistic research, counting syntactical features of text. LO 5.4.1 [P4], LO 5.1.2 [P2]
  • In Unit 4: Big Data & Privacy reflecting on their own data and technology, students extend their insights to consider how large data sets of many people’s data affect large-scale communication, interaction, collaboration, and problem-solving. LO 3.2.2 [P3], LO 7.1.1 [P4], LO 7.1.2 [P4]

P5: Communicating

  • In Unit 5: The Interwebz,Unit 5: The Interwebz students learn about IP address hierarchy, IPv4 vs. IPv6, packets and packet switching, reliable data transmission, open standards, the Internet abstraction hierarchy and how these systems interrelate. Students write a simple program to report their IP address by scraping a webpage, explore a simulation of unreliable data transmission, and discuss and write about the abstractions of the Internet including protocols and address hierarchy. LO 6.1.1 [P3], LO 6.2.1 [P5], LO 6.2.2 [P4]
  • In Unit 3: Digital Information & Representation, students create a general graphing program that plots data points on a screen whose dimensions (scale) they have determined themselves. Students interpret and communicate the results of their data-processing by using appropriate visualizations, notations, and precise language. LO 3.1.3 [P5]

P6: Collaborating

  • In Unit 2: Building Apps, students build a basic todo list app and learn that lists can store data and that programs can access and manipulate list contents. Students collaborate to create a computational artifact using lists and list-processing procedures to organize information. LO 1.2.2 [P2], LO 5.1.3 [P6]
  • In Unit 2: Building Apps, students collaborate to create a new computational artifact using the http procedure together with a weather website and then selecting and communicating specific information to the user. LO 1.2.2 [P2], LO 1.2.3 [P2], LO 3.1.2 [P6], LO 3.1.3 [P5]

Big Ideas

Big Idea 1: Creativity

  • In Unit 5: The Interwebz students examine the privileges and biases associated with popular products, inquiring about the representation of women and minorities in technology fields and how engineering choices impact consumer options. LO 1.2.5 [P4]
  • In Unit 1: Algorithms and p5: Introduction to Algorithms & Programming students collaboratively create a drawing application. LO 1.2.1 [P2], LO 1.2.4 [P6], LO 1.3.1 [P2]

Big Idea 2: Abstraction

  • In Unit 2: Building Apps students work with data abstraction at multiple levels, creating, using and modifying abstract data types. For example, they create procedures to get tasks and due dates and modify lists of data to add, remove, and modify items. LO 2.2.1 [P2], LO 2.2.2 [P3], LO 2.2.3 [P3]
  • In Unit 5: The Interwebz, Lab 3, Binary Numbers, students learn about bits and bit width and representations of digital data, and they translate among three common number bases. LO 2.1.1 [P3], LO 2.1.2 [P5], LO 5.5.1 [P1]

Big Idea 3: Data

  • In Unit 4: Big Data & Privacy, Lab 2, GPS Data, students collaborate as they process GPS data, find patterns to gain new knowledge, and discover and explain patterns and trends. LO 3.1.1 [P4], LO 3.1.2 [P6], LO 3.1.3 [P5], LO 3.2.1 [P1], LO 4.1.1 [P2], LO 5.1.1 [P2]
  • In Unit 3: Digital Information & Representation, Lab 2, Infographics students interpret and communicate the results of their data-processing by creating interactive infographics. LO 3.1.3 [P5]

Big Idea 4: Algorithms

  • In Unit 1: Algorithms and p5: Algorithms & Programming students learn the difference between solvable and unsolvable problems and about the existence of undecidable problems through work with the halting problem. LO 4.2.2 [P1], LO 4.2.3 [P1]
  • In Unit 2: Building Apps students collaboratively build a drawing app, and identify and explain algorithms used within their code. LO 1.2.1 [P2], LO 2.2.1 [P2], LO 2.2.2 [P3], LO 4.1.1 [P2], LO 4.1.2 [P5], LO 5.1.1 [P2], LO 5.3.1 [P3]

Big Idea 5: Programming

  • Students program throughout the course. In Unit 1: Algorithms and p5, students build and debug a drawing application. In Unit 2 they create a more complicated application that can store an access data using functions and lists. LO 5.3.1 [P3], LO 5.5.1 [P1]

Big Idea 6: The Internet

  • In Unit 5: The Interwebz students create an advocacy webpage, picking among topics such as Net Neutrality, internet censorship, or government surveillance. LO 6.1.1[P3], LO 6.2.2[P4], LO 6.3.1 [P1]
  • Students discuss and answer questions about how the Internet has shaped our world. LO 6.1.1 [P3], LO 6.2.2 [P4], LO 7.1.1 [P4]

Big Idea 7: Global Impacts

  • In Unit 5: The Interwebz, students examine free speech and social media, and the implications of collecting user data. LO 3.3.1 [P4], LO 7.3.1 [P4], LO 7.4.1 [P1]
  • In Unit 5: The Interwebz students look at the digital divide, in the context of their city, their country, and the world. Students investigate the disparities for women and minorities in technology fields. LO 6.3.1 [P1], LO 7.2.1 [P1], LO 7.4.1 [P1]

Selected Readings