Freedom High School Mr. Behling's Web Site
2º AP CSP 6º Fashion Design I
3º Fashion Design I 7º Exploring Computer Science
4º Business Computer Applications 8º Exploring Computer Science
2018-2019 Calendar Course Descriptions
Index

AP Computer Science Principles Syllabus
AP® Digital Portfolio Student User Guide
AP® AP Computer Science Principles Assessment Overview and Performance Task Directions for Students

28-30 May 2019Facial Recognition Presentation
You will research and create a presentation on the pros and cons of facial recognition. Locate a minimum of two sources for and two sources against the use of facial reconigition by both the public and private sector. In your presentation be sure to cite your sources.

Presentations will be presented on June 3, 2019 as your final.

23 May 2019Computer Ethics

Presentation from www.mpsaz.org/eva/staff/ksrandle/class1/files/1-importance_of_computer_ethics.ppsx

21 May 2019Rapid Research / One-Page Assignment

  1. A one pager is a single-page response to your reading. It is a way of making your pattern of your unique understanding. It is a way to be creative and experimental. It is a way to respond imaginatively and honestly.
  2. The purpose of a one-pager is to own what you are reading. We learn best when we can create our own patterns.
  3. A one-pager connects the verbal and the visual; it connects the ideas in what you read to your thoughts. It connects words and images.
  4. You will choose one of the following articles:
  1. Choose two or more meaningful quotes from the reading: passages/quotes that relate to the theme or main idea of the article. Be sure to use quotation marks, and include the page number where you found the quote.
  2. Provide a thought provoking explanation of the importance and meaning of the quote: (how does it help you, the reader, get a better understanding of the article, theme, etc.).
  3. Choose at least two words or phrases that you did not know before the reading and put the definitions in your own words.
  4. Include a personal response to what you have read: this is NOT a summary of the article. This is a thoughtful, insightful response. Think about the message the author is trying to get across, how the author uses different types of literary devices (suspense, mood, point-of-view) to make the story more interesting. This response must be two paragraphs minimum, with specific examples from the article.

Please remember the following guidelines for this assignment:

17 May 2019Sphero/Ollie Programming
Log into edu.sphero.com and under Programs --> Community search for Revenge of the BB-8 and look at the program. Then, with your bot and tablet/phone go to Sphero App and again search for the program and run Revenge of the BB-8. Some of the program blocks will not run on the Ollie. Then remix the program to get your bot to perform something different. There are many examples on the app that you can get ideas from. Each person will need to have their own remix saved in there Sphero App Account.

15 May 2019Are We Like Robots
Discuss how the human body moves to get an idea of what has to be thought about when making a robot move.

There are limits what robots can do because robots are limited by their bodies. It can be difficult to create a robotic had that can grasp small or delicate items—it would require many motors (simulating all the muscles in the hand) and many sensors to detect the item (simulating the neurons in the hand).
Activity: Tie a Shoe Like a Robot.

13 May 2019Debrief
What did you like about the class? What didn't you like about the class?

03-10 May 2019AP CSP Released Exam Question Review / Prep for the AP Exam

15 April—01 May 2019Digital Portfolio
Work on either on of your performance tasks.

11 April 2019Unit 5 Chapter 2 Lesson 16 — Functions with Return Values and
Lesson 17 — Building an App: Canvas Painter

Lesson 16 In this lesson students are introduced to the return command and learn to write their own functions that return values. Students first complete a simple unplugged activity based on the game Go Fish to introduce the concept of a return value. They will then complete a short sequence of exercises in Code Studio, which introduces preferred patterns for writing functions that return values. At the end of the sequence, students write and use functions that return values in a simple turtle driver app.
Activity: Return Values with Go Fish.

Lesson 17 Students continue to practice working with arrays and are introduced to a new user interface element, the canvas. The canvas includes commands for drawing simple geometric shapes (circles, rectangles, lines) and also triggers mouse and key events like any other user interface element. Over the course of the lesson, students combine these features to make an app that allows a user to draw an image while recording every dot drawn on the canvas in an array. By processing this array in different ways, the app will allow students to redraw their image in different styles, like random, spray paint, and sketching. Along the way, students use their knowledge of functions with return values to make code which is easy to manage and reuse.

