AP Computer Science Principles Syllabus
20 October 2017 — Encode an Experience
Throughout this unit you have learned a sequence of increasingly complex encodings of information, with higher level encodings like images and formatted text making use of lower level encodings like binary numbers, ASCII characters, and even lower still the bits themselves. When creating a binary encoding scheme, we do not always have to consider the actual bits. When we say a pixel is composed of three numbers, it is not actually important that those numbers are encoded in bits, just that there exists some way to represent numbers. This practice of temporarily ignoring details which are unnecessary for the problem at hand is referred to as abstraction, and is the source of the complex computational systems we use everyday. Making use of this tool it is possible to encode practically any object, system, event, or idea. For this project you will be designing your own encoding and responding to associated reflection questions. This project serves both as a review of the material covered in the first unit, and as a practice AP Performance Task in anticipation of the two you will complete later this year.
Activity: Encode an Experience
18 October 2017 — Encoding Color Images
Humans can perceive millions of different colors. If we wish to encode color images we will need a system to represent this huge variety of color. Along the way we will need to develop a new number system to enable humans to more easily read and write large amounts of binary information.
Activity: Encoding Color Images
Activity: Personal Favicon Project
Rubric: Rubric Personal Favicon Project
Worksheet: A Little Bit about Pixels
16 October 2017 — Encoding B&W Images
Digital images perform the difficult task of translating human vision into a bit-level encoding. In this lesson we get our feet wet by encoding simple black and white images. Digital images break a larger image into small squares on a monitor, called pixels, which can be individually illuminated. In a black and white image each pixel may eiter be turned on or off, and so can be represented by a single bit. But the image encoding must contain other data as well, like the width and height, in order to properly reproduce the image from the bits.
Activity: Invent a B&W image encoding scheme
Activity: B&W Pixelation Widget
Activity: Magnify an Image
02 October–13 October 2017 — Fall Intersession Break
28 September 2017 — Mid-term
22–26 September 2017 — Text Compression
Compression is a method or protocol for using fewer bits to represent the original information. Compression can be achieved in a variety of methods including looking for patterns and substituting symbols for the larger patterns of data. Compression can be a "hard problem" for computers because it is difficult to know whether or not the compression you've found is optimal - if you keep trying would it get better? It's hard to know when to stop, and hard to verify that you've compressed it "enough". When it's impossible, or would take an unreasonable amount of time, to know an exact solution you can come with a strategy called a "heuristic" to define some rules about when the solution is good enough.
Activity: Text Compression
Activity: Text Compression Heuristics
Activity: Decode This Message
22 September 2017 Journal Table of Contents
Click on image for .pdf of the table of contents.
18 September 2017 — Bytes and File Sizes
Early computers stored and ran 8-bit instructions and most relied on representing and exchanging messages encoded in ASCII text. The 8-bit chunk, or “byte” became a very common chunk-size or unit of data for representing information. It became the fundamental unit with which we measure the “size” of data on computers (kilobyte, megabyte, gigabyte, terabyte, etc).
Activity: Bytes and File Sizes
18 September 2017 — Peer Critique–Flash Talk
In small groups, present your talk and discuss the social implications of the topic. Compare what you know and/or have learned with what has been presented.
12–14 September 2017 — Practice PT – Flash Talk: The Internet and Society
For this project you will prepare a 2-minute “flash talk” related to the Internet and its effects on people and society. A flash talk is a brief speech or presentation, intended to grab the attention of the audience and convey key information in a quick, insightful, and clear manner.
Purpose: The purpose of this flash talk is for you to demonstrate your knowledge (thus far) of the Internet and how it works, and to connect that to a relevant topic that has an impact on people and society that you care about.
Who is your audience? Not everyone knows as much about the Internet and how it works as you do now. Your speech should be directed at a person (or people) you care about and who you want to inform about this issue. You should provide them with enough technical detail that they can understand why and how it affects them, and the benefits and drawbacks of responses to the issue.
Activity: Flash Talk: The Internet and Society
TurnItIn class ID: 16276802 passcode: freedom
08 September 2017 — HTTP and Abstraction on the Internet
Internet protocols define how computers "talk" to one another on the Internet. Most of the conversations are conducted in ASCII-text which can easily be read by humans. Thanks to the power of abstraction, we can rely on TCP/IP and the multiple layers of the physical Internet to handle the details of actually sending these messages. HTTP is one such protocol, and defines how your browser asks a remote server for the text, images, audio, and formatting information used to render a complete webpage.
Activity: HTTP in Action
06 September 2017 — The Need for DNS
It would be impossible for packets to be routed across the internet without IP addresses. The problem with this system is that, while computers are good at referring to other computers by numbers, humans are not. The Domain Name System (DNS) solves this problem so that we can identify a webpage by its name, even when the IP addresses change.
Unplugged Activity: Names and Addresses – Worksheet
Internet Simulator Activity: DNS Partner Questionnaire – Activity Guide
Rapid Research: DNS in the Real World – Activity Guide
01 September 2017 — Packets and Making a Reliable Internet
The internet is inherently unreliable. Wires can get cut, connections can get flooded with data, routers can crash. How can you ensure that a person receives the message you sent? In this lesson, we will investigate how packets and protocols to structure them can make the unreliable physical network appear to be reliable to people using it.
Activity: Packets and Making a Reliable Internet — Activity
30 August 2017 — Routers and Redundancy
Just like the post office uses standardized zip codes and addresses, the Internet uses a standardized numeric addressing system called Internet Protocol (IP) to route messages to specific locations. Numeric IP addresses have a structure and hierarchy in much the same way that telephone numbers have a structure and hierarchy (with country and area codes first).
Routing on the Internet also mirrors routing in the postal network in that there are multiple ways that a message can travel from sender to receiver in response to conditions in the network. For a letter in the mail this might mean a mailperson choosing a different route through a city in response to construction. For a message on the Internet, this means travelling to different routers based on the traffic of bits travelling across the network.
Activity: Routers and Redundancy — Activity.
28 August 2017 — The Need for Addressing
In this lesson, students explore more deeply how communication between multiple computers can work over the Internet. You will do this by playing a simplified game of Battleship, in which the first game is played unplugged, in groups of three (3), and the second game is played using the Internet Simulator, so that multiple students can connect to each other and see each other's messages. Students must devise a messaging protocol that makes it clar who is sending the message and who the intended recipient is.
Students will then devise a binary protocol for playing this game which will entail developing an addressing system for players, as well as a formal packet structure for transmitting data about the state of the game.
Activity: Boadcast Battleship Game – Activity
Worksheet: IP Addresses and DNS Video Worksheet
24 August 2017 — The Internet is for Everyone
So far in this class you have solved a few problems by creating and using small protocols for transmitting data over a wire, but the Internet is obviously much bigger than a single wire connecting two people. It connects billions of people and even more billions of machines. For it to work there must be open standards and protocols that anyone can follow, so that any machine can communicate with any other. Without protocols it would be like machines speaking different languages. We're going to look at some of the technical issues involved with having lots of machines trying to communicate at the same time in the next several lessons. In order to set the stage we want to consider some of the big societal questions about the importance of the Internet and issues and threats to its existence.
Activity: The Internet is for Everyone.
22 August 2017 — Sending Formatted Text
Using their journals, students will complete the worksheet Check For Understanding.
In today's lesson, students are first introduced to the standard number-to-text encoding scheme used in computers and on the Internet known as ASCII encoding. Students will invent a communication protocol that uses only plain text ASCII characters to encode fancier formatting for text such as fonts, colors, sizes, etc. Students will demonstrate their protocol by using the Internet Simulator to send an encoded message to a partner, who must correctly interpret the formatting and draw the result on a piece of paper.
Activity: Sending Formatted Text – Activity
18 August 2017 — Number Systems and Binary Numbers
Students will explore the properties of number systems by effectively inventing a base-3 number system using circles, triangles and squares as the symbols instead of arabic numerals. Students will be asked to create rules that explain how each arrangement of symbols can be generated or predicted as an orderly, logical series.
Activity: Number Systems – Activity
Students will transition away from the number systems that they created with circles, squares and triangles ang begin to focus pm representing numeric values using the binary number system. A number system is infinite, and also has rules for counting–or how to get from one value to the next.
Activity: Binary Practice – Activity
Template: Flippy Do
16 August 2017 — Sending Binary Messages with the Internet Simulator
The class will use the Internet Simulator many times over the course of the first two units in the course. Today, the Internet Simulator will be be used to simulate a single shared wire, connecting two people. The wire can only be in one of two possible states (state A or state B) and either partner may set or read the state of the wire at many time, but his is the only way in which students may communicate. Students muste invent a binary call-response protocol using this system. Coordination, speed and timing are problems that need to be solved.
Activity: Coordination and Binary Messages – Activity
Internet Simulator: Internt Simulator.
14 August 2017 — Sending Binary Messages
Working in groups using classroom supplies and everyday objects students will develop their own systems for encoding and sending simple binary messages, messages that have only two possible values.
Activity: Sending Binary Messages – Activity
10 August 2017 — Hidden Figures
The past couple of days the class has been doing collaborative work, discussing innovations and generally looking at technology as a whole. Today, the class will watch the video "Hidden Figures".
Assignment: Reflect on the following issues portrayed in the movie—How collaborative work helped put man on the moon and about the gender/racial equity of the time. Write your reflection on page 6 of your journal — it should not exceed one (1) page.
08 August 2017 — Exploring Problem Solving Wrap Up and Personal Innovations
This activity plants the initial seed for students to think about the ways in which they might be able to solve some problems relevant to their lives with technological innovations.
Activity: Personal Innovations – Activity
04 August 2017 — Exploring Problem Solving
In this lesson the class applies the problem solving process to three different problems: a word search, a seating arrangement for a birthday party, and planning a trip. The problems grow increasingly complex and poorly defined to highlight hos the problem solving process is particularly helpful when tackling these problems.
Activity: Solving Problems – Activity
02 August 2017 — The Problem Solving Process
A highly interactive and collaborative introduction to the field of computer science, as framed within the broader pursuit of solving problems. Through a series of puzzles, challenges, and real world scenarios, students are intoduced to a problem solving process that they will return to repeatedly throughout the cours. Students then learn how computers input, output, store, and process information to help humans solve problems.
The class works in groups to design aluminum foil boats that will support as many pennies as possible. At the end of the lesson groups reflect on their experiences with the activity and make connections to the types of problem solving they will be doing the rest of the course.
Activity: Aluminum Boats – Activity
This portion of the lesson introduces the formal problem solving process that the class will use of the course of the year, Define - Prepare - Try - Reflect. The class relates these steps to the aluminum boats problem from earlier, then a problem they are good at solving, then a problem they want to improve at solving. At the end of the lesson the class collects a list of generally useful strategies for each step of the process to put on posters that will be used throughout the year.
Activity: Problem Solving Process – Activity
01 August 2017 — Course Introduction
Computer Science Principles is equivalent to a college level computer science course designed for NON computer science major and is an excellent stepping off point for those that find that they are interested in computer science and would like to learn more.
KQED published an article AP Computer Science Principles Attract Diverse Students With Real-World Problems that explains what this course is all about.
The course will be taught using the Code.org curriculum and all students will need to create an account
on the Code.org website and then join the Freedom High School class section: