Freedom High School Mr. Behling's Web Site
1º Microsoft Office Basics 5º Microsoft Office Basics
2º AP Computer Science Principles 6º Keyboarding I
3º Microsoft Office Basics 8º Fashion Design
2017-2018 Calendar Course Descriptions

AP Computer Science Principles Syllabus
AP® Digital Portfolio Student User Guide

05-19 April 2018Digital Portfolio
Work on either on of your performance tasks.

Be sure to register with Digital Portfolio.

03 April 2018Unit 5 Chapter 2 Lesson 11
This lesson demonstrates how a slight manipulation of a conditional statement can allow for the creation of a new and powerful tool in constructing programs, a while loop. While learning about creating while loops, students will be introduced to many of the common mistakes early programmers make with while loops and will need to debug small programs.

19 March–02 April 2018 — Spring Intersession Break

15 March 2818Unit 5 Assessments 1 and 2

13 March 2818Unit 5 Lesson 10: Building an App: Color Sleuth
This lesson attempts to walk students through the iterative development process of building an app (basically) from scratch that involves the use of if statements. Following an imaginary conversation between two characters - Alexis and Michael - students follow the problem solving and program design decisions they make for each step of constructing the app. Along the way they decide when and how to break things down into functions, and of course discuss the logic necessary to make a simple game.

09 March 2818Unit 5 Lesson 9: if-else-if and Conditional Logic
Having explored the basic of simple if-else statements this lesson gets into how to express more complex logic using if-else-if statements and the Boolean operators && (and) || (or). Again, you'll be presented with a number of small problems and scenarios to practice with and solve relatively more complex conditions.

07 March 2018 Unit 5 Lesson 8: Boolean Expressions and "if" Statements
In this lesson, you will write if and if-else statements in JavaScript for the first time. The concepts of conditional execution should carry over from the previous lesson, leaving this lesson to get into the nitty gritty details of writing working code. You will write code in a series of "toy" problems setup for you in App Lab that require you to do everything from debug common problems, write simple programs that output to the console, or implement the conditional logic into an existing app or game, like "Password Checker" or a simple Dice Game. The lesson ends with a problem requiring nested if statements to foreshadow the next lesson.

The main purpose here is Practice, Practice, Practice.

Spend the remaining time on your Create PT.

05 March 2018 Unit 5 Lesson 6: User Input and Strings – Lesson 7: If-statements unplugged
Lesson 6 — Strings are a feature of essentially every programming language, and they allow for variable-length pieces of text to be represented, stored, and manipulated. While a single string can be stored in a variable, it is worth noting that a string will typically use much more memory than a number. Numbers are typically stored in fixed-width 8-, 16-, 32-, or 64-bit chunks. ASCII characters require a single byte and so a string of 100 characters, short by most standards, would require 800 bits in order to be stored in memory. While “typed” programming languages require you to declare the size and type of a variable before you use them, in more dynamic programming languages, including JavaScript, this memory management is abstracted away.

Lesson 7 — We take a whole lesson to learn about if statements, what they are, the terminology around them, and what they have to do with "selection" in programs. You will trace simple robot programs on paper to develop a sense of how to read and reason about code with if statements in it. You will also try your hand at writing code by hand to handle a robot situation.

The activities here get right to many commons misonceptions about how if-statments work and how programs execute. You may have a simple common-sense intuition about how if-statements work, but there are several ways you can get your wires crossed when considering how programs actually execute. There are two main issues: 1) how the flow of program execution works, and 2) How complex logical statements are composed and evaluated. In this lesson we just address program flow and tracing execution. We'll look at more complex logical expressions later. Even though Boolean expressions show up in this lesson, we try to avoid using that term until the next lesson. For this lesson it's a condition that is simply true or false.

27 February–01 March 2018Unit 5 Lesson 5: Building an App: Clicker Game
In this lesson you'll learn the next step with using variables in programs by adding them to apps. There are a few things you need to understand about where you create variables in your code and how you refer to them. In this lesson we show you how to do it and you have to debug a few problems related to common issues that newcomers have with variables.

You'll also use an if statement for the first time in this lesson in order to make a game change screens once the score reaches a certain value.

Evaluate a peers game using the rubric passed out on 27 February and then spend the remaining time on your Create PT.

15-21 February 2018Unit 5 Lessons 4 Controlling Memory with Variables
This lesson gets into the basic mechanics of working with variables in programs. The lesson shows students how to create and assign values to variables and navigates through a series of common misconceptions about variables and how they work. Along the way, the lesson tries to build up the student’s mental model of how computers and programs work, which is essential for being able to reason about programs.