09 April 2019Unit 5 Chapter 2 Lesson 15 — Processing Arays
The students will do two unplugged activities related to algorithms and program some of them themselves in App Lab. The for loop is re-introduced to implement these algorithms because it’s straightforward to use to process all the elements of a list. The lesson begins with an unplugged activity in which students write an algorithm to find the minimum value in a hand of cards. Students then move to Code Studio to write programs that use loops and arrays. Students are shown how to use a for loop to visit every element in an array. Students use this pattern to process an array in increasingly complex ways. At the end of the progression, students will write functions which process arrays to find or alter information, including finding the minimum value - a problem they worked on in the unplugged activity. Finally, an unplugged activity has students reason about linear vs. binary search and attempt to write pseudocode for a binary search.

Activity: Minimum Card Algorithm
Activity: Card Searching Algorithm

05 April 2019Unit 5 Chapter 2 Lesson 14 — Building an App: Image Scroller
Students will extend the My Favorite Things app they built in the previous lesson so that it now manages and displays a collection of images and responds to key events. Students are introduced to the practice of refactoring code in order to keep programs consistent and remove redundancies when adding new functionality. As part of learning to use key events, students are shown that event handlers pass a parameter which contains additional information about the event. This lesson also serves as further practice at using arrays in programs.

03 April 2019Unit 5 Chapter 2 Lesson 13 — Introductions to Arrays
This lesson introduces arrays as a means of storing lists of information within a program. The class begins by highlighting the difficulties that arise when trying to store lists of information in a variable. Students then watch a short video introducing arrays and a subset of the operations that can be performed with them. Students will work in Code Studio for the remainder of the class as they practice using arrays in their programs. At the conclusion of the sequence, students build a simple app which can be used to store and cycle through a list of their favorite things. In the next lesson, students will continue working with a version of this app that can display images and not just text strings.

01 April 2019Unit 5 Chapter 2 Lesson 12 — Loops and Simulations
In this lesson, students gain more practice using while loops as they develop a simulation that repeatedly flips coins until certain conditions are met. The lesson begins with an unplugged activity in which students flip a coin until they get 5 heads in total, and then again until they get 3 heads in a row. They will then compete to predict the highest outcome in the class for each statistic. This activity motivates the programming component of the lesson in which students develop a program that allows them to simulate this experiment for higher numbers of heads and longer streaks.

Activity: Worksheets – Flipping Coins

18–29 March 2019 — Spring Intersession Break

14 March 2019Unit 5 Chapter 2 Lesson 11 — While Loops
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.

12 March 2019 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.

08 March 2019Unit 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.

06 March 2019 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.
AP® AP Computer Science Principles Assessment Overview and Performance Task Directions for Students

04 March 2019Unit 5 Lesson 7–If Statements Unplugged
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. We trace simple robot programs on paper to develop a sense of how to read and reason about code with if statements in it.

Activity: Will it Crash?
Activity: Code Studio

28 February 2019Unit 5 Lesson 6–User Input and Strings
In this lesson, students are introduced to the string data type as a way of representing arbitrary sequences of ASCII characters. They will use strings to accept input from a user as they work on mastering two new UI elements, the text input and the text area. Students combine these skills to develop a simple Mad Libs® app.

Mad Libs® is a trademark of the Penguin Group (USA) LLC., which does not sponsor, authorize or endorse this site.

Assignment: App Lab

26 February 2019Unit 5 Lesson 5—Building an App:Clicker Game
This lesson is mostly a continuation and furthering of our understanding of variables and how they work. There are many, many pitfalls and misconceptions about variables and how to use them in programs for the early learner. Variables are often difficult to learn because they are not visual, they are abstract, and one must have a good mental model for what’s happening in the computer and with program instructions, in order to reason about the code and develop one’s own solutions to problems.

Assignment: Activity Guide – The Clicker Game

22 February 2019Unit 5 Lesson 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.

Assignment; App Lab

20 February 2019Unit 5 Lesson 3—Building an App: Multi-Screen App
This lesson gives students time to familiarize themselves with the process of making event-driven apps before we move on to deeper content. They will develop and create a minimum 4-screen app on a topic of their choosing. There are some other constraints on the project to help guide students in their thinking. Students are encouraged to do independent work, but alongside a "coding buddy" or "thought partner" to be a help along the way.

Assignment: App Lab

13-15 February 2019Explore Performance Task

It's finally time for you to take on the Explore Performance Task! Today and Friday, you should work individually on your project without teacher support.

Code Studio Unit on the Explore Performance Task.

08 February 2019Lesson 2: Multi-Screen Apps
Students continue learning about Event Driven programming in this lesson by learning how to add multiple "screens" to an app and adding code to switch between them. More techniques of debugging are presented, namely using console.log, a command that allows them to print out text which the user cannot see. It is useful for displaying messages to yourself to figure out what is happening as your program runs. Students will end the lesson by creating an improved version of the “chaser” game which has multiple screens.

Activity: Code Studio

06 February 2019Lesson 1: Introduction to Event-Driven Programming
Students will be introduced to a new feature of App Lab: Design Mode. Design Mode allows students to easily design the User Interface (UI) of their apps using a drag-and-drop editor. Students learn how to create UI elements they have seen before such as images, text labels and buttons, but they will see many more options for styling these elements with colors, font sizes and so on. Students also learn how to add event handlers - code that listens for and responds to user-events. Students also explore some common errors that come up in event-driven programming and will learn some important skills for debugging programs, chief among them being responding to error messages. Students end the lesson by creating the foundation of a simple "chaser game" which they will add onto in the next lesson.

Activity: Code Studio

04 February 2019Unit 4 Online Assessment and Explore PT.
The class will take the online Unit 4 Assessment and then spend the remainder of the time on your Explore PT. Remember that the instructor is unable to answer any specific questons about the Explore PT.

31 January 2019 — Unit 4 Lesson 10 Rapid Research–Cybercrime
This is a wrap up for Unit 4:Big Data and Privacy. Following a video on the topic, student will pick a type of cyber attack or cybercrime and do some "rapid research" to learn more about it. This is a prelude to completing their Explore PT for the AP Exam.

Video Worksheet: Cybersecurity and Crime Video Worksheet Submit to TurnItIn by end of class.
Activity Guide: Rapid Research–Cybercrime
Template: Cybersecurity One-Pager Submit to TurnItIn before Friday midnight.

25-29 January 2019 — Unit 4 Lesson 8 (completion) / Lesson 9 Public Key Crytography
Lesson 8 Worksheet: Keys and Passwords.
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
Activity: Multiplication + Modulo.

23 January 2019 — Unit 4 Lesson 7/Lesson 8 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.

Worksheet: Exploring the Vigenere Cipher Widget.
Worksheet: Keys and Passwords.

18 January 2019Identifying People with Data & The Cost of Free
Students investigate some of the world’s biggest data breaches to get a sense for how frequently they happen and what kinds of data is lost or stolen. They then learn how easily individuals can be identified with small amounts of seemingly innocuous information.

Check out the "World's Biggest Data Breaches Visulation" and "Data Privacy Lab" (currently under development and may not work for you). Links are on Code.org.

Complete the Activity Guide Research Yourself. Submit your completed document to TurnItIn.

Students examine some of the economic concerns and consumer tradeoffs related to apps and websites that collect and track data about you in exchange for providing you a service free of cost.

Article: Wall Street Journal: Users Get as Much as they Give

Complete the Activity Guide Privacy Policies. Submit your completed document to TurnItIn.

16 January 2019Rapid Research–Data Innovations
Being able to research modern computing innovations and gain insight into how those innovations are using data is a key skill of computer scientists. This is the first lesson in which students are asked to look at how data is used in a modern computing innovation. Students will learn to look at how data is used with an increasingly critical eye, but this lesson merely sets the table. Having intuitions about how data is used, or how it’s not used, can improve one’s judgment about modern technology and other innovations that increasingly use, produce, and rely on massive amounts of data to do their work.

Activity Guide: Rapid Research–Data InnovationBr /> Template: Data Innovation One-Pager

Complete the one-pager and upload to TurnItIn before midnight January 17, 2019.

14 January 2019Digital 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:

10 January 2019 — Unit 4 Lesson 2 Finding Trends with Visualizations
Students use the Google Trends tool in order to visualize historical search data. They will need to identify interesting trends or patterns in their findings and will attempt to explain those trends, based on their own experience or through further research online. Afterwards, students will present their findings to ensure they are correctly identifying patterns in a visualization and are providing plausible explanations of those patterns.

Resource: Google Trends
Resource: Google Trends Help Page
Activity Guide Exploring Trends. Save a copy and you will be able to key directly into the document. Note: 12/2018 – there have been reports of classrooms encountering a 429 error on the Google Trends tool, which results in students being blocked from using the tool for a day or so. It appears that Google Trends is interpreting all of the student requests as originating from a single IP address. So we will be go through part of the activity as class and then you will have an opportunity to try it on your own.

You will finish the day by taking the mid-year survey

07-08 January 2019 — 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: U4L01 Activity Guide - Big Data Sleuth Card

21 December 2018 through 06 January 2019 — Winter Intersession Break

20 December 2018Explore Performance Task
The Assessment Overview and Performance Task Directions for Students has been linked at the top of the screen. Over the next several weeks you will be 20 hours of class time to work on your performance tasks — plan on spending additional time as well.

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

14 December 2018Peer Review of Digital Scenes
Using the rubic posted on the Code Studio website, you will review four (4) Digital Scene write-ups from TurnItIn. This is something that I haven't tried before, so we may have to change it up a little bit.

10-12 December 2018 — Unit 3 Lesson 10 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.

Links to handouts are in Code Studio Unit 3 Lesson 10.

06 December 2018Unit 3 Lesson 9 Looping and Random Numbers
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.

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:

04 December 2018Unit 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 2018Practice Explore PT
Today the class will investigate what is required with the Explore PT portion of the AP Exam.

Scoring Sample Explore Tasks

28 November 2018Unit 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

15 November 2018Unit 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.

13 November 2018— -- >i>Unit 3 Human Machine Language
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

08 November 2018Unit 2 Checking for Understanding

08 November 2018Unit 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

02-06 November 2018Lossy 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

Rapid Research
In this part of the lesson students will conduct a small amount of research to explore a file format either currently in use or from history. Students will conduct research in order to complete a "one-pager" that summarizes their findings. They will also design a computational artifact (video, audio, graphic, etc.) that succinctly summarizes the advantages of their format over other similar ones.

Worksheet: Rapid Research Activity Guide.
Template: One-pager Template as a Google Doc to fill out on the computer.

31 October 2018Collaborative Critique of PT
Using the previously provided rubric, reach a consensus with your group on each of the criteria. Make positive suggestions for improvement.

25–29 October 2018Encode an Experience
Due 31 ctober 2018
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

19 October 2018Encoding 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

17 October 2018Text 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

15 October 2018Bytes 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

01 October–12 October 2018 — Fall Intersession Break

27 September 2018Peer Critique–Flash Talk
Present your talk and discuss the social implications of the topic. Compare what you know and/or have learned with what has been presented.

19–25 September 2018Practice 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: 19151266 passcode: freedom

17 September 2018HTTP 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

13 September 2018The 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 (passed out in class)
Links: Rapid Research Links

11 September 2018Packets 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

07 September 2018Routers 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.

05 SEptember 2018The 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

29 August 2018The 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.

27 August 2018Sending Formatted Text
Working with a partner, 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:

23 August 2018Sending Numbers
Students invent a binary protocol for sending a line drawing represented as list of grid coordinates (numbers). Students test and hone their protocols using a new version of the Internet Simulator which is now configured to automatically send and receive streams of bits.
Assignment: Sending Numbers 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 and begin to focus on 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

17 August 2018Hidden Figures
Finish watching the movie — Create a recruitment poster for AP Computer Science that will appeal to females and under represented students. Include any valid information that you can find online.

15 August 2018Hidden 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. Complete the handout and turn it in to substitute before you leave.

13 August 2018Sending 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 must 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.

09 August 2018Sending 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

07 August 2018Exploring Problem Solving Wrap Up and Personal Innovations

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

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

03 August 2018The 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 2018 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/STQMPF