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

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

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
Resource:



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 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:

studio.code.org/join/FDFBGT