15-21 February 2018Unit 5 Lessons 2 and 3 Multi-Screen Apps
In the last lesson we looked at Design Mode, an easy way to add UI elements to our apps. In Lesson 2 it is all about you getting a chance to use those new skills to make a multi-screen app. We'll teach you more about design mode and how to make new screens for you app and switch between them.

In Lessons 1 and 2 we looked at Design Mode and Event-Driven Programming in App Lab. This lesson is all about you getting a chance to use those new skills to make a multi-screen app. Use your creativity and personal interests to make your app unique.

If you complete the lessons, spend some time working on your Explore PT. This doesn't mean playing on your phone or playing online games.

13 February 2018Unit 5 Lesson 1 Buttons and Events
After taking the Unit 4 Assessment the class will begin working on Unit 5. Additional time will be given to work on the Explore PT.

Modern programming is often event-driven rather than sequential. Sequential programs start at a beginning point and progress to the end point in a way that can be perfectly predicted when the program begins running.

Event-driven programs do not progress in a predictable order. User-generated events (e.g. mouse clicks, button press, key presses, etc.) are each handled individually by pieces of code, one per event. For example, you want to write code so that when a user clicks button1 something different happens from when they click button2.

Event-driven programs like these are dynamic but also bring challenges since you don't know what order user-events might happen in. It can lead to unpredictable program execution and an associated set of challenges.

07-09 February 2018Explore Performance Task
It's finally time for you to take on the Explore Performance Task! For the next several days, you should work individually on your project without teacher support.

Explore Organizer.

05 February 2018Unit 4 Online Quiz and Explore PT Commentary
The class will take the online Unit 4 Quiz and then read through the College Board Commentary.
Scoring Sample Explore Tasks with College Board Commentary

01 February 2018Practice Explore PT
Today the class will investigate what is required with the Explore PT portion of the AP Exam.

Scoring Sample Explore Tasks

30 January 2018 — Unit 4 Lesson 8 Cybersecurity and Crime
Today the class is doing a “Rapid Research” project on Cybersecurity and crime. On the class page for Unit 4 Lesson 8 there is a link to a Google Doc that will help them organize their research. Last class they watched a video that presented a number of topics that they could choose from:

This is due by midnight by submiting their finished work to TurnItIn.

24-26 January 2018 — Unit 4 Lesson 7 Public Key Crytography
This is a big multi-part lesson that introduces the concept of public key cryptography which is an answer to the crucial question: How can two people send encrypted messages back and forth over insecure channels (the Internet) without meeting ahead of time to agree on a secret key? In a nutshell, there are two main principles we want students to understand:
1. The mechanics of communication with public key cryptography
2. The basic mathematical principles that make it possible

22 January 2018 — Unit 4 Lesson 5/Lesson 6 Simple Encryption/Encrytion with a Key
“Encryption” is a process for transforming a message so that the original is “hidden” from anyone who is not the intended recipient. Encryption is not just for the military and spies anymore. We use encryption everyday on the Internet, primarily to conduct commercial transactions, and without it our economy might grind to a halt.

18 January 2018 — Unit 4 Lesson 4 The Cost of Free
Many consumers are unaware, or lack a sophisticated understanding, of how information about us is being collected and tracked by the technology we use every day. This issue goes beyond instances when data is stolen from companies or organizations we willingly provide it to. Instead, using computational tools, our movements through the physical and virtual world are being automatically tracked, stored, and analyzed. Cookies in our browsers keep a record of our movements on the Internet. Companies trade access to free tools and apps for the rights to track the data we upload to them. Advertisers develop personalized profiles of potential customers to better target advertising. Governments monitor traffic across the Internet at scales unimaginable without the use of computers. Yet we live in a world that increasingly relies on these digital tools, services and products. Most companies make great efforts to balance the tradeoffs between utility and privacy, but the issues can be tricky and raise confounding ethical dilemmas. We must now grapple with a question of just how much we value our privacy, and whether it is even possible to maintain in a digitized world.

Article: Wall Street Journal: Users Get as Much as they Give
Activity: Privacy Policies
Rapid Research: Chapter 2 Blown To Bits

16 January 2018 — Unit 4 Lesson 3 Identifying People with Data
While there are many potential benefits associated with the collection and analysis of large amounts of data, these advances pose a constant risk to our collective security and privacy. Large-scale data breaches mean that the details of our personal, professional, and financial lives may be at risk. In order to prevent personal data from being linked to an individual person, personally identifying information, such as name, address, or identification number, is often removed from publicly available data. Nevertheless, through the use of computational analysis, it is often possible to "re-Identify" individuals within data, based on seemingly innoculous information. As more of our lives is digitized, questions of security and privacy become ever more prevelent.

Activity: Research Yourself
Rapid Research: Chapter 2 Blown To Bits

11 January 2018 — Unit 4 Lesson 2 Rapid Research
Please take the time to review the following: College Board - Assessment Overview and Performance Task Directions for Students
In this lesson you will conduct a small amount of research to explore a computing innovation that leverages the use of data. You will research a topic of personal interest and respond to questions about how that innovation produces, uses or consumes data.

Assignment Data Innovation One-Pager -- Download the Google Doc template from and submit your completed One-Pager to TurnItIn. Must be submitted by midnight January 14, 2018.

08-09 January 2018 — Unit 4 Lesson 1 What is Big Data?
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 3) to prepare students to complete the AP Explore Performance Task.

Students will be introduced to the comcept of "big data," where it comes from, what makes it "big," and how people use bif data to solve problems, and how much of their lives are "datafied" or could be.

Video: Big Data is Better Data
Activity Guide: Big Data Sleuth Card This is a Google Doc which you should be able to fill out on line and print out.

Winter Break December 22, 2017 through January 5, 2018

18 December 2017AP Computer Science Principles Final

15 December 2017Unit 3 Assessment
Take the assessment and then we will go over it as a class.

11-13 December 2017Lesson 10 Practice PT–Design a Digital Scene
Students work in groups of 3 to design and write the code for a program that draws a digital scene of their choosing. Students break the scene down into small parts and divvy up the code writing amongst the team. Each individual's code is combined at the end to create the full scene. The project concludes with written reflection questions similar to those students will see on the AP® Performance Tasks. br />
Activity: Practice PT – Design a Digital Scene
Rubric: Rubric
Submit Group Work: Unit 3 Practice PT Group Files
Submit Individual Work: Unit 3 Practice PT Individual Files or use TurnItIn.

07 December 2017Unit 3 Lesson 9 Looping and Random Numbers and Lesson 10 Practice PT–Design a Digital Scene
Students learn to use a simplified version of a for loop to add repetition to their code (i.e. repeat x times loop). Calling functions repeatedly with a loop combined with random numbers enables students to create more complex and varied drawings for digital scenes. br />
Students work in groups of 3 to design and write the code for a program that draws a digital scene of their choosing. Students break the scene down into small parts and divvy up the code writing amongst the team. Each individual's code is combined at the end to create the full scene. The project concludes with written reflection questions similar to those students will see on the AP® Performance Tasks. br />
Activity: Practice PT – Design a Digital Scene
Rubric: Rubric

05 December 2017Unit 3 Lesson 8 Creating Functions with Parameters
Writing functions with parameters is a simple idea, but it traditionally has some devilish details for new learners of programming. The basic idea is that you often want to write a function that takes some input and performs some action based on that input. For example, the turtle function moveForward is much more useful when you can specify how much to move forward (e.g., moveForward(100)), rather than just a fixed amount every time. It’s very common to encounter situations where as a programmer you realize that you basically need a duplicate of some code you’ve already got, but you just want to change some numbers. That’s a good time to write a function with a parameter; the parameter just acts as a placeholder for some value that you plug in at the time you call the function. Just like it’s considered good practice to give descriptive names to your functions, the same is true for the names of the parameters themselves. For example: drawSquare(sideLength) is better than drawSquare(stuff).

Activity: Writing Functions with Parameters: Under the Sea.
Share your project by placing a link to your code in the following Google Doc

30 November 2017Unit 3 Lesson 6 Functions and Top-Down Design and Lesson 7 APIs and Using Functions with Parameters
In Lesson 6, students learn aobut top-down strategies for solving more complex programming problems by breaking the problem down into small parts that can be named and represented as functions. The code in the resulting program should read more like a description of how to solve the problem than like raw code.

In Lesson 7, students read and use App Lab’s API documentation to learn about new turtle commands that they must use to complete a series of drawing puzzles.

29 November 2017Unit 3 Lesson 5 Creating Functions (complete) and Lesson 6 Functions and Top-Down Design
In Lesson 5, students learn to define and call their own functions (aka procedures) in order to create and give a name to a group of commands for easy and repeated use in their code. Name procedures are a form of abstraction that enable the programmer to reduce complexity by removing details and generalizing functionality.

In Lesson 6, students learn aobut top-down strategies for solving more complex programming problems by breaking the problem down into small parts that can be named and represented as functions. The code in the resulting program should read more like a description of how to solve the problem than like raw code.

Activity: Top-Down Design

27 November 2017Unit 3 Lesson 4: Using Simple Commands and Lesson 5: Creating Functions
Students will be introduced to App Lab and to start thier programming journey in such a way that the focus is more on problem-solving than learning syntax. Students will learn how to define and call procedures (functions) to handle repeated problems.

Activity: Turtle Programming in Code Studio.

14-16 November 2017Unit 3 The Need for Programming Languages

Students continue to work with the “Human Machine Language” - with an added SWAP command - to design an algorithm to move the minimum card to the front of the list. Students may design more algorithms for other problems and challenges provided.

Activity: The "Human Machine" Language Part 2

09 November 2017Unit 3 The Need for Programming Languages

Students write instructions for building a small arrangement of LEGO® blocks and trade with a classmate to see if they can follow them to construct the same arrangement. The lesson highlights the inherent ambiguities of human language deriving the need for a well-defined programming language which leaves no room for interpretation.

Activity: LEGO Instructions
Activity: Building Blocks of Drawing

Students develop (and are eventually provided with) commands for a "Human Machine Language" designed to perform operations on playing cards. The lesson highlights the connection between programming and algorithms by showing that different techniques for solving the same problem can be expressed in the language.

Activity: The "Human Machine" Language
Activity: Minimum Card Algorithm

07 November 2017Unit 2 Checking for Understanding

Hour of Code
Today's activity is a set of 20 self-guided puzzles that teach the basics of computer science for users with no prior experience. If you want you may choose another segment, but to get credit you must complete an activity and print out the completion certificate. In each puzzle, you write a program that gets a character through a maze. The activity uses Blockly, a visual programming language that has blocks you drag and drop to write programs. The characters in one of the activities is from Star Wars

Choose either Blocks or JavaScript (you can switch between if you want at any time).

To get credit for today's activity you need to print out the completion certificate with your name printed in it:

03 November 2017Good and Bad Data Visualizations
Visualizations of data are a powerful way to present information and insights learned from data. However, people use data visuals with varying success. In fact, very smart people struggle to make good data visualizations which correctly convey the findings from data. Some are strong data visualizations that create a deeper understanding of the underlying data. Others create misconceptions about the findings of data. Others are just hilariously bad. Your job is to rate the quality of the visualizations and keep a few notes about why they are good or bad.

Review Data Visualization 101: How to design charts and graphs
Assignment: Data Visualization Scorecard

01 November 2017Digital Divide and Checking Assumptions
Analyzing and interpreting data will typically require some assumptions to be made about the accuracy of the data and the cause of the relationships observed within it. When decisions are made based on a collection of data, they will often rest just as much on that set of assumptions about the data as the data itself. Learning to validate and clearly call out assumptions being made when interpreting data is an important part of both analyzing and communicating about data.

Video: Google Trends Video
Video: What is Google Flu Trends
Assignment: Digital Divide and Checking Assumptions
Rapid Research:

30 October 2017Introduction to Data and Exploring Trends
In this kickoff to the Data Unit, you will begin thinking about how data is collected and what can be learned from it. You will introduced to the Class Tracker project that will run through the first half of this unit, and will be asked to make predictions of what you will find when all the data has been collected in a couple.

When you post information to a scoial network, watch a video online, or simply search for information on a search engine, some of that data is collected, and you reveal what topics are currently on your mind. When a topic is quickly growing in popularity it is often said to be trending, but there are many different trends or patterns we might find in this data, including historical trends. These patterns might help us to identify, understand, and predict how our world is changing.

Resource: Google Trends
Resource: Google Trends Help Page
Activity Guide: Exploring Trends

26 October 2017Lossy Compression and File Formats
The main purpose of this lesson is straightforward: understand what lossy compression is and when/why it might be used. It's mostly used in visual or audio formats where a loss in precision is undetectable to human eyes and ears. Beyond that we, want to continue to build students' skills and comfort with rapidly doing research online, reporting back, and verifying that the information they got was good. This is good life skill but will also serve students well for the Explore Performance task. The hope with this lesson is that students will have greater insight into these technical articles that they know a bit about the binary make up of things—many of the image file format articles actually show the binary file format and what bits mean what.

Worksheet: File Formats Rapid Research

20–24 October 2017Encode 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 2017Encoding 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
Hexidecimal Odometer

16 October 2017Encoding 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 2017Text 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 2017Bytes 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 2017Peer 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 2017Practice 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 2017HTTP 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 2017The 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 2017Packets 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 2017Routers 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 2017The 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 2017The 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 2017Sending 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 2017Number 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 2017Sending 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 2017Sending 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 2017Hidden 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 2017Exploring 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 2017Exploring 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 2017The 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 curriculum and all students will need to create an account on the website and then join the Freedom High School class section: