Unit 0. Introduction
Revision Date: Jul 22, 2019 (Version 3.0)Summary: This optional lesson can be used as a brief preview to the course on the first day of class when teachers typically have many classroom administrative tasks to accomplish, but teachers also want to set the stage for the class. Students begin thinking about the influences of technology as they engage in a Think-Pair-Share strategy about the computing innovations that have impacted their lives. In addition, this is an opportunity to set beginning expectations about interacting with classmates in collaborative activities and to model writing in the content area.
Outcomes:
Overview:
Source: This lesson is adapted from Code.org (Unit 1 Lesson 00)
Innovation is an important theme of this course. Students will become more aware of how innovation in technology has affected their lives.
Student computer usage for this lesson is: none
Student journals, if they are ready. Otherwise, paper for students to write on.
This short activity can be used after any required first-day administrative duties.
Each lesson in the course will start out with a brief prompt for students to respond to in their journals. They will pair off to discuss their answers, then share their findings with the class.
If you have the journals ready, have students write the answer to this prompt in the journal: Identify technological innovations that you and/or your families use. (At LEAST four, how many can you name?)
If Clarification is Needed:
Note: Written communication is an important skill. This curriculum provides a variety of opportunities for students to develop the skills that they will need to perform well in the Performance Tasks.
Summarize the various ways that computing innovation has affected our lives. Assign the following homework.
Ask students to interview an adult and ask, "What computing innovation has had the most impact on your life? In what ways has your life been affected?"
Students will record the adult’s answer and compare and contrast the answer with their own original answer in a brief paragraph.
Optional Extension:
Suggest that students create timelines showing the years when the various innovations were invented or became available to consumers. (They could make their best guesses as a class and reorder the ideas on the board.)
Paragraph about the positive and negative impacts of the innovation that has had the most impact on the student's life in journal at the end of class.
Paragraph for homework that compares and contrasts an adult's answer to their own journal entry answer after conducting a discussion with an adult at home.
Unit 0. Introduction
Revision Date: Jul 22, 2019 (Version 3.0)Summary
Through presentations, videos, and discussion, students discover how technology has been changing and brainstorm ideas for how the next generation will have a different relationship with technology than the current generation. Students will also learn the relative measures of computer storage (KB, MB, etc.)
This is a prelude to the idea of big data and the impact of technology as well as an introductory opportunity to start to develop team norms, effective group participation and a respectful environment where every student is encouraged to contribute and share their perspective.
Outcomes
Overview
1. Introduction (5 min) - Students journal about the different relationships each generation has with technology.
2. Activities (40 min) - Students practice organizing by relative size and create posters to demonstrate learning.
3. Wrap-up (5 min) - Posters are shared with the class.
Student computer usage for this lesson is: none
Videos:
PowerPoints (in the Lesson Resources folder):
Students should have paper for taking notes. (If desired, use preprinted Information Age Notes, in the Lesson Resources folder)
Print out "Relative Measure Word Strips to cut" papers and "Measure Quantity Word Strips to cut" papers (in the Lesson Resources folder) and cut them into strips to give to students for the activity.
8 big sheets of big poster paper to place at the front of the room labeled:
Post-it notes for students
1. Journal: How were computers and technology different one generation ago?
2. Pair and share journal ideas, compile a class list. (Ideas you might suggest if they’re stuck: bigger, slower, less storage, less portable, not inside of so many other things, not as pervasive, less voice ability, less connection to the Internet, phones weren't very smart, more expensive, Previous generation: land lines, stand in one place when talking on the phone, separate cameras, internet via phone modem, no GPS, etc.)
3. Prompt students to come up with their own definition of what "1 generation ago" means. (Now a generation is considered to be about 25 years. A century ago it was about 20 years - from Ancestry.com)
{optional question for thought/discussion: Why were generations shorter a hundred years ago? ( don't tell them the answer, try to lead them to ask each other good questions to guide them to an answer: shorter lifespans, more death from disease, younger marriage age http://www.ancestry.com.au/learn/learningcenters/default.aspx?section=lib_Generation )}
4. Discuss the connections between what computing concepts are available and the communication, jobs and services that are available from one generation to the next.
Hand out mixed up relative measure papers (a document with strips to cut is in the Lesson Resources folder) to 8 students.
Ask them to try to line up by relative size at the front of the room to display the terms from smallest to largest. Ask if the class agrees, make changes by group vote. Don’t tell them if they're right yet. Tape or post the strips to the front wall.
Teacher Note: Be sure to get students' names and introduce them as part of the goal of developing a classroom community of learners. Continuously encourage positive social interactions.
Hand out the 8 papers with measured quantities (a document with strips to cut is in the Lesson Resources folder).
Ask those students to try to match themselves up with the relative measure papers. Give the class a chance to rearrange by group vote. Tape or post the strips to their relative measure paper.
Display the posters created by the class, share details and ideas from the posters. Have students journal or write a reflection on these key questions:
Additional Activities if Time Permits:
Instead of having students move to the front of the room to sort the paper strips into order, you could print a set for each group of 3-4 students and have them match and arrange them at their desks.
If students have a strong interest, or if you have extra time, use the ideas in "Extensions to the lesson on the Future of Technology" document located in the resources folder.
Self-checking exercise on identifying storage terms (KB, MB, etc.)
Assess group dynamics. Did everybody participate? Was communication positive within groups and respectful of the different needs and perspectives of group members?
Unit 0. Introduction
Revision Date: Jul 22, 2019 (Version 3.0)Summary: This lesson is a basic introduction to algorithms and the nature of intelligence. Students will play tic-tac-toe (noughts and crosses is the British version) between a “highly intelligent piece of paper” and a human. Students will explore how to create an algorithm and the concept of computer intelligence.
Outcomes
Overview
Source: This lesson is adapted from a lesson created by Paul Curzon, Queen Mary, University of London.
Student computer usage for this lesson is: none
A PowerPoint for this lesson is included in the Lesson Resources folder - IntelligentPaper.pptx and IntelligentPaper.pdf
Copies for student pairs of "intelligent paper directions" with tic-tac-toe directions on one side, and blank on the other - in the Lesson Resources folder - IntelligentPaperDirections.pdf
The wrap-up questions are available in the Lesson Resources folder as Questions To Consider.docx
Optional: a musical greeting card, a paper folded into a fortune teller (http://en.wikipedia.org/wiki/Paper_fortune_teller), a page of equations
The Python program for the optional activity is located in the Lesson Resources Folder - TicTacToeAI.py
What could make a piece of paper intelligent? (Think-Pair-Share)
(Use IntelligentPaper.pptx in the Lesson Resources folder to help deliver this lesson.)
Challenge the students by saying that you have a piece of paper that is at least as smart as any human. (Show the blank side of the paper, don't tell the students yet, but it has directions on how to play tic-tac-toe on the back.) Ask if anybody believes that this is possible.
Show students examples of "smart papers," such as:
Encourage discussion and debate, prod students to argue their point for or against intelligence, and get them to develop their own criteria and definition for intelligence. Write the class definition and criteria on the board.
Tell the class that the paper has never lost a game: it has perfect intelligence.
Challenge students to play a game against the paper. The paper is peripherally challenged (it has no arms, and thus needs somebody to do its work for it). One person represents humankind, while the other person represents the paper. Play tic-tac-toe with a partner. The paper must begin the game.
Possible outcomes:
But, the paper WILL NOT LOSE.
Try letting humankind go first. (Wait and try it: The paper will lose. Why?)
Challenge students to write out detailed directions (an algorithm) that will never lose the game whether it goes first or second. Point out that algorithms are made by putting detailed steps in order (sequencing), making choices depending on the situation (selection) and repeating certain sections (iteration).
Students should use their new algorithm to play against each other. Follow the same model for the paper versus the human game.
Discuss:
Computers programs implement algorithms.
Computer programs carry out algorithms by controlling the computer memory, central processing unit, input and output. When we carried out our tic tac toe algorithm what did we do that corresponds to each computer component?
Memory:
Central Processing Unit:
Input:
Output:
Additional Possible Activities and Discussions Time Permitting:
See if students know what a CPU is. If not, define. [
CPU is the abbreviation for central processing unit or processor, the brains of the computer where most calculations take place.
Reflection: (written in journal or discussed as a class)
How is a computer CPU (processor) similar to/different from a human brain? (both process information, can use logic and math, can follow instructions; computers only do what they are told, can work without need of food or sleep, etc.)
A human only has 1 brain but a computer can have multiple CPUs. How could a computer with multiple processors (CPUs) divide up a task like playing tic-tac-toe? (This is a good optional exercise if there is extra time, to divide up what the steps are and see if any can be done in parallel to save time. example: one processor checks rows, one checks colums to see if there is a winner)
Have students write their own definitions for the four words at the end of the presentation:
(Use PyCharm or some other Python environment to show the TicTacToeAI.py program from the Lesson Resources folder.)
Assign homework for Lesson 1-1: Provide students a copy of the “Questions to Consider” in the resources folder and assign the reading:
Blown to Bits – Chapter 1, can be found here http://www.bitsbook.com/wp-content/uploads/2008/12/chapter1.pdf and is available in the lesson resources folder for Unit 0 Lesson 3.
Extension: If you have extra time, have a championship contest between one set of student-generated instructions and another, alternating who goes 1st and 2nd. You can work in groups of three, with one person acting as the judge if desired.
Vocabulary entries in journals from the end of the PowerPoint presentation
Group participation in interactive activity
Writeup about a more general solution
Unit 1. Your Virtual World
Revision Date: Jan 04, 2020 (Version 3.0)Pre-lesson preparation
Students must complete a pre-reading assignment (the first chapter of Blown To Bits, which is available online or in the Resources folder). This pre-reading can be assigned at the end of Unit 0.
Summary
Students will read about the "Digital Explosion" and discuss exponential growth. They will discuss and share insights on what a world without digital communication would be like and investigate some of the things that are possible because of digital communication. They will then share their findings with the class.
Chapter 1 of "Blown to Bits" and the lesson motivate students to begin thinking about the advancement of technology and its impact on many aspects of their lives (both positively and negatively). Subsequent lessons will research particular impacts on society in more depth.
Students will consider a world without digital communication to emphasize the impact that computers have on their everyday lives and how integral computers and digital communication have become to our ordinary existence.
Outcomes
Student computer usage for this lesson is: none
TEACHER RESOURCES
In the Lesson Resources Folder:
Prior to the Lesson:
During the lesson, students will need:
This lesson assumes that students have either taken a previous CS course or that you have done Unit 0, so that students know what a computer is, how to write a basic algorithm, and the basic history of technology. It also assumes that students have read Blown to Bits, Chapter 1.
Set a timer. In your journal list all the ways you communicated in the past 24 hours both in person and using technology. Give students 1 minute to list all of the ways they have engaged in communication today (verbal/non-verbal). Compile a class list of commucations used.
Use a creative method for dividing students up into teams of 3-4 (line up by birthday, etc.)
You can use the presentation "What If Part 1" as a guide through this lesson.
At School | At Home | Other Places |
Have students discuss with their partner the answers to the pre-reading questions from Blown To Bits Chapter 1 (see Questions to Consider in Teacher Resources).
Choose an open-ended question from the pre-reading questions. Either:
Have partners pick their most interesting answers and post them or write them on something in the front of the room to share with the class.
Have students work in pairs to discuss and answer the following questions. (If possible, provide students with calculators. An exact value is not required to formulate an answer. The choices reflect three different types of growth.)
Someone offers you a summer job with a choice of three pay rates:
1. $10 per hour for eight hours of work for day for 30 days.
2. One dollar the first day, two dollars the second day, three dollars the third day, and so on (increasing by one dollar each day).
3. One cent on day one, two cents on day two, four cents on day three, and so on (doubling each day for 30 days).
Which pay rate would you choose? Why? What does this illustrate?
Solution: After 30 days,
Clearly, the last choice is the best, even though it starts with the lowest value (although you are unlikely to receive such an offer!)
This activity illustrates exponential growth (which was discussed in the chapter in the context of data growth).
Students may not use any digital devices to complete this activity. This assignment must be handwritten. If students need a copy of their assignment for the class discussion, they must write another copy. Have students submit their assignment at the start of the next class.
Have students write in their journals: What is the most important digital device in your life? Why is it the most important?
Use the presentation "What If Part 2" to remind the students about the scenario from the previous class. Working in the same teams from the previous class, have the students develop a step-by-step plan for getting a message to their parents without using any form of digital communication. This activity must be completed without using any digital tool.
Teams brainstorm and organize ideas about the impact of digital communication. This activity uses the results from the Day 1 homework.
Discussion: Students work in their teams to answer the following questions:
Each member of your team should choose one of the following topics:
*Note – these topics are just suggestions
In the following question, fill in the blank with your chosen topic. Write a paragraph responding to the question. Be sure to include examples and evidence to support your ideas and answer.
Imagine that the digital world that we know now never existed. There are no computers or cell phones -- no digital communication at all. Write a short story that takes place in this non-digital world. Include how your characters would communicate in different situations and how daily life would be. Be as creative as you can.
If time permits, have a few students share their stories.
For this activity, students need to use their last social media post the created on Day 1.
Journal - Hooray! Digital communication has been restored after three years. Look at your last social media post, and think about the following questions.
Have students discuss their reflections with an elbow partner.
Consider different ways to choose teams and assign team roles
Interview with a User of an Enhancing Technology
If you are familiar with an individual who benefits from an abilities-enhancing innovation or a technology that helps the individual overcome a disability, interview the person about the impact the technology has had on his or her life. Ask them questions about how the innovation works, how it has affected the way they live (the ways in which they play or work). Ask about how it has affected their family and friends. If possible, record the interview. Ask for permission to share with your classmates or to post online.
Speculate about Today's Innovations
Select a recent innovation - something recently in the news. Predict the impact that this innovation will have on individuals. Predict any societal impacts you can foresee. Label the impacts as positive or negative. Explain your reasons for the label.
Unit 1. Your Virtual World
Revision Date: Jan 11, 2020 (Version 3.0)Summary
Computing greatly affects the everyday lives of today's teens, but many of them are not consciously aware of these influences. In this lesson, students investigate the impact of the Internet on their lives.
Using a presentation about modern computers as an example, the teacher models the process of asking questions, organizing ideas, doing research, and giving a presentation. Students will then work in assigned groups to create presentations on the Internet and its Impact using online collaboration tools.
Students will experience some of the many collaborative tools available online and develop effective group communication skills.
Students should understand more about what the Internet is, what a computer is, and how the Internet affects our daily lives.
Students should develop an improved understanding of the power of the Internet as a positive agent of change.
Students should use collaborative online tools to work in effective groups using good research skills to deliver a worthwhile presentation.
Students describe ways that greater speed, detail and precision in processing information is possible because of computation.
Outcomes
Student computer usage for this lesson is: required
Teacher Resources
Student Resources:
Crowdsourcing Resources:
Instruct students to think about the following questions and journal about their thoughts. Afterwards, have them pair up and share their answers with each other. (See slide 2 of the presentation in the lesson folder: "Unit 1 lesson 2 LIGHT".)
(Use the Unit 1 Lesson 2 LIGHT presentation for this activity.)
(See Research and Collaboration Assessment Rubric.) Since this is the first significant collaborative activity of the course, discuss team dynamics and norms, communication skills and conflict resolution, in addition to an overview of what online collaborative tools can be used. Review the collaborate assessment rubric together and creatively introduce the good interpersonal skills you expect (see below)
If possible, act out examples of how NOT to use good interpersonal skills. ( a cooperative student with some drama experience can be a great partner to plan in advance with)
Assign students to investigate and use online collaboration tools to:
Part 1 - Preliminary research and collaborative development of pecha kuchas on the impact of the Internet (20 min)
Part 2 - Preliminary presentations/sharing and feedback (10 min)
Part 3 - Research and collaborative development of complete pecha kucha presentations on the impact of the Internet (35 min and homework / out-of-class time as desired)
(See the self and group assessments and "Pecha Kucha Student Handout" in the lesson folder.)
Discuss how computation facilitates the creation and modification of computational artifacts with enhanced detail and precision.
Teachers are encouraged to have students present single slides and give each other feedback before continuing to do the research for the complete presentations.
Students are working in collaborative teams for the first time, use reflections and dialog to assess how effectively they are using online tools to collaborate and how they are resolving issues working as a team.
Students create a presentation while working in groups and using online collaboration tools. A rubric will be used to assess the student group presentations along with self-reflections.
Unit 1. Your Virtual World
Revision Date: Jun 11, 2020 (Version 3.0)Students will read about and discuss the issues that arise from the use and misuse of technology. Over the two sessions, students will assess their current uses of computing devices and then narrow their focus to research and then discuss social media, online retail and banking, cloud data storage, and government surveillance as a class.
Student computer usage for this lesson is: required
These materials may be useful if you want to spend some time with the entire group discussing a few key topics.
Ask students:
What benefits come from taking the AP Exam?
Who should take the AP Exam?
Show the AP Exam Goals presentation.
Discuss student responses to the questions after the presentation.
Assign each student a number from 1 to 4. Students read the associated articles and prepare a 1 minute summary of a way computing fostered creativity.
Groups share their summaries.
Ask students to define the following. Compare their definitions to the ones below.
Computing innovations can have unintended consequences. We will investigate some ethical considerations that should be considered before releasing a new development. For this activity, group students in pairs. If there is an odd number of students then a group of three may be used.
As a class suggest revision(s) to the 10 Commandments of Computer Ethics.
Divide the class into four groups. Each topic group will work together to explore resources and prepare to share with the other groups tomorrow. Each student in the group should make their own copy of the worksheet, so they can bring them back to their original jigsaw groups. Students use their worksheet (ExploringInnovationsWorksheet.docx) to identify and record
After completing the worksheet, students should complete the Venn diagram (ExploringInnovationVenn.docx) to summarize key impacts of an innovation.
The topics (and examples of positive (+) and negative (-) impacts) include:
For each of the above topics, there is a resource sheet in the lesson folder that can be provided to student groups. (Optionally, you may want to create additional resource sheets, or let students select other topics and find their own resources.)
Each group should discuss its progress this far in researching their topic. Students will have 10 minutes tomorrow to prepare to make a presentation to the rest of the class.
Students should take a few minutes to journal about the following prompt:
Topic Groups: Have students briefly assemble into topic groups to compare and revise notes.
Jigsaw Groups: Have students assemble into their original jigsaw groups. Each member will present the information on the topic that was researched. All notes need to be shared within these groups.
Regroup and discuss the topics as a class if time permits.
Each student should select a topic that they would like to explore further and write the topic in their journal. It might be a narrow subtopic from the broader topics that were explored within this lesson. They might also want to write down a few interesting innovations connected to a topic. They will refer back to this during the practice performance lesson later in the unit.
Unit 1. Your Virtual World
Revision Date: Jun 11, 2020 (Version 3.0)Summary
A bit is a single unit of information. Bits are the fundamental building blocks of digital computing. There are many different ways to represent a single bit physically, and collections of bits can be combined to represent everything from numbers to electronic books, to control programs for interstellar probes. In this lesson, students will learn how bits are stored and how they can be used to represent information. Students will further explore how numbers can be represented in binary form, how to convert numbers between these different forms, and how they are used by different applications.
This lesson should be repeated with increasing levels of expectations. The first time this lesson is taught the emphasis is on binary and conversion to decimal, and representation of letters and colors using binary - ASCII and RGB colors.
The second time it is taught should be during Unit 2. The previous topics should be reviewed with the emphasis this time on conversion to hexadecimal and representations of decimal values to support the idea of different number types in Python.
The final time it should be taught - perhaps at the beginning of the Internet Unit - the emphasis should be on comparing binary and hexadecimal values without converting them to binary. This should support students understanding of the formatting and use of internet packets.
Outcomes
Overview
Session One
Session Two
Session Three - New for 2020-2021
Optional Activities
Source
Parts of this lesson were adapted from code.org.
The students will...
Student computer usage for this lesson is: required
For the Student
For the Teacher
In the Lesson Resources folder:
Available on the Web for Teachers:
Jacquard loom: early computer programming
The teacher will introduce the "Jacquard Loom," an early machine that made use of punch cards to make complicated textiles.
Represent Values as a Light Switch
Teaching Tip: Guiding the students toward understanding that the number of switches determines how many numbers can be represented. The pattern is 1 switch = 2 (or 21) numbers, 2 switches = 4 (or 22), 3 switches = 8 (or 23), etc.
Use the "JustBits" presentation in the lesson folder to explore different ways to represent bits, and different ways in which bits can be used to store different kinds of information.
General Presenting Tips:
Presentation Guide:
9 + 4 as 1001 00 0100
11 – 3 as 1101 01 0011
2 * 5 as 0010 10 0101
15 / 5 as 1111 11 0101
Say: In this course, we will use the Python programming language. In Python the size of an integer we represent is not limited to 32 or 64 bits as some programming languages. Python integers are limited in size only be the memory space the computer has. The exam reference sheet produced by the College Board for this course invisions integers the same way that Python does - only limited in size by the computer's memory.
Converting between decimal and binary
Use the "BinaryConversionWorksheet" in the lesson folder (from Code.org) to let students explore (individually or in pairs/small groups) how to build an algorithm for converting binary to decimal. As you progress through the activity, answer questions as they arise, or ask students to explain how they arrived at the answer to check for understanding.
Other extensions and activities that may be useful:
Introduction
Option 1:
Option 2:
Extension: If you want to give your students more practice problems for in-class practice or homework, you can use the worksheet generator at http://www.worksheetworks.com/math/numbers/systems.html
How are text, colors and images saved in hexadecimal format? Select some of the following to present and discuss with the class.
Journal
Students should consider the following prompt, and record their thoughts in their journals:
Introduction
Have students discuss with elbow partners then add to their journals a description of how the computer represents a collection of bits as:
Herding Bits Activity 1 (20 min)
Open Google Drive and create a new Google Sheet. Copy the URL of this New York Times article into cell A1. We will use the software in Google Sheets to find the author of this article and then you will use it to find the author(s) of two other New York Times articles of your choice.
Find how the New York Times identifies the author of its articles.
View the New York Times article on the web page.
Highlight the name of the author, right click and select inspect (the element) that contains the author’s name.
Find the itemprop property in the element and verify that it is assigned the same value as in the formula below.
=IMPORTXML(A1,"//span[@itemprop='name']")
Configure and use the IMPORTXML function in Google Sheets.
Copy the formula above into cell H1 and press enter.
Verify that the name of the author is displayed in cell H1.
Working with elbow partners identify two other New York Times articles and use this technique to have the software in Google Sheets round up the author of each article.
Herding Bits Activity 2(20 min)
Sometimes the information is contained in a larger structure (herd) called a table. This time we will use the software in Google Sheets to copy a table from a web page then use the table values to find information.
Collect the bits contained in the World’s Tallest Buildings table found on Wikipedia.
Copy the URL from the link above to cell A1 on a new Google Sheet.
Copy the formula below into cell A3 to herd the bits from the second table on the web page to your spreadsheet.
=importhtml(A1,"table",2)
Copy the table values to a new sheet.
Select lines 3 through the end of the table and copy them to the clipboard (ctrl-c).
Create a new Google Sheet.
Use ctrl-space-c to paste the values into the new sheet starting at cell A2.
Select column D and use the Data menu to sort the data into alphabetical order by country name.
Find the three countries with the most buildings listed among the world’s tallest buildings.
Discuss with elbow partners what other tables might be interesting to scrape from the internet. Try and find one of those tables online and herd those bits into a spreadsheet.
Elbow partners share the results of their attempts with the class students should explain in thirty seconds:
What table they tried to find.
Their success at scraping or herding the bits.
What information they might extract fromt their table.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A computer program uses 3 bits to represent int...
An online store uses 6-bit binary sequences to ...
Part 1 - Exploring Physical Bit Representations
Teaching note: The research and writing activity in this lesson presents an opportunity to talk about copyright laws and emphasize that copied content must be credited to the rightful author or organization.
Part 2 - Sharing the research
Teaching note: Model writing skills through a variety of writing opportunities and prompts. Encourage students to write complete sentences that clearly communicate their ideas.
The Extension section above gives a variety of outside activities, some of which are appropriate for verbal and others for tactile learners.
Note: If there are students in the class with physical limitations who are unable to stand, stretch, or squat, the game can be modified appropriately:
Visual - Decimal, Binary, Octal, and Hexadecimal Number Systems Video - http://whyu.org/whyUPlayer.php?currentchapter=3¤tbook=1&youtubeid=5sS7w-CMHkU
OR - https://www.youtube.com/watch?v=_oaBT-TndCs
Kinesthetic - Hexadecimal Drum Machine - http://www.mathsisfun.com/games/hex-drums.html
Auditory - Hexadecimal File Music - https://www.youtube.com/watch?v=fyBf4Y2mVzs
Extension Activity 1. Students that have mastered the conversion techniques can peer-tutor students [one-on-one] that are having difficulty solving the conversions.
Extension Activity 2. Students can observe their computer’s network interface card (NIC) MAC address in hexadecimal, and convert the MAC address to binary and decimal.
See algorithms of number system conversions:
Alternative presentation for Gifted Students doing Decimal to Hexadecimal Conversion:
For decimal number x:
Convert x=603 to hex:
n=2, 162=256 < 603
n=3, 163=4096 > 603
So
n = 2
d2 = int(603 / 162) = 2
Δ = 603 - 2×162 = 91
n = 1, x = Δ = 91
d1 = int(91 / 161) = 5
Δ = 91 - 5×161 = 11
n = 0, x = Δ = 11
d0 = int(11 / 160) = 1110 = B16
Δ = 11 - 11×160 = 0
(d2d1d0) = 25B
Answer: x = 60310 = 25B16
Learn to Count in Binary and Hexadecimal - http://webelfin.com/webelfindesign/counthex.html
ADDITIONAL/ALTERNATE FORMATIVE ASSESSMENT MATERIAL or Class Activity if time permits - from unplugged.com
http://csunplugged.org/binary-numbers
Brainstorm reasons for storing and communicating secret messages. Challenge students to think of both helpful and problematic reasons. Students record at least two of each.
View steganography presentation. Presentations are available on YouTube.
Abdullah Seddiq (MIT Blossoms) has Counting Systems with teacher's guides and additional resources. This video aims to explain counting systems (Decimal, Binary, Hexadecimal). Students will get to know how to convert numbers between these systems. Also students will learn how to do some byte and bit level operations. They will use a Visual Basic (VB) application that changes colors through logical operation on numbers. See also The Magic Picture: Steganography in Bitmap Files
Assessment Questions:
Journal check - questions presented as described in the lesson plan
ASSESSMENT QUESTIONS
Getting Started section: questions on converting between bases and describing the purpose of hexadecimal numbers.
Unit 1. Your Virtual World
Revision Date: Jun 11, 2020 (Version 3.0)Summary
Computing innovations have the potential to significantly impact our lives, both positively and negatively. In order to understand the full range of impact (or lack of impact) of a given innovation, one must consider how differences in geographic location, culture, and socioeconomic status influence the effect that given innovation has on a specific group of people. Students learn about the digital divide on national and global levels and analyze how three different computing innovations impact people, making ethical considerations while doing so in order to determine if the impact is beneficial or harmful.
Outcomes
Students will:
Student computer usage for this lesson is: optional
For the Student
For the Teacher
In the Lesson Resources folder:
Present "Lesson1_5" PowerPoint slides (in the Lesson Resources folder).
Analyzing the Ethics of an Innovation (Slides 3 – 10) :
The Digital Divide (Slides 12 - 17):
For this portion of the lesson, students will be analyzing the impacts of two innovations: artificial intelligence and the Find My Friends App. A worksheet for this activity (“Analyzing Impacts of Digital Innovations”) can be found in the lesson resources folder (Lesson1_5wkst.docx).
If you come up with an innovation that solves a problem, what concerns do you need to consider
before releasing it to the world?
(Possible answers: Whom will it benefit or harm? Are there people it won't reach at all?)
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
An author is considering publishing an e-book u...
Historically, it has been observed that compute...
Students will analyze the innovation of 3D printing in the same manner they did for AI and the Find My Friends App, except they will be finding at least one online source on their own from which to draw their information. Provide students with the “Lesson 1.5 Homework” found in the lesson resource folder (Lesson1_5hw.docx) and provide them with the instructions given on Slide 22.
This assignment gives students practice analyzing the impacts of an innovation on their own, as well as attributing facts to a resource and the information to include for that resource for the Explore Performance Task. (The Explore PT is introduced later in the curriculum.) The worksheet Lesson1_5hw (in curriculum resources folder) can be used to support students, or they can write this information on a blank piece of paper, etc. The worksheet does not specify which innovation they are researching, so you could reuse it for future research related to the impacts of innovations.
For students who require more time for processing and writing down the impacts of AI, show the video a second time (the narrator in the video talks quickly).
If time is limited, split students up so that half of them are analyzing AI and the other half are analyzing the Find My Friends App. Have students review their findings with another student who analyzed the same innovation. Then have them jigsaw (https://www.teachervision.com/group-work/cooperative-learning/48532.html ) with students who analyzed the other innovation to share what they found.
Guided notes would be helpful for ELL or SpED.
Journal:
Homework:
Explore Performance Task
Unit 1. Your Virtual World
Revision Date: Jun 11, 2020 (Version 3.0)Summary
Previous lessons in the "Your Virtual World" have investigated the impact of computer innovations on society. In this lesson, students will learn how using technology can enhance our abilities to solve larger and broader problems (problem solving). The lesson begins by examining reCAPTCHAs, which most students will be familiar with, but they may not realize how they solve two significant problems. It continues with solving problems at scale with distributed computing and crowdsourcing.
Outcomes
Student computer usage for this lesson is: required
For the Student
For the Teacher
Think-Pair-Share: Solving problems with reCAPTCHA
Say: Today we are going to examine Crowdsourcing a strategy for enlisting the work of many people to identify problems, solve problems and share solutions via the internet. And we are going to examine how computing technology facilitates the collection and creation of this information.
As a class, read the following from the paragraph from the NY Times article Crowdsourcing, For the Birds.
Tens of thousands of birders are now what the lab calls “biological sensors,” turning their sightings into digital data by reporting where, when and how many of which species they see. Mr. Martinka’s sighting of a dozen herons is a tiny bit of information, but such bits, gathered in the millions, provide scientists with a very big picture: perhaps the first crowdsourced, real-time view of bird populations around the world.
Watch the video What is Crowdsourcing?. https://www.youtube.com/watch?v=Buyub6vIG3Q (2:50)
Point out distributed computing to solve big science problems:
Display some examples from a service like BOINC that lets you help cutting-edge science research using your computer. BOINC downloads scientific computing jobs to your computer and runs them invisibly in the background. It's easy and safe.
About 30 science projects use BOINC; examples include Einstein@Home, IBM World Community Grid, and SETI@home. These projects investigate diseases, study global warming, discover pulsars, and do many other types of scientific research.
Citizen science is scientific research conducted at least in part by individuals from many different locations who contribute relevant data to research using their own computing devices. You don't need to be a scientist to contribute to citizen science.
Direct students to Akinator.com or 20Q and play an online game that aggregates human information. Teachers may have students do this independently or work together as a whole class.
Direct students to Kickstarter.com. Students choose what they think is worthy of funding and respond to the following
Watch Video: Crowdsourcing and Crowdfunding Explained (3:48) https://www.youtube.com/watch?v=-38uPkyH9vI
While students watch the video they take notes about crowdsourcing including:
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
Both online newspapers and social media sites are
Which of the following is a true statement abou...
Students describe how people participate in a problem-solving process that scales using examples from citizen science (or another example of problem-solving.
The purpose of this activity is for students to contribute their knowledge to the aggregated collection of knowledge known as "Wikipedia."
http://allthingsd.com/20130719/after-waze-what-else-can-mobile-crowdsourcing-do/.
https://www.datacamp.com/community/tutorials/simplifying-sentiment-analysis-python
https://trends.google.com/trends/?geo=US
"Picture Stitching" is the practice of blending hundreds of photos to create one huge detailed picture.
Stitched 365-gigapixel image of Mont Blanc created by stitching together 70,000 images http://www.in2white.com/# .
Geo-referenced 3D model of Zurich
Can students imagine additional possible crowdsourcing or citizen science projects?
How does online collaboration improve problem solving abilities?
Sample assessment questions:
Unit 1. Your Virtual World
Revision Date: Jul 23, 2019 (Version 3.0)Summary:
This is the unit assessment for the first unit of the AP Computer Science Principles curriculum - Your Virtual World. This curriculum provides both a testbank of questions with answers for objective questions, and a sample final unit exam prototype for teacher use extracted from the testbank.
Outcomes:
Overview:
This assessment ascertains that students have a basic understandings of all the concepts presented in the unit, therefore, all learning objectives are assessed in this unit.
Students should be aware of the magnitude of impact on individuals and society that result from technological advancements in computing, as well as the rapid pace of change that occurs because of new developments.
Student computer usage for this lesson is: optional
In the Lesson Resources folder:
Make sure each student has a copy of the assessment and the necessary writing instruments.
Allow one 45-50 minute class session to administer this assessment.
Distribute the Unit Assessment Test, which consists of 25 objective questions and a choice of four essay prompts. (Teachers can instruct students in selecting one or more short essay responses for students to answer, based on teacher preferences and time allotments.)
Collect all papers from the students.
This is the summative unit assessment for Unit 1 - Your Virtual World. A sample summative test and a testing databank of questions are provided by the curriculum. (Note that the sample assessment may not be appropriate for some classes, depending on the particular focus that the teacher has taken -- e.g., the sample assessment includes hexadecimal conversions, which are an optional component of Lesson 1-4.)
Unit 1. Your Virtual World
Revision Date: Jul 23, 2019 (Version 3.0)Pre-lesson preparation
Review the Teaching Technical Writing slides to help prepare teaching the topics of research and writing. It may be wise to review citation styles and pick one you want your students to use -- as long as they are consistent, the particular style should not matter. For Session 2, you can print out the Cut it Out activities from the slides for your students if you want them to try for themselves on paper.
Summary
Students will learn the basics of technical writing and research, practicing skills including finding good sources, citing properly, and differentiating between quoting, summarizing, and plagiarism.
Outcomes
Overview
Session 1
Session 2
Student computer usage for this lesson is: required
Additional resources on the basics of research include the following. Keep in mind that what will benefit students the most for this lesson is to focus on tips and guidelines related to content rather than generic advice like avoiding too many adverbs.
Discussion: What is research?
Refer to the "Teaching Technical Writing" slides in the Resources folder for an overview on technical writing and the process of research as well as advice on teaching those topics.
Discussion about good sources of information and what meets that criteria [5 min]
Finding good sources of information [10 min]
Discussion about quoting, paraphrasing with attribution, and plagiarism [15 min]
Practice judging plagiarism vs. appropriate citations [10 min]
Journal Entry
With the time remaining, have students reflect and write in their journal what topics they are considering for their performance task and which sources of information they plan to find first.
Discussion: Who writes?
Use the "Writing Tips Process and Style" slides in the Resources folder to guide this lesson and begin with the questions and overview on slides 2 and 3.
Interactive Lesson: The Writing Process [20 min]
Group Activity [20 min]
Journal Entry or Homework: two options
Have your students reflect and write responses to one or both of the following:
Session 1 Journal:
Session 2 Journal / Homework:
Unit 1. Your Virtual World
Revision Date: Jun 24, 2020 (Version 3.0)Summary: Students will explore the impacts of innovations in a guided lesson and produce a 1-minute screen capture video (artifact) to summarize their findings.
Outcomes:
Overview:
Session 1:
Session 2:
Student computer usage for this lesson is: required
In the Lesson Resources folder:
For the Teacher:
A quick activity that requires an effective Internet search
Explore Project - Introduction
Brainstorming
(Limiting the choices will allow students to compare and contrast their final artifacts, facilitate self-assessment, and make it possible to identify exemplars of each option.)
Develop a Plan
Students should complete the planning sheet to determine what they will need to accomplish for the project in class on day 2.
Journal Entry
Give students a few minutes warning before the end of class. With 4 or 5 minutes remaining, have students reflect and write in their journal a verbal snapshot of the artifact they are creating.
Practice performance task
Some students will benefit from having a teacher-selected topic and a step-by-step plan for completing the task.
While the students are completing the task, check for understanding by asking the students:
The artifact (1-minute screen capture) from this task and a reflection on the creative process can be used as a summative assessment using the rubric in the Teacher Resources
Unit 1. Your Virtual World
Revision Date: Jan 11, 2020 (Version 3.0)This is the first of three lessons where students research computing innovations.
This lesson will focus on what a computing innovation is and what the harmful and beneficial effects are.
Explain that in this lesson students will investigate computing innovations and their impacts. The first session will be for research and presentation preparation. Our next session will be for the presentation of the research. The research and presentation will be done in groups of three.
Brainstorm a list of innovations that might be computing innovations. Have the class vote on which innovations are computing innovations according to these guidelines:
Have the class evaluate the innovations listed to see if any of them should be placed in a different category according to this definition.
Say: Like all innovations, computing innovations have an original purpose that motivated their design and guided their development but the innovation may have impacts and effects beyond that purpose. Whether intended or not computing innovations have changed how we communicate with our families and friends, how we obtain and collect news, how we investigate and prosecute crimes and how we conduct business.
Place class members into teams of three.
Have each team select a computing innovation - not necessarily one previously discussed - and research answers to the following questions. Students should collect at least one reference for each answer.
Students use their research to prepare a poster presentation for their project. All team members must be involved in the presentation.
In this lesson, we will study and present views of beneficial and harmful impacts of computing innovations. The same effect may be beneficial to some and harmful to others. Each presentation must answer the following questions.
What is the name of the computing innovation?
What is the function of the innovation?
How does the innovation use computing?
How might the innovation impact fields other than computing such as the sciences or the arts?
What information does it need to perform its function?
Who has been impacted in a positive way by the innovation?
How were they impacted positively?
Who has been impacted in a negative way by the innovation?
How were they impacted negatively?
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Summary
Students will be introduced to programming for the first time. They will learn about computer science, computing for good, some of the potential outcomes of programming, and the definition of abstraction. Students will also be learning about program design.
Students must understand that stereotypes of computer programmers are not accurate and that 'coding' is something everyone can learn to do. Computing can be a creative expression and used for good.
Possible misunderstandings: The term NGO is used in the article Programming for Good: The Story of Code for India, without explicitly defining it as Non-Governmental Organization.
Abstraction is a tricky idea. Python allows us to describe what we want to do such as "print" and "input" because it provides the details that explain to the computer how to accomplish the task of taking many keypresses followed by a press of the Enter key to allow the computer to store the information we entered, and also knows how to take information stored in the computer's memory and cause it to appear as a series of recognizable dots on the screen using print. Computer programs use input, output, processing, and memory.
The design topics taught in the 2020-2021 session introduce both user interaction and user experience design.
Outcomes
Student computer usage for this lesson is: required
TEACHERS need to have the class and user accounts set up in Runestone to track student progress.
For the Students:
Note: If computer is not being used, students will need their own copies of the articles
[use the Presentation on Programming Python in Runestone]
Journal Entry: What are some ways that writing programs is a creative endeavor? [ slide 2]
Share answers with your elbow partner. Then share answers with the class.
Open Discussion: What are some ways you know that computing has been used for “good?” [ slide 3 ]
Go to Programming for Good: The Story of Code for India
http://www.attendly.com/programming-for-good-the-story-of-code-for-india/
Read articles or selected text in pairs, with alternating pairs each reading one article. Pairs of pairs get together to share what they read and what they got out of the article.
In pairs, answer the following questions:
Check for Understanding: Teams should share their answers to their instructor.
Have students sketch the computer hardware architecture diagram in Python for Everybody Chapter See https://books.trinket.io/pfe/01-intro.html#computer-hardware-architecture.
Explain that computer processes guide the flow of information that is input, processed, stored or output. The processor (CPU) uses short term memory for doing calculations and temporary storage and long term memory if needed. Have students sketch the computer components diagram above. Explain to students that they will learn to program to develop software using each of these components.
The program output is usually based on both input values and values already in memory. Watch the following video to see how this occurs.
Watch the video on how programs use input, processing, memory, and output to run programs. https://www.youtube.com/watch?v=BSTrWhAGta8
Read Computer Hardware architecture by Dr. Severance.
https://books.trinket.io/pfe/01-intro.html#computer-hardware-architecture
.
Have students go to the article Seven things you should know if you’re starting out programming at
http://www.theguardian.com/info/developer-blog/2011/oct/07/programming-developer-journalist
Pre-reading activities:
In pairs or groups of three, assign each group to read and summarize one of the seven programming principles in the article.
Check for Understanding: Each person should write a 140 character tweet on their topic, next class the group should share their findings with the class.
Getting Started (5 min)
Journal
Say: Online tools support collaboration by allowing programmers to share and provide feedback on ideas and document. Often this collaboration takes place online. What are some online tools you think programmers might use to collaborate?
Student share responses. Be sure that receiving feedback from both developers and users is discussed.
Guided Activities (40 min) Use the Program Design presentation in the Lesson 1 Resource folder.
Say: Success and failure are both about meeting criteria. To know if our efforts are a success, we need to know what the requirements are. So the first step of the design process is investigating the program requirements. In the development process, the design phase outlines how to accomplish a given program specification. Software developers typically organize the overall program into a collection of individual components or modules. Collectively, the component or modules meet the program's requirements.
Highlight: The users are important!
Highlight: Innovation is enhanced by group collaboration!
Jigsaw: In groups of four, read and discuss the four techniques for identifying requirements as listed by Hans Jonasson.
For each of the four techniques, use the Design Techniques table to list the techniques purpose, its advantages, and its limitations
Technique |
Purpose |
Advantage |
Disadvantage |
Say: User interaction design, at its heart, is all about satisfying the end-user’s needs and wants. The design may include brainstorming, storyboarding or even used interaction design as is this activity.
As a class, watch this short UI/UX Design Process video to see how many of the following design strategies are illustrated.
Investigate user interface design (UI) https://www.usability.gov/what-and-why/user-interface-design.html
Investigate user experience design (UX). User Interaction Foundation
On the board, have students list possible ways that an investigation can be performed and keep going until all of the following methods have been uncovered:
The rest of this unit will address techniques used in the development phase of a program.
Development is both iterative - with multiple rounds of testing and improvement - and incremental with development occurring in small testable steps.
Development then should include documentation throughout its development and support program testing throughout to meet the overall design requirements. Documention is important whether working individually or collaboratively. Documentaion includes comments stored within programs where supported by the programming language (not all languages support comments) and outside the program (such as in web pages).
True/False. For each of the following statements, work with an elbow partner to determine if the statements are true or false.
For the false statements, modify the statements so they are meaningful and true.
Program documentation describes the function and development of program segments.
Comments written in a program are read by the computer before the program can execute.
Program documentation is best done after the program is written and tested.
For efficiency reasons, program documentation should only be written when working in a collaborative program development environment.
If a programming environment does not support comments then none should be used.
Program documentation comments should be as terse as possible since they are internal notes to the developers.
Bookmark or store your these true statements for future reference.
Design requires a lot of effort throughout the programming project.
Write a short paragraph explaining to a new project manager the benefits of investing this time in the design process.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A program is expressed in a programming language.
The diagram below shows a circuit composed of two
Oral reading strategies such as "popcorn reading" where students take turns reading a paragraph and then pass the reading off to another student in the class, or other reading strategies such as students reading together quietly in pairs, can be used for longer texts.
Longer readings can be broken up by sections or paragraphs to speed the lesson up or keep students engaged.
Activity 1 could be assigned as homework from the day before as a step into this lesson to allow more time in class for the other readings:
Additional activity: Ask students to read the Preface (pages iii-iv) and Chapter 1 introduction and section 1.1 (pages 1-2) of Python for Everybody and answer these questions:
Students will use several different strategies for reading and writing responses based on their readings.
Classroom discussions and student responses (written and oral) will allow instructors to check for understanding.
Summative assessment will be included in Part 2 on the use of the PyCharm IDE.
Student handout filled in
Tweet from optional homework assignment
Progress recorded in Runestone for the General Introduction
Unit 2. Developing Programming Tools
Revision Date: Sep 08, 2019 (Version 3.0)Summary
PyCharm, an IDE for Python, will be introduced. Keywords, file, and variable naming conventions will be addressed.
Outcomes
Overview
Students will learn what an IDE (Integrated Development Environment) is and why it is good to use one when programming.
Students will be able to find, configure and use the PyCharm IDE to write, save, run, debug and retrieve their Python modules according to the requirements of their instructor.
Student computer usage for this lesson is: required
For the Students
Have students go to the article Seven things you should know if you’re starting out programming at
http://www.theguardian.com/info/developer-blog/2011/oct/07/programming-developer-journalist
Introduction to PyCharm
Teacher note: This may be a good time to have students configure the default Working Directory as shown in the Python and PyCharm Installation and Configuration Guide file in the lesson resources folder.
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
(from http://www.pythonforbeginners.com/basics/keywords-in-python)
Students are to:
Sample code (will throw an error)
# author = 'iam tester'
# date July 4, 2024
# name.py
name = 'Ima Tester'
age = 15
print (name + " is " + age + " years old.")
The above code will throw an error, because age
is an integer and needs to be expressed as a string OR concatenated using a comma (,)
.
name = 'Ima Tester'
age = 15
print (name,"is",age,"years old.")
Important notes about naming your files and variables:
and del from not while
as elif global or with
assert else if pass yield
break except import print
class exec in raise
continue finally is return
def for lambda try
(from http://www.pythonforbeginners.com/basics/keywords-in-python)
Students can work in pairs, side by side, to help each other through each step of the process.
Checks for understanding throughout the entire process of learning to use the PyCharm IDE by using active participation in trying each step of the process and having students help their elbow partner when difficulties arise.
Assessment tasks:
Unit 2. Developing Programming Tools
Revision Date: Jan 05, 2020 (Version 3.0)Summary
This is the first day of a two-session lesson sequence with topics covered by mini-lectures, explorations, and practice exercises.
Outcomes
Overview
Students will provide a definition of "algorithm".
Students will identify the characteristics of describing algorithms in English, pseudocode, or a programming language.
Students will demonstrate an understanding that there are different algorithms for different situations, such as parallel processing for multiple CPUs.
Student computer usage for this lesson is: none
PowerPoint Slides for mini-lectures (AlgorithmsPseudocode1.pptx in the Lesson Resources folder)
Excel sheet summary for creating a 4-by-4 Magic Square (MagicSquare4by4.xls in the Lesson Resources folder)
(optional) 16 papers, each with a number from 1-16 on it for students to use when acting out the magic square.
–Small group, then large group, review of two previous homework assignments (students were assigned to use two sources to find definitions of "algorithm" and were assigned to write down the steps involved in a daily task – creating a peanut butter and jelly sandwich; getting to school; brushing teeth; completing homework; etc…) The definitions, sources, and algorithm steps were to have been entered into their journal.
- Have students consider solving problems alone or with others. Point out that some computers have more than one processor and an algorithm can be written to do 2 or more processes in parallel. Consider some complications that might arise in the simple algorithms that have been developed by students if there were multiple CPUs.
Say: In programming, a code statement is a part of program code that expresses an action to be carried out. Note that it is a single action. Each step of an algorithm is to be carried out on its own and exactly as written.
– Act out selected homework “steps of a daily task” to highlight the potential ambiguity of English instructions. While acting out the algorithm have students look for the three sufficient parts of any algorithm - steps done in sequence, steps selected if a condition is met and steps done that are repeated.
Algorithms that appear similar differ in that they yield different side effects or results. For many tasks however, more than one algorithm has been developed that accomplish the same tasks - though they may not be equivalent in some ways. For instance, some may be simpler, some may be faster, some may be more efficient but all may still be be correct in the sense of achieving the desired result.
– Review Understanding by Design (UBD)-style slide for “Algorithms and Pseudocode: Need to Understand / Important to Know or Do / Worth Being Familiar With” (slide 2 of AlgorithmsPseudocode1.pptx presentation in Lesson Resources folder).
Students join groups that have developed algorithms to accomplish the same task. Students are to exchange algorithms and determine:
Time permitting, the class creates a 4-by-4 Magic Square, as described in MagicSquare4by4.xls in Lesson Resources folder. Sixteen students should be chosen to represent the sixteen numbers, and physically move into the 16 spaces following the algorithm in this document. (This provides an example of a “simple” algorithm that solves a more complex problem; it also gets the students out of their seats and moving around).
Reflect: Would it be easier or harder for 2 people to work on this together? (multiple CPUs or parallel processing)
–In AlgorithmsPseudocode1.pptx (presentation in Lesson Resources folder), walk through “Main Ideas”; “Representing Algorithms”; and “Sequential Algorithms” slides, including pseudocode circle example.
"In your words" pair/share as the concept of what an algorithm is (and what is not an algorithm -- e.g. "sort the numbers") is developed.
Class-wide development of the graphical organizer should be facilitated with scaffolding to support students who are having difficulty with the concept.
The following "Checks for Understanding" could be used to guide the students towards the two learning objectives.
Objective: Students will be expected to learn to provide a definition of "algorithm".
Objective: Students will learn to identify the characteristics of describing algorithms in English, pseudocode, or in a programming language.
Students will research formal definitions of algorithms. These will be entered into their journals and pair-shared with a peer.
Students will write out the sequence of steps in one or more daily living tasks, such as "brushing their teeth" or "building a peanut butter and jelly sandwich." These will be entered into their jourmals and pair-shared with a peer. Selected solutions will be "acted out" in the classroom.
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Pre-lesson Preparation
This is the second session on algorithms
Summary
During the second session, the students will use pseudocode to describe an algorithm.
Outcome
Overview
Students will write pseudocode using sequencing, selection, and iteration constructs.
Student computer usage for this lesson is: optional
Files in the Lesson Resources folder:
AlgorithmsPseudocode2.pptx : PowerPoint Slides for mini-lectures
Student Handout and Key for Matching Pennies Game
Student Handout for Rock Paper Scissors
Psuedocode Summary and Examples of common Algorithms.docx
Journal: Describe the algorithm of another student. Is there enough detail to allow somebody to follow the steps?
Walk through “Selection Statements”; “Iteration / Repetition” slides from the AlgorithmsPseudocode2 file in the Lesson Resources folder. Emphasize:
1. Whenever you need to store information, it must go into a variable. So think about what variables might be needed when you are creating your algorithm
2. Program steps are executed in the order they are listed from top to bottom.
3. Selection and Iteration statements require conditionals. Identify a conditional as something that returns a True or False answer. If selects the next statement to occur by answering the conditional question as being true or false. I have in the past pointed out the True and Then both start with T so TRUE always does the THEN, wherease Else and False both end with LSE, so when the answer if FALSE, you do the ELSE.
While continues to loop as long as the conditional answer is TRUE. When the conditional answer is false, the algorithm jumps to the statement after the End While.
4. Nearly all programming languages are equivalent in terms of being able to express any algorithm. Each has its own way to use variables, conditions and repetition which are needed for a solution to almost all algorithms. Clarity and readability are important considerations when expressing an algorithm in a natural language or a programming language
During powerpoint, guide students through the Game of Matching Pennies (a student working copy and a solution key is in the Master Teacher Resource folder for this lesson).
Students work in pairs to create and share their pseudocode. Use the Rock Paper Scissors hand out to have student pairs psuedocode Rock Paper Scissors. Your algorithm should play the game 10 times and count the number of times each player wins and the number of times they tie.
Students may create their algorithms form scratch or remix exisiting ones.
If there is time, have groups switch algorithms and critique the algorithm of the other group.
Walk through pseudocode syntax summary handout called Pseudocode Summary and Examples of common Algorithms.docx in Lesson Resources folder.
Students work through challenges and check their results against sample solutions.
Review slide: "Why we have leap years."
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A flowchart is a way to visually represent an a...
A programmer completes the user manual for a vi...
An algorithm has been developed to compute the ...
Central High School keeps a database of informa...
Consider the code segment below. The code consi...
Consider the following code segment. A segment of
The algorithm below is used to simulate the res...
The question below uses a robot in a grid of sq...
Two lists, list1 and list2, contain the names o...
Assign students to create pseudocode for leap years.
Pairing of students and crossing pairs to form groups of four should be used for the set of exercises that are part of this lesson.
Think-Pair-Share
Students will write pseudocode for algebra / geometry formulas. These will be entered into their class notes.
Students will write pseudocode for determining if a year is a leap year. This will be entered into their journals.
Unit 2. Developing Programming Tools
Revision Date: Jan 12, 2020 (Version 3.0)Summary
Students learn simple Python programs and their structure, as well as the basics of debugging.
Programs can be developed to solve problems (to help people, organizations or society), for creative expression, to satisfy personal curiosity or to create new knowledge.
Additional outcomes beyond the original purpose of a program are possible.
Outcomes
Student computer usage for this lesson is: required
For the Students:
https://github.com/spyder-ide/spyder
http://interactivepython.org/runestone/static/thinkcspy/index.html
Jigsaw: Divide students up into 5 groups. Have each group prepare a creative presentation on one of the topics below with visuals or an active component (rap, song, dramatic reading, etc.) to convey the message of that section. Groups have 15 minutes to prepare a 2-minute presentation.
To minimize time spent debugging in support programming goals:
Journal: Use formative assessment Questions 1 - 3:
Set up your IDE and Python at home (if you can) or use an online Python IDE such as https://repl.it/languages/Python3 or ideone.com . Type up a simple "Hello World" program and get it to run. Bring in evidence that it works or write a few sentences about the issues you are having in trying to install it or write about your experience using an online IDE, or write out the code for Hello World without looking at any notes and report on how easy or hard it was to remember the details. (Be careful not to make any student feel awkward for lack of a home computer they are allowed to install softare on)
Collect handwritten notes or evidence that Python 3 is set up at home or the student is able to use https://repl.it/languages/Python3 or ideone.com. As students work on tutorial, address specific issues with students who had trouble with install.
Complete an introductory tutorial:
Runestone Ch. 1 http://interactivepython.org/runestone/static/thinkcspy/GeneralIntro/toctree.html
Develop the beginnings of a chat bot where the computer and user introduce themselves to each other. The computer asks a question, the user provides a response and the computer responds back again, including the user input within the response (see https://groklearning.com/csedweek/ for ideas). Extend: Give your chatbot a personality like a friend, grandfather, therapist, or child.
First discuss: How can additional desired outcomes happen independently of the original purpose of a program? (examples: a program like chatbot could help someone learn a new language, provide entertainment for a shut-in. Computer games can increase reflexes, logic skills, provide motivation for someone in physical therapy)
Answer Formative assessment Questions # 4 - 6:
4) Name several different input devices.
5) How do we comment a Python program? Why do we use comments?
6) In your journal, make a tree diagram, name the three types of errors, and give examples of each. Which type of error do you think is the hardest to detect and why?
Write code to introduce yourself. Display your name. Greet and ask for three interests. Display the three interests and give a reply like "That's interesting!" Print your code. Next day: Have students introduce one another by “running the code" of a classmate. If you cannot get PyCharm to install, use http://ideone.com/ or repl.it or create this program by hand on paper.
Suggested strategies:
In your journal, make a tree diagram, name the three types of errors, and give examples of each. Which type of error do you think is the hardest to detect and why?
Find the errors in an algorithm or in Python statements covered to date
Define what debugging is and give examples of the 3 categories of bugs (syntax, logic(semantic) and runtime)
Describe the differences between programming and debugging.
Unit 2. Developing Programming Tools
Revision Date: Jan 05, 2020 (Version 3.0)Pre-lesson Preparation
Create a table of values of all types and print a copy of them on the cardstock for each group. Cut the papers up into individual cards, so each value is on its own card. Place each group's cards in a plastic bag.
Summary
Students are introduced to basic programming vocabulary, including integers, floats, strings, values, and expressions. They will work through a set of guided notes and slides, and, then, be released to explore Python through an independent (or paired) exercise.
Outcomes
Overview
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Runestone: Values and Expressions
Write a reflection on the homework from last class to write code to introduce yourself. The program should:
Did you run into any errors?
Do you feel that you can easily write this kind of code?
Share results with an elbow partner.
Teacher Note: Ideally, students are paired with people they don't work with as frequently, in order to promote classroom culture.
Point out that Python is a high level programming language. It provides many tools that make it easy to build complex programs with little effort. Among these tools are the ability to store and retrieve values and evaluate (find the single value of) expressions. Python can evaluate - find the specific value of - variables, variables with operators like plus and times, and of functions.
Numeric values can be constants like an integer, retreived form numeric variables or calculated based on expressions that combine values or variables witharithemtic operators.
In order for the computer to execute the code, it must translate(compile) the Python statements into a lower level language that the particular computer can understand and process. A variety of different variable types is one of the abtractions that are available in a high level programming language, and the language must define how the data is both stored and manipulated for each kind of data. You do not need to understand HOW the implementation works in order to use variables in your program.
Refer to the PowerPoint called Values and Types in the Lesson Resources folder.
'.'
is a float (ie. 2.0)True
and False
(they must be capitalized!)Check for Understanding: Have students write an integer on their paper (check with their elbow partner that it is a number). Ask students to turn that integer into a float with the same numerical value. Talk about going the opposite direction (float to int).
(Example answers: int: 3 float: 3.0 or 3.00 or ...)
"hello"
+ "world"
= "helloworld"
"hello"
+ " world"
= "hello world"
"hello"
+ 2 produces an errorTrue
and False
(they must be capitalized!)i< j
i<=j
i>=j
i>j
i == j
i!= j
('='
means something else!)Teacher Note: See Differentiation for two variations of this activity.
Students are to complete the Lesson 2.9 Order of Operations in Runestone (https://runestone.academy/runestone/books/published/thinkcspy/SimplePythonData/OrderofOperations.html)
Students will complete the Exploration Questions worksheet which is found in the Lesson Resources folder and complete one of the two exercises below.
2 + 5
5 * 2
5 ** 2
5 / 2
5 % 2
5 + 2 * 4
5 * 2 - 3
"pay attention to details'
' " what's for lunch?", my partner asked'
"What's for lunch?", my partner asked"
Ideas for grouping students:
Group Activity Variations:
Checks for understanding are incorporated throughout the lesson.
Exit ticket questions are incorporated into lesson.
Unit 2. Developing Programming Tools
Revision Date: Jan 12, 2020 (Version 3.0)Summary
Students will learn to manipulate variables and value assignments through an activity in which they must become the variable. By the end of the lesson, they will have identified variables as memory locations. They will also assign, copy, and destroy values in order to perform a swap algorithm and visualize Python's manipulation of variables and values in memory.
Outcomes
Overview
Student computer usage for this lesson is: none
For the Students:
Optional:
For the Teacher:
team1 = "Miami Heat"
team2 = "Washingon Wizards"
temp = team1
team1 = team2
team2 = temp
What is a variable? What are some things in your life that change often?
See slides in Lesson Resources Folder for a guided introduction.
Disposable cups, index cards, names for variables on strings (to hang around students' necks)
tree
, because the word tree
has no relevance to your age.)team1
because we’re talking about sports teams. Put the name around the student’s neck to indicate they have become the variable team1. This student has now become team1
, and should not respond to any other names! Note: A variable name will never have quotes around it - that would indicate that it is a string (i.e., a type of value rather than a variable's name). Variables can be identified (loosely) by words or letters that are not in quotes and are not keywords (for, if, else, etc.).team1
. Because we have never used this variable before, we are initializing it - putting something in this box (memory location) for the first time. On the board, write team1 = "Miami Heat"
team1
is the same as the Washington Wizards; it is only where were are currently keeping that team. Write “Miami Heat” on a notecard and put it into the cup.team1
and "Miami Heat", this time using team2
and "Washington Wizards".team1
and team2
?team1
and team2
to swap their values. Key point: when we access a variable and put its value in the place of another variable, that value is being copied. By doing so, however, any previous value in the variable is lost. temp
.temp
.)temp
variable, so the variables do not overwrite one another.temp
(named so because we will not be using it very long). Write temp = team1
on the board. Notice that in this assignment, it looks like we are setting a variable equal to another variable. Instead, we are setting the variable temp
equal to the value inside the variable team1
. This means that the value is copied to a second location.temp
.temp
cup.team1
. Write team1 = team2
on the board.team2
and copy the text from the notecard onto a new one. Move to team1
and replace the previous notecard with this new one.team1
. Rip up the notecard or throw it in the trash.team2 = temp
by following the same process. Look at the code written on the board and ask a student to walk us through each step.
CFU: Why did we create the variable temp
?
(Because variables overwrite the values of one another, and if we were to just set team2 = team1
we would lose one of the values.)
Students should notice:
In reality, Python actually has a "shortcut syntax" that allows us to make this swap in one step. It looks like this:
a,b = b,a
If we wanted to swap the values in team1
with team2
, we would simply have to write:
team1,team2 = team2, team1
Here, Python is doing exactly what we were doing. It is internally creating a variable (which has no name but serves the same purpose as our temp
variable), using it as a place holder, and then completing the swap.
To assign a value to a variable in Python we use the equal sign such as age = 15. On the exam produced by the College Board an arrow is used to indicate assignment.
Using the syntax on the College Board's exam reference sheet, an arrow “←” is used so the same assignment is written age ← 25.
Why would the makers of Python build in this function? What other uses does it have?
A version of this worksheet can be found in the Lesson Resources folder, titled "Swap to the Top".
Give students a list of games that have been played by the teams on the board, and the resultant new ranking. Have them create a piece of code that will reorganize the teams into the correct ranking. (They can assume that the variables team1
... team13
already exist and have been initialized to the Friday ranking.) Give them the option of doing so through the use of manipulatives, or on their own paper.
Discuss: All computer programs can be broken down into smaller, simpler steps. By developing components, testing to be sure they are correct and combining them you can create complex, correct programs. Did students get a feeling for systematic development, and how to trace a program one step at a time to verify correctness? Distribute Exit Ticket in Lesson Resources Folder which asks students to figure out the values of variables hello and goodbye after the code in each exercises been executed.
What is the difference between a variable in a math class and in a computer science class? What is the difference between a float and an integer? Why would you use one instead of the other?
Continue working on "Swap to the Top" worksheet.
Create a 3 column ‘one-pager’. In the left column, create a copy of the code from the activity (a swap algorithm) including team1
, team2
, and temp
that performs the complete swap. In the middle column, write steps that occur in the code (Step 1: Initialize variable and assign the value). In the third column, the students should draw a visual of what that looks like in terms of disposable cups and index cards. (They can just write the variable name on the cup, rather than drawing in a person as well.)
Checks for Understanding are embedded in the lesson. They are also shared below.
What is the type of “Miami Heat”?
(“Miami Heat" is a string. We know this because it has quotes around it .)
What is the difference between a value and a variable?
(Values can be stored in variables. The content of a variable can change to different values, but its name will always be the same because the name is just an identifier of a location in memory.)
Think-Pair-Share: A value is only safe (and not lost to the world of cyberspace) if it is in a variable. A variable can only hold one value at a time. How can we swap values between team1 and team2?
(various answers)
Why did we create the variable temp
?
(Because variables overwrite the values of one another, and if we were to just set team2 = team1,
we would lose one of the values.)
Task: Create a piece of code that will rearrange the ranking of the teams in order to reflect the outcome of previous games. (Independent Practice)
Unit 2. Developing Programming Tools
Revision Date: Jan 11, 2020 (Version 3.0)Summary
Students will learn how programs can solve problems using the various types of conditional statements in Python programs.
Decisions in programs are made using conditional statements.
Outcomes
How are comparison operators and Boolean expressions used with conditional statements?
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Reference Texts:
Online interpreters:
Think of a decision you make in your daily life and how you make the decision. In your journal, write about your decision and the process you use to decide.
Teaching note: take a few minutes to have students share responses (whole class, elbow partners, small groups).
==, !=, <, >, >=, <=
Includes AND, OR, and NOT
Say: The College Board’s exam reference sheet uses:
Example: Type various combinations of Boolean values (True / False) with Boolean operators (not, and, or) into the IDE (PyCharm)
Suggested Activity: What’s in the box?
Materials: Two small opaque containers, one small item for each container, two post-it notes.
Set-Up Directions: Set up the activity before the class arrives, following the directions below:
if numofGreen > numofBlack:
open green box
else:
open black box
Activity Directions:
Show the example from How to Think Like a Computer Scientist text (ActiveCode:6 (ch05_4)) or a similar example. Briefly demonstrate how to read flowcharts while showing the example from How to Think Like a Computer Scientist. Point out that the API (https://docs.python.org/3/library/) is always available as a language reference to help translate from algorithms/flowcharts into code. The API describes many tools to make it easier to create programs and is an important tool for all programmers.
If desired an if-else statement that returns boolean values can be replaced by the conditional expression or vice versa.
Instead of:
if (x < y):
return True
else:
return False
we could use:
return x < y
Define: A code segment refers to a collection of program statements that are part of a program.
Have students answer the following questions:
1. What will be printed by the following code segment?
x=15
if x==25:
print ('Pizza is yummy')
else:
print ('My teacher is awesome')
2. What will be printed by the following code segment?
x=35
y=52
if x!=25 and y==52:
print ('Pizza is yummy')
else:
('My teacher is awesome')
Suggested Coding Example:
n = input('Please enter your password: ')
if n=='P@s5w0d':
print ('Welcome, correct user!')
else:
print ('Incorrect, try again')
Say: The College Board’s exam reference sheet uses if and if-else statements like Python except it uses curly braces to indicate the block of statements controlled by if or if-else statements.
IF(condition)
{
}
IF(condition)
{
}
ELSE
{
}
1 Complete the following Runestone Activities
2 If/else practice problem: In the IDE, write a program that will prompt a user to enter a value for a food item. Evaluate the variable food.
If the value of food
is equal to “potato salad,” display “In Stock”. If the value of food
is not equal to “potato salad,” display “Not in Stock”.
Test your program with the following values for food:
pizza
popcorn
potato salad
Thinking about conditional execution, answer the following questions.
Alternate Instructional Strategy for Guided Practice :
Alternate Instructional Strategy for Journal: Interactive Journaling
Unit 2. Developing Programming Tools
Revision Date: Jul 22, 2019 (Version 3.0)Pre-lesson preparation
Students must have an understanding of using conditional statements, and have completed all the assignments from Lesson 2-8.
Summary
Students will learn how programs can solve problems using nested and chained conditional statements in Python programs.
Outcomes
Overview
Students must know that conditional statements can be used inside of other condtional statements using nested and chained conditional statements.
Vocabulary:
Student computer usage for this lesson is: required
In the Lesson Resources Folder:
Reference Text:
Project Ideas:
In your journal, write what will be displayed by the following code segment. How do you know your answer is correct?
x=2500
if x < 1000:
print(“small number”)
else:
print(“big number”)
Show physical representation using real life example by revisiting the box example from previous lesson:
Materials: Four small opaque containers, four small items, two opaque containers big enough to fit two small opaque containers, Six post it notes to label each container with a color
Set Up Directions: Set up the activity before the class arrives following the directions below:
if numofBlue > numofIndigo
if numofRed > NumofOrange
open red box
else
open orange box
else
if numofYellow > NumofGreen
open yellow box
else
open green box
The Activity Directions
Demonstrate the coding process of the example below.
Guided Activity 1 - Coding Example: Write a program that evaluates a variable "age" and displays a group age category (you are not an adult, you are a senior citizen or you are an adult.)Suggested Instructional Strategy - Think Aloud - model your thought process for solving this problem. Include comments in your code.
age = 18
if age < 18:
print(“you are not an adult”)
else:
if age is > 65:
print(“you are a senior citizen”)
else:
print(“you are an adult”)
Write a program that prompts the user for their age and displays their age category ( you are not an adult, you are a senior citizen or you are an adult.) If they are older than 200 display a message that reads "humanly impossible".
age = int(input("How old are you"))
if age < 18:
print("you are not an adult")
elif age > 200:
print("humanly impossible")
elif age >= 65:
print("you are a senior citizen")
else:
print("you are an adult")
Assign students random numbers from 0 - 250. Have students decide what group they belong to (child, adult, senior citizen, not human) and explain why they made their choice. *** You could have students physically move into the groups, hold up a sign with their answer or answer quietly in their journal.
***Note
It is recommended that:
All partners should be actively involved in the program development. For example, you may choose to employ Pair Programming, in which one partner “drives” (types and uses the mouse) while the other “navigates” (reviews and helps to guide what the driver is doing), with the partners changing roles every 20 minutes. Another method of collaboration is for each partner to develop pieces of the program, combine those pieces, and provide frequent feedback to each other during the development process.
-The College Board Computer Science Principles, Performance Assessment ©2014
Thinking about Nested and Chained Conditional Statements, answer the following questions:
Extensions
Homework
Alternate Instructional Strategy:
Alternate Instructional Strategy: Interactive Journaling
Students will create a collaborative program demonstrating concepts introduced in this two part lesson. Students will be assessed using a rubric and will reflect on their learning in their journal
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Summary
In this lesson, students will be introduced to the concepts of iteration and for
loops.
Outcomes
Overview
Note: Turtle graphic examples in this lesson work with the community version of the PyCharm IDE and Python 3.4.1.
Students must understand that programs use the concept of iteration to perform repeated tasks.
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Required materials:
Useful additional resources:
Discuss with the school’s AP Testing Coordinator before presenting to students.
Schools exam registration policies and procedures
AP Exam fees, fee policies, and fee reductions
Confirm that students have joined the MY AP class section.
Show the AP Exam Registration presentation.
Give student’s time to register for the exam.
Verify that students can see the date and time of their exam in the class section view in My AP.
Journal: Think about events in your life that require a repeated action. They could be something simple such as eating a bowl of cereal. List two events in your life that require an action to be repeated. What is the action? What prompts the need for the action to happen? How often does the action happen?
Note: Students will extend their reflections later in the lesson.
Materials: 5-10 objects that can be stacked (lego, duplo blocks, plastic cups…)
The activity: Place the objects on a table.
1.Say: “At the conclusion of this activity, all of the objects will be stacked.”
Chose one object to begin with.
2. Say: “I will start with this object and I will continue to stack until there are no single objects left on the table. How many times do you think I will stack an object? Why?”
3. Ask: "Are there any single objects on the table?”
Students should answer yes. Stack one object on your beginning object
4. Ask “ Are there any single objects on the table?”
Students should answer yes. Stack one more object on your started stack. Continue to ask if there are any single objects on the table until the stack is completed and there are no more single objects on the table. Keep a tally of how many times you repeated the process.
5. Ask: “How many times did we repeat the process? Did your prediction match the result?"
6. Explain to the students how the activity represents the concept of iteration and continue into the discussion of iteration.
Computers are used in assembly lines and other places with lots of repetition because they can be almost perfectly accurate thanks to sensors that can be calibrated to the millimeter, and without needing to take a break.
Choose one of the events you wrote about in your previous journal entry. Take a moment to write the pseudocode for the repetitive action associated with that event.
Note: Check for understanding while students are working.
Example: Eating a slice of pizza:
While pizza on plate
pick up from plate
take a bite
place on plate
bite is consumed
loop
This guided activity introduces students to for
loops using turtle graphics.
(See handout in Lesson Resources folder: Turtle Graphics Guided Activity: The for loop)
Give students the following code stem. Have the students alter the code to perform the listed tasks.
Code Stem:
import turtle # Allows us to use the turtles library
window = turtle.Screen() # Creates a window to display graphics
bob = turtle.Turtle() # creates a turtle named bob
#Write your code here
window.exitonclick() # Exits the window when clicked
1. Have the turtle draw a triangle using a turtle
2. Now that you know how to add turtles and program them to draw lines repeatedly, use your imagination and creative ability to create your own picture using multiple for
loops and turtles.
Journal: In your journal summarize the process you used to create your picture. What problems did you encounter? What concepts do you need clarified?
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
Consider the following code segment, which uses...
The following question uses a robot in a grid o...
Students can be given a copy of the guided activity handout to follow along.
a variety of checking for understanding techniques
quick quizzes
peer review
interactive journaling
Students will use for loops and turtle graphics to create graphic representations of iteration. They modify a code stem using turtle graphics to:
1. draw a triangle
2. draw a picture using multiple for loops and turtles.
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Summary
Students continue learning about iteration by using while
loops and nested iteration. Students work through a guided tutorial on while
loops and learn more turtle graphics features. They also have the opportunity to utilize the pair programming model to facilitate collaboratively writing programs using for
loops, while
loops, and turtle graphics. Throughout the lesson, students are given the opportunity to use their journal as a reflective tool.
Outcomes
while
loops. for
and while
loops can be written (nested) inside of other for
and while
loops.Outline
for
and while
loops with turtle graphicswhile
loops. for
and while
loops can be written (nested) inside of other for
and while
loops.Student computer usage for this lesson is: required
In the Lesson Resources folder:
Other:
What will be displayed at the end of this program?
y=0
for x in range (0, 8):
y += 1
print (y)
Define the Pair Programming Model: As the name implies, pair programming is where two programmers share one computer. One programmer codes while the other observes the code as it is typed in. The two programmers switch roles frequently. Common models such as pair programming exist to facilitate collaboration.
Introduce the Activity:
Solutions to both programs are in the slideshow.
Open Repeat Loops.ppt in the Teacher Resourses.
Say: The College Board’s exam reference sheet uses REPEAT loops instead of for and while loops. The REPEAT n TIMES { } executes the block of statements n times.
The College Board's REPEAT UNTIL(condition) { } structure executes the block of statements without ending until the Boolean expression condition evaluates to true. If the condition never evaluates to true the loop coninue indefinitely (called an infinite loop).
In the REPEAT UNTIL(condition), the Condition is evaluated before the loop body is executed so if the condition evaluates to true the loop body is never execued.
Ask: Which of the two REPEAT loops is most like the Python for loop and which is most like the Python while loop?
Display the example REPEAT loops questions in the slideshow, one at a time. Give the students a moment to determine the answer, then prompt students for his/her response "How many chose Answer A?" Then do the same for B, C, D. Then give correct answer (answer is in the Notes section of the ppt).
Journal: In your journal, summarize the process that you used with your partner to create the collaborative project. How did each partner contribute? Did you have any differences, if so, how did you resolve them? Was there any benefits to working in a pair ie able to identify programming and/or algorithm errors?
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A summer camp offers a morning session and an a...
The code segment below uses the procedure IsFound
The figure below shows a robot in a grid of squ...
The figure below shows a robot in a grid of squ...
The procedure Draw (length, direction) is used to
Various checking-for-understanding techniques:
Quick quizzes
Peer review
Interactive journaling
Students will work collaboratively to develop a program that uses nested iteration and turtle graphics.
Unit 2. Developing Programming Tools
Revision Date: Jan 12, 2020 (Version 3.0)Summary
In Python, a function is a named sequence of statements that belong together. In this lesson, students learn why functions are used, how they are used, and how they are defined.
Outcomes
Overview
Source
Students will work extensively with the online version of How to Think Like a Computer Scientist (HTLACS) hosted by Runestone Interactive.
Students will understand the purpose of functions and how they allow a program to be built and maintained in a modular way.
Predictable Misunderstandings:
- students often think that functions (or any code) written will run. They don't connect that it must be called in order to be run.
- students often think that functions have access to variables that they don't have access.
Student computer usage for this lesson is: required
Other:
Point out: Data values can be stored in simple variables, lists of items, or standalone constants and can be passed as input to, or output from, procedures.
Say: The exam reference sheet uses the name PROCEDURE instead of the Python word function. It provides:
Say: The entire exam reference sheet will be given to students when they take the end of course exam.
.
Homework: Students should read Python for Everybody Chapter 4: Sections 4.7, 4.8 and 4.9. Complete Exercises 2 and 3.
Answer the following questions:
Students should be paired through this exercise since paired discussion is used for formative assessment. Question can be provided to students through a variety of formats including production of a Google form or using student response systems.
Three suggested strategies are:
After Activity D, have students compare results with their elbow partners. Discuss any unresolved issues. This strategy can be used after any check for understanding.
After Activity F, ask students to suggest a rule for creating functions that would help avoid this error.
Students work alternately between the web site, partners, and the whole group. Teachers are to monitor student responses to the questions following each activity to be sure that students are addressing the key content within each activity.
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Summary
This is the third session of a three-session lesson sequence with four topics covered by mini-lectures, explorations, and practice exercises.
Outcomes
Overview
An algorithm is more than just a sequence of steps: levels of abstraction are crucial to the working of algorithms, and sequencing, iteration, and other control structures are ubiquitous.
There are various ways of implementing the algorithm - running sequentially or parts running in parallel.
Student computer usage for this lesson is: optional
In Lesson Resources folder:
[Optional topic] Wikipedia article on Conway date algorithm.
Access to Youtube videos of people and Lego Robots solving Rubik's cubes.
Videos:
https://www.youtube.com/watch?v=X0pFZG7j5cE and /or
https://www.youtube.com/watch?v=_d0LfkIut2M
https://www.youtube.com/watch?
One or more Rubik's cubes.
Links to PDF copies of youcandothecube's solution to Rubik's cube (also copied into the Lesson Resources folder):
You Can Do the Rubik's Cube
Daily Homework Review
Go to this link: https://playtictactoe.org/ to demonstrate an online Tic Tac Toe game
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A programmer wrote the program below. The program
Consider the following program code. The block ...
In the program below, y is a positive integer (...
Programs I and II below are each intended to ca...
Two grids are shown below. Each grid contains a...
For the optional activity (Conway Algorithm), some students may have difficulty adding and subtracting dates to translate from a known day-of-the-week to another day in the same month. A chart on the wall, or a current calendar, could be a help.
Some students who are strong in other areas will have difficulty with the spatial aspects of manipulating a cube while retaining an orientation that will let them complete the steps of one of the sub-algorithms without errors. They may need to be paired with another student or the instructor until they master the technique of holding the cube fixed while rotating a face.
The notation of face turning (e.g. R versus R' or L versus L') can be confusing. Having the students practice with an empty jar with a lid can help. Orient the lid up (U), down (D), left (L), right (R), front (F), or back (B). The hand movement to screw the lid on is the same hand movement needed to perform the non-accented face turn. The hand movement needed to screw the lid off is the same as the accented turn (U', D', L', R', F', B').
Variation for class that does not have Rubik's cubes: Use the images from the Solution Guide: www.youcandothecube.com
Online rubik's cube solver:
The following "Checks for Understanding" could be used to guide the students towards the three learning objectives.
Objective: SWBAT translate sample pseudocode into a Python function.
Objective: SWBAT recognize layers of abstraction for solving a Rubik's cube.
SWBAT to identify sequencing, selection, and iteration elements in a problem solution.
Students will translate prior pseudocode into Python routines. They will recognize if their programs work correctly.
Students will deconstruct one of the Rubik's cube solution stages. These analysis results will be shared and critiqued.
Unit 2. Developing Programming Tools
Revision Date: Jan 05, 2020 (Version 3.0)Summary
In the first portion of this lesson, students continue their inquiry into the properties of functions, with a focus on communication to and from other functions. In the lab portion of the lesson, students develop three Python modules using both Runestone Interactive and their Python IDE. Students use their own functions to perform calculations and draw a variety of polygons and a circle using turtle graphics.
Outcomes
Overview
Session 1
Session 2
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Other:
Teaching Note:
Use of a format such as Google forms is sugggested for collecting student responses to the questions for each activity. It is important to keep this portion of the class moving so students have enough time for the labs. Have students work with partners during their program development so they will have someone to share their progress with. Use a timer and have students briefly share their progress roughly every 10 minutes. This will not only help them understand an iterative development process, but also gives students practice with a collaborative development style.
power
inside the function?power
given that value?drawSquare
, drawTriangle
, and drawOctagon
, along with main module code that calls each function.drawPolygon
function code and finish implementing the drawPolygon
function.drawCircle
function in Finally a Circle (the second half of the Lessons from a Triangle lab).
Iterative development works by developing, then sharing, programs at many points during the development process. Students should work in pairs as they create their programs and share the work through various completion stages.
Students who are completing projects quickly should be introduced to the Python turtle API at (https://docs.python.org/3.4/library/turtle.html). Students can investigate and implement such methods as fill
, speed
and others as described by the API documentation.
Check for understanding by assessing student performance on the Runestone Interactive questions. Students should first try to resolve any difficulties with their partners and groups.
Students should be able to make suggestions for creating and using functions.
Identify and address any areas discovered that students have been unable to come to a consensus understanding.
Have students reflect on the pair programming process as prompted in the lesson.
Create functions that receive parameters, perform calculations using those parameters, and return a value.
Write a function to return the slope and y-intercept of a function of the line through two points.
Write functions to create a variety of polygons and a circle.
Unit 2. Developing Programming Tools
Revision Date: Sep 08, 2019 (Version 3.0)Summary
Students will use the online book Python for Everybody to complete a two-session guided lab in which they will explore the use of strings in Python.
Outcomes
Students will be able to:
len
function to get the number of characters in a string[m:n]
find
method and slicingOverview
Session 1:
Session 2:
for
and while
loops. Students must decide which loop structure is appropriate, based on the nature of a program's requirements.Student computer usage for this lesson is: required
In the Lesson Resources folder:
Other:
find
method for Python 3.4 can be found at:Journal Question: What is a string?
stringtester.py
to test code as they go though the lesson.Section 6.1: A string is a sequence
Section 6.2: Getting the length of a string using len
len
function, which returns the number of characters in a string. Explain that empty spaces between words and punctuation also count as characters. Remind students of previous lessons concerning ASCII values for all characters, including blank spaces and punctuation.fruit
variable from the previous sample, have students return the number of characters using the len
function.IndexErrors:
that the length of the string and the highest index value in that same string are not the same value. The length of the string banana
is 6; the index values are numbered from 0 to 5, inclusive.len
, then have students type the sentence into the console in PyCharm to check their answers.Section 6.3: Traversal through a string with a loop
while loop and incrementing the index value of each character.
Journal Question: Explain why the length of a string is one digit higher than the highest index value of the same string.
word = "alphabet"
index = 0while index < len(word):
letter = word[index]
print (letter)
index = index + 1
index += 1
in place of index = index + 1
.stringtester.py
file used to test the code that they created during the last lesson. Section 6.3: Traversal through a string with a loop continued
Sample solution:
fruit = "watermelon"
length = len(fruit)
index = length - 1
while index >= 0:
letter = fruit[index]
print(letter)
index -= 1
for
loop instead of a while
loop to traverse a string.for
loop to traverse a string.while
loop than a for
loop to traverse a string and share their ideas. Expect answers such as “it is easier to make a for
loop” and “it is harder to move backwards through a for
loop than a while
loop.”char
in the example is used as a variable and is not a keyword in Python. It can be replaced with another word or letter. Have students use x
instead of char
in their sample for
loop code to test this concept. This is an opportunity to have a discussion about using meaningful variable names so they have self-documenting code. Section 6.4: String slices
[n:m]
syntax to indicate returning a string from the nth character to the mth character, not including the mth character.print(fruit[0:3]) # returns app because a is in the 0th position and the second p is in the 2nd position.
# The slice goes to ‘p’ not including the ‘p’.
print(fruit[:3]) # Still returns app because a is in the 0th position.
# Leaving the first index blank begins the slice at the beginning of the string,
# and the second p is in the 2nd position.
# The slice goes to ‘p’ not including the ‘p’.
print(fruit[3:]) # Returns le because l is in the 3rd position.
# Leaving the second index blank ends the slice at the end of the string.
print(fruit[:]) # Returns apple because n begins at zero and m goes to the end of the string.
fruit
is a string, what does fruit[:]
mean?Section 6.10: Parsing strings
find
method and apply slicing in this section.find
method. Explain that the find
method returns the position at which the substring we are searching for begins.find
method without error.message = 'Meet me at the clock tower @ 7:00 a.m.'
atSign = message.find('@')
print (atSign)
This code sample returns 27
, indicating that the @ sign is at index value 27 in the string.
Journal: How are string functions used in everyday life? (search engines to find information quickly, school databases to look up student information, many more). How much more efficient is a computer at looking through millions of strings of data compared to a human? Extension: what if you were looking for a particular face in a crowd in a video, how could computational tools enhance that process?
Students can work in pairs while new concepts are introduced and practiced.
One advanced student could be assigned to be the "checker" for each row and have them raise a flag or something similar when they have checked off everybody in their row as having one small group of programming exercises complete and correct. Possibly offer a token prize to the winning row.
For example, after Section 6.3, the following exercise could be assigned:
Code checks for understanding and concept checks for understanding are provided with each new function, method, or concept introduced.
Summative coding assessment:
Sample answer code:
name = 'Pat Miller'
space = name.find(' ')
firstName = name[0:space]
print (firstName)
It is recommend that a 10-question multiple choice quiz that requires students to evaluate code samples from these lessons, determining the output or possible outcomes when the code is run be developed.
Unit 2. Developing Programming Tools
Revision Date: Jun 11, 2020 (Version 3.0)Summary
This lesson answers the question "What is a list and what can I do with one?". Students will find the answer to this question by exploring list operations and methods, as well as investigating how lists are modeled in real-world situations.
Outcomes
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Other:
Journal:
Solicit some responses. Point out that different lists contain different kinds of information.
Say: In programming, we use data collections like lists for much the same reason as you use lists. A list is a sequential collection of data values that can be referenced using a single name and each value in the list is identified by an index. In some other programming languages, lists can be referred to by different names, such as an array. Today we are going simulate the way Python implements lists.
Optional: Review the string commands. Use the Lists.docx found in the Lesson Resources folder.
See the file called LinkyListy Role Play in the Lesson Resources folder. Note: You can change student names to students within your class.
Create a human “list of students”. See the file called LinkyListy Role Play in the Lesson Resources folder. Note: The directions below are an example. Change student names to students within your class.
Create a List of students by starting with an empty list and modify the list by following program below.
Designate a section of the board or a poster to act as the console/printer for output and a volunteer student to act as the printer driver.
Designate an area at the front of the room for the computer memory (and future students).
As students are called by the program, have each student come up to stand in front of the room where memory resides.
Have each student point to the student that follows them to form a linked list as they come to the front.
LinkyListy Role Play Program:
students = []
students.append('Joe')
students.append('Pat')
students.append('Alea')
students.append('Marta')
print(students)
#add additional commands to append or insert 4 or 5 more students
print(students)
print(len(students))
print(students[3])
students.reverse()
print(students)
print('David' in students)
students.sort()
print(students)
more = ['Tom', 'Laverne']
students = students + more
print(students)
pets = ['fish'*3,'dog']
del students[1]
del students[2:4]
students.insert(0, 'Jennifer')
students = students + pets
print(students)
print(students.index('Marta'))
1.2.2 Check for understanding:
Ask students to give an example and then explain the effect of several of the List methods. For example, students.append(“Zoe”) would add Zoe to the end of the list of students. students.insert(4, “Larry”) would add Larry at index position 4 and slide everyone else down one slot. This could be done as a placemat activity. Use different colored markers for each student to write the example. Turn placement and ask the next student to explain the effect.
Notes:
list: len(students)
print(students[2])
List Membership (in, not in): print(“Mary” in students)
Concatenation and repetition (+ *):Make a list of more Python commands on sentence strips. On back of the sentence strip, write the output or trace of the statement after it has executed onto the back of the card. Have one student hold the deck of cards and cycle through them. Ask students to read a card and predict the output. Meanwhile, students who are in the list will change positions to demonstrate the behavior within the list. The holder of the card provides feedback or congratulatoins in checking the correctness of classmate's responses.more = ["Tom", "Laverne"]
students = students + more
pets =['fish'*3,'dog']*2 # creates a list of ['fishfishfish','dog','fishfishfish','dog']
del students[2], del students[2:4]
stu = students.pop(2)
, stuLast = students.pop()
. The pop method pops (deletes and returns) an element at a given index or the last element if no index is provided.Say:
aList ← [value1, value2, value3,...] creates a new list that contains the values value1, value2, value3, and … at indices 1, 2, 3, and … respectively and assigns it to aList. |
aList ← [ ] creates a new empty list and assigns it to aList. |
aList ← bList assigns a copy of the list bList to the list aList. |
APPEND(aList, value) increases the length of aList by 1, and value is placed at the end of aList. |
REMOVE(aList, i) removes the item at index i in aList and shifts to the left any values at indices greater than i. The length of aList is decreased by 1. |
LENGTH(aList) evaluates to the number of elements currently in aList. |
List traversal - all elements: FOR EACH item IN aList { <block of statements> } The variable item is assigned the value of each element of aList sequentially, in order, from the first to last. |
Discussion: How are lists the same and how are they different from Strings?
Have the students do the Runestone lab activities for Lists to reinforce the above concepts. (http://interactivepython.org/runestone/static/thinkcspy/Lists/toctree.html)
Demonstrate that lists are mutable with the following activity
None
for the empty stalls.Discuss what kind of information can be acquired when a program processes data.
Describe some possible tables, diagrams, text, or other visual tools that could be used to communicate insight and knowledge gained from data.
Homework
Create a list of 5 students that contain the students' name, age, and hair color. Use a loop to extract the information for each student and print it out.
Teacher Note: Consider using the YumYumCupcake problem (see Formative Assessment) as part of tomorrow's opening exercises.
The first of two sessions creating and traversing lists in Python and EarSketch.
Discuss: Lists are collections of values combined into a single entity. What are some lists or other data collections used by music apps? How do the lists make the programs more appealing to their users?
Say: Today we will be learning to implement lists like those we acted out or use in our music apps.
Modify EarSketch Asg. 6.2 by adding a fourth music clip to the drums list. Modify the call to the makebeat function so it always uses the last music clip in drums. Test your program by adding a fifth music clip to drums.
The second of two sessions creating and traversing lists in Python and EarSketch.
Say: Lists are collections of values combined into a single entity. The collections of data in our lists yesterday were unchanging and we learned to access individual elements of the lists. Today we will use Python to add elements to a list and to obtain a part or slice of a list while the program is running.
Show the video: List appending and slicing.
Modify EarSketch Asg. 6.4 by adding another music clip to the clips list. Discuss with an elbow partner how the pan and vol lists change to correspond to the addition of the music clip. Make the appropriate changes to these lists in EarSketch Asg. 6.4.
In this session, we will review two topics required by the Create Performance Task - User Input and User Defined Functions
Say, we review defining our own custom functions. Once defined, we can use them like any other function.
The fundamental approach to solving large programming problems is breaking them down into small function definitions and then calling those functions to solve the original complex problem. You will use the strategy of breaking a problem down into smaller parts and implementing each part separately throughout your programming experience.
7. Chapter Seven: Defining Your Own Functions
Today we will define functions to respond to user input with dynamic lists in EarSketch.
Brainstorm some ways a user of an EarSketch program might want to affect the output produced by an Easketch program.
Choose either topic from the brainstormed list or the sample provided in User Input and Programmer Defined Functions below for students to implement. If you choose to implement suggestions brainstormed by students you may want to provide User Input and Programmer Defined Functions as an example.
Say: The exam reference sheet operations on lists include means of accessing and assigning values to a list and procedures for inserting, appending and removing list values.
Say: Students will have a copy of the entire exam reference sheet while they take the end of course exam from the College Board. The exam reference sheet also includes the FOR EACH item IN aList { }.
Have students move the user input section to a fourth user defined function. Students are to describe the algorithm used in their user input function in their own words.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
Two grids are shown below. Each grid contains a...
Consider the following program, which is intended
In the program below, the initial value of x is 5
The code fragment below is intended to display ...
The code fragment below is intended to display ...
yumYumCupcakes = ["chocolate mousse" *3, "vanilla creme", "strawberry fluff", "chocolate mousse"*2].
Have a customer purchase a vanilla creme cupcake if there are any, check how many chocolate mouse cupcakes are in the display case, bake some more, and add them in. Drop one cupcake on the floor and throw it away.Paired programming: Make a zoo of animals and demonstrate the use of at least 6 different list operations and methods. Try to make a story with your code.
Unit 2. Developing Programming Tools
Revision Date: Jul 22, 2019 (Version 3.0)Summary
To conclude the unit, students will complete a small project as well as a written assessment. The project requires students to parse text and search through lists or words to find a specific characteristic. The assessment covers integers, strings, booleans, loops, if statements, and lists.
Outcomes
Overview
Students should synthesize concepts from the previous lessons to create their first project in PyCharm. This lesson also pushes a student to think about how to design a function, and the relationship between algorithms and functions.
What are the key elements we need to think about when designing a function?
Student computer usage for this lesson is: required
In the Lesson Resources folder:
'is_palindrome'
that inputs a word and determines whether that word is a palindrome. If it is, return True
, otherwise return False
.'is_palindrome'
.Students work individually on the Word Play and Assessment which are found in the lesson resource folder.
Allow students to continue working to the end of class on their projects; have individual check-ins with students to make sure that they are on track and have a clear idea of what they need to complete the following day.
Option to allow students to complete Word Play with partners to promote collaboration, then complete the written assessment individually.
Teacher will monitor the progress of the students on each of the programs in Word Play.
Written assessment (see google drive)
Project Assessment (see google drive for project and rubric)
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Summary
In this lesson, students will analyze what the Internet is and its basic functionality. Students will learn how the Internet works and how the implementation of the Internet has affected our society. They will discuss the idea of the Internet as a delivery service to get bits from one place to another.
For homework students, should have read and made brief notes on the following sections from the "Blown to Bits" book (Online book link: http://www.bitsbook.com/wp-content/uploads/2008/12/B2B_3.pdf):
These sections are on pages 91-92 & 301-303 in the pdf version.
The Internet and the systems built on it have a profound impact on society.
The Internet has many layers and was designed to be fault tolerant with redundant features.
Outcomes
Student computer usage for this lesson is: required
Blown to Bits (Abelson, Ledeen, Lewis): http://www.bitsbook.com/
Optional Student Handout: Internet Change Student Handout
Answer Key for Teacher: Internet Change Answer Key
The following links provide background on the topics covered in this lesson:
Ask: How does the Internet work?
Journal: Define
Share student responses and develop class definitions.
Compare student responses to the following.
Say: How did the internet and web browsers come about? The internet wasn't originally intended for everyone. Originally it was a tool for scientists to communicate.
Show how the Internet has grown from the small ARPANET system to what it is today.
Show the video Who Invented the Internet and Why through 4:49.
Ask: How is all this interesting and valuable information represented?
Answer: binary.
Lead students to develop the concept that lower-level abstractions can be combined to make higher-level abstractions such as texting (SMS), email, images, sound or video. (ie: one byte can represent one note, put notes together to make a soundtrack. 6 bytes make 1 color pixel. Put pixels together to make a picture. Put sound and pictures together to make a video)
Ask: who and what was theWorld Wide Web was originally intended for?
Answer: only for rapid and easy exchange of information within the scientific community.
Point out how, like many innovations, it grew beyond the original vision, but because of the limited view of its use in the beginning, there were serious holes in the security design of the system. Other design features, like scalability, have served the system well over many years.
Ask: How is information retrieved on the Internet?
Answer: Web browsers make requests for image, sound, web page and other files using the http or https protocols.
Requested files are broken into smaller pieces and the transmission of these pieces is done following the TCP/IP protocol.
Discuss the following sections from pages 301-303 in the "Blown to Bits" book. (Online book link: http://www.bitsbook.com/wp-content/uploads/2008/12/B2B_3.pdf):
In this activity, students will each share one thing they have learned from this lesson. This can be done in several ways depending on time constraints or disabilities. All students should participate in some way before leaving the classroom.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
ASCII is a character-encoding scheme that uses ...
Consider the following numbers. Binary 1100Deci...
Using a real-time network tool that measures the number of views per minute, students generate a question that can be answered using this tool. They will then collect the data and write a report that answers this question. The report should use current real-time screenshots for data and examples. (Note: Students can possibly start this assignment in class, but will likely need to complete as homework.)
Possible question(s) to use for a future test:
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Summary
The Internet is growing to connect to everything we do in our lives. Over the years, it has grown from being a representation of static content to web 2.0: a place where users interact with a collection of users and "things." In this lesson, the students will conceptualize devices that collect data and send it through the Internet.
The Internet is an ever-evolving system of increasing complexity. It has evolved from representing static information to providing interactivity of data between users and objects (things).
Outcomes
Student computer usage for this lesson is: optional
Students need access to paper for documentation.
Blown to Bits (Abelson, Ledeen, Lewis). Text is free as pdf: http://www.bitsbook.com/
Access to Internet connectivty for these links/videos:
In the Lesson Resources Folder:
Say: Devices connected to the Internet collect data. Sometimes those devices and the programs that store and process the data can have applications that the developers did not intend and may be very significant. For instance, consider this video from CNN about an app called Strava. https://www.cnn.com/2018/01/28/politics/strava-military-bases-location/index.html Play the video.(2:12). Have a brief discussion using the following questions as prompts.
Say: Data collection is not just from devices people knowingly use but increasingly from things connected to the internet they may not be aware of. Many computing innovations affect people in ways that were not anticipated.
Show the video (no audio except music) on how an average everyday person uses objects connected to the Internet in our current society: https://www.youtube.com/watch?v=ZgWbWCv0J5E (3:58)
Summary: A day in the life of the Internet of things shows these things connected to the Internet: cell phone, thermostat in the house, car entry system and radio, car GPS intelligently looking for available parking, parking sensors on the ground using mesh networking (short-range connections to a larger deployment system in a central box), a heart rate monitor with results that can be viewed online in real-time, a watch that connects with a cash register/inventory system, a package pickup system that connects with a drone to take the package directly to the customer.
Say: The data collected today is too large to be processed by people. Two strategies used to analyze large amounts of data are called data mining and artificial intelligence. While both tools regularly find useful results - useful in science and in business - the information obtained may result, in adverse decisions made against individuals or groups.
Students read the May 21, 2019 Guardian article, Facial recognition will soon be everywhere. Are we prepared? (https://www.theguardian.com/commentisfree/2019/may/21/facial-recognition-privacy-prepared-regulation). As students read, have them prepare to respond to the following prompts.
Say: Originally people generated the traffic on the internet. In the future, the vast majority of traffic on the internet will be generated by things.
Show this video about how data is generated by devices connected online:
Ask students if there were any objects that they did not think about earlier that are connected to the Internet. Adjust the list as needed. Analyze which devices would continue to be a high priority or useful if the ability to communicate on the Internet was suddenly diminished by an event like a hurricane or earthquake.
Journal. Pair and share.
With a partner, imagine a device that might someday be a part of the "Internet of Things," but currently does not exist. An example might be a shoe that has its own wireless acquired IP address and keeps track of how many steps one takes each day. (Note: This may already exist.)
As a small group, the students should create a document answering the following questions:
This document should also include a sketch of the device.
Students display a thumbs up or thumbs down to this question: Did this lesson help you comprehend the concept of the Internet as an entity that is comprised of both people (users) and objects or machines?
Read Blown to Bits (Pg 303 - 306) - IP Addresses - stop at "The Key to It All: Passing Packets."
Say: Today we will think about the future of the internet. The internet was designed to be scalable or to be adaptable to serve increasing demands. This ability to adapt to meet increases in demand, or scalability, was a design goal of the original internet. It was not part of the internet's original design to serve commercial needs.
Ask students to respond to these questions about how commercial needs have impacted them.
Say: Revenue from advertising is used to pay many of the expenses for content and services delivered by the internet. Businesses use data they collect about individuals to put them in a group and to target them for ads. Individuals and businesses both can benefit from seeing advertisements that most interest them.
Ask: Think about how individuals and groups could be harmed by the targeting of ads. Have a brief discussion about the possible harms. Be sure to address the three bullet points below.
Students create a story to summarize what they have learned about what the internet is and what they expect it to become in the future. The summary should include what impact the internet has already had, what impacts they think it might be intended to have in the future and what unintended impacts it might have.
Say: As you think about the future of the internet remember that the protocols it uses are open to everyone so technologies not yet developed can be adapted to use them. In this project, you are asked to envision what one of these technologies might be.
Students may present the story in written or other formats.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
Two computers are built by different manufactur...
Which of the following best explains what happens
Using the document in the Lesson Resources folder called "Commercial Python Project", assign students the project to explore more about the "Internet of Things" and think about what the future of the "Internet of Things" might be. In the project, students consider creating their own product commercial template. Consider adding the requirement that their program includes conditional statements. Extra time will be needed.
The rubric for this project can also be found in the Lesson Resources Folder
Ask students to think about and document how their selected device may have an impact on our daily lives. Could their be any controversy associated with their device or the use of their device? If so, what is that controversy? Students should document their opinions and/or findings.
When selecting the pairs, aim for diversity of background, so the students learn how others view technology.
With a partner, imagine a device that might someday be part of the Internet of Things, but currently does not exist.
As a group, the students should submit a document answering the following questions:
This document should also include a sketch of the device.
How does the Internet effectively connect devices and networks?
How do devices and networks that make up the Internet communicate?
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Summary
This lesson delves deeper into the structure of the Internet and routing protocols. Students will explore the necessity of redundancy by using packets to transmit sections of data. They will then discuss standards for packets and routing. The class will simulate a network in which each student is a node through which they will send email packages from one node to another.
Outcomes
Overview
Students will be able to:
Student computer usage for this lesson is: none
1. Materials required
2. Copies to make
3. Digital resources (check for access)
4. Required background knowledge
Prompt students to respond in their journals to one or more of these questions:
Discussion: Invite students to share their journal entries. The class should come to the general consensus that while their computer doesn’t know where to find everything on the Internet, it is able to pass information or requests from one location to another.
Transition Remark: Previously, we looked at the general structure of the Internet and how it works. Today, we will look more closely at the process of sending information between two locations using the Internet. Let's see what this looks like through a video(Code.org packets) or World of Science video. (After video) We are going to simulate this same action by sending packets of information to each other without leaving our seats.
Introduction:
Transition Remark: Our simulation of the protocol system on the Internet has been relatively tame. In reality, it doesn’t always work this nicely. Sometimes packets are lost; not all the information you want to transmit fits in one packet; or some routers are unable to keep working. Fortunately, the Internet is full of redundancy that allows it to keep working even if some parts fail to work, and we can send large data sets through multiple packets. We’re going to run our simulation again, but this time living in the "real world."
Discussion: How does redundancy of routers contribute to Internet fault tolerance?
Transition Remark: We just participated in a simulation that allowed us to become nodes within the Internet. By filling out the back side of your IP worksheet, each of you was essentially becoming a router. Each routers contains a configuration table with information that it can use to send packets to the correct location.
Discussion:
Conclusion: This information should be written in the student's journal.
Reflection: This may be completed as an exit ticket for formative assessment or in student journals.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A user enters a Web address in a browser, and a...
What is the minimum number of connections that ...
Assessment will occur informally through the discussion questions:
Reflection questions for journal:
Assessment Questions:
Explain the role of the Internet Protocol address for each device on the Internet.
Why is the assignment of an IP address critical to connecting a device to the Internet?
How does Internet router redundancy contribute to Internet fault tolerance?
How does redundancy of routers contribute to the Internet's ability to scale to more connections?
Explain how relatively small packets are used to transmit large files on the Internet and identify what information each packet must possess.
Identify a standard protocol for Internet packet communication.
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Pre-lesson Preparation
Students must complete the pre-reading assignment: Blown to Bits (pages 303 - 306 in the PDF). They should read the sections about DNS, Protocols, and IP Addresses.
Summary
The purpose of the Domain Name System is to resolve domain names to IP address for computers on the Internet.
For the next two lessons, students will investigate the workings of the Domain Name System (DNS). They will then design and enact a simulation of DNS. Students will use their simulation to request and receive web pages, implement DNS caching, and investigate DNS poisoning.
Outcomes
Overview
Session 1 - Introduce DNS
Session 2 - Create DNS Improvisation
Students describe characteristics of the Internet that influence the systems built on it.
Students explain how computers can be used to get a web page from a new web server.
Students work as part of a collaborative group using effective communication to accomplish a task.
Student computer usage for this lesson is: required
Blown to Bits (either electronic or hard copy)
Access to the Internet for these sites:
Excel or similar software
"DNSWorksheet" document and "Favorite Domains (Sample List)" spreadsheet in lesson resources folder
Addtional Resources
https://studio.code.org/s/netsim Code Studio Internet Simulator
Student friendly explanation of DNS https://studio.code.org/s/netsim
Version 1 - If students have access to the system console window, use it to complete the following steps.
Directions for Host Configuration and DNS in Action Using the Console Window:
Version 2 - If the Console is blocked for your students, you can still demonstrate most of the console commands on your computer. If it is blocked for you as well, use a web site such as http://pingtool.org and the prompts below.
Note: If the Console is blocked, students will need a way to obtain unique IP addresses. A document named "DHCP Simulator" (in the lesson folder) contains 30 unique IP formatted addresses. Print and cut out the blocks and allow a student dubbed DHCP to give them out at random.
Directions for Host Configuration and DNS in Action Activity Without the Console Window:
During the investigation, students should answer the following questions in their journal:
Journal Questions for Version 1:
Students should attempt to answer these questions based on the previous activity:
Suggested Answers
Journal Questions for Version 2:
Students should attempt to answer these questions based on the previous activity:
Have students pick one or more of the following questions to answer in their journals:
Put the following list of DNS and other devices on the board. As a class, students are to create a diagram of the way devices 1 – 5 interact to resolve domain names (similar to the last picture in the overview.) Have students draw the picture on the board and agree that it is correct before they write it in their journals.
Getting Started/Introducing Activity (5 min)
The teacher will explain the following activity to the students:
Show DNS explained (https://www.youtube.com/watch?v=72snZctFFtA) 3:20 - 5:39.
Teachers will explain that the Internet is much bigger than the Web, but for our simulation purposes, we will only be trying to access web pages from web servers.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
According to the domain name system (DNS), whic...
What is the minimum number of connections that ...
Which of the following is a characteristic of the
When pairing up students in "Think - Pair - Share," use a random generator such as random.org (use list tool) to randomly pair students.
Students create a list of things in their lives that are identified by unique numbers.
1. End to End Architecture 6.1.1B
A. Describe the “end to end” architecture of the Internet.
B. Explain how the “end to end” architecture facilitates connection of new devices.
2. Internet Names and Address Rules 6.1.1 E
A. Describe how computers are uniquely identified and connected on the Internet.
3. DNS Function 6.1.1 G
A. Briefly explain the primary use of the Domain Name System made by users of the Internet.
4. DNS Hierarchy 6.2.1 B
A. Describe the hierarchy of the Domain Name System.
Unit 3. Information and the Internet
Revision Date: Jan 04, 2020 (Version 3.0)Pre-lesson Preparation
This lesson will require some room setup or prep for best delivery of instruction. Some of the setup should have been done in the previous lesson.
Summary
In this lesson, students will expand their knowledge of how the Domain Name System (DNS) works by acting as a class to simulate the use of DNS to retrieve web pages.
Once the simulation is functioning students enhance its efficiency through the use of caching.
Poison the DNS cache by adding false DNS replies (DNS poisoning).
Students discuss with their groups how DNS works and how it supports Internet growth.
Then they explain in their journals how:
DNS works
Caching is both a benefit and a security risk.
DNS supports Internet growth.
In this lesson, students will expand their knowledge of how DNS works by acting out a simulation of DNS in action and using it to retrieve web pages. This is a two-session lesson. The first session is for students to get the simulation functioning, with the teacher serving as director. As students realize they need to "fix" their implementation of the simulation (modify their scripts), they record the insights in their journals.
In Session Two, students take on different roles and conduct a dress rehearsal that is entirely student-led. Teachers then introduce DNS caching and DNS poisoning. Once the simulation is functioning, students will address both increased efficiency due to DNS caching, and cybersecurity concerns associated with DNS.
Outcomes
Overview
Session 1 - Acting the Simulation
Session 2 - Round 2 of Simulations
The characteristics of the Internet influence the systems built on it.
Domain Name Servers are essentially the "address book" of the Internet and store information to help Internet systems route transmission requests and replies.
A list of character protocols is provided as a resource. These may help students learn their roles.
Student computer usage for this lesson is: required
This lesson requires extensive preparation.
Acquire:
24 envelopes per class – one or two per host per rehearsal and production.
Post-it Notes
One color for students to use to self-select roles.
One color for students to use to record DNS information.
One color for students to use to initiate requests.
Print:
One copy of character protocols for each student.
One copy of Routing Table.docx for each student router.
One copy of DNS cache for each root, TLD, ANS and local DNS server and each host.
Four copies of each device/character role page (web, router, root, TLD, ANS and local DNS and host).
Three or four copies of the first page web page, grouped by domain.
Warm Up:
Distribute post-it notes to each student.
Casting Characters:
Beside each device listed on the board, there should be the number of students needed to play each role. As soon as students complete their post it notes, have them choose their role by placing the post it notes next to the device name.
Below are suggested numbers of actors per role for two class sizes. Students take their seats and add their name and IP address to their router table.
Device List |
16 Students |
30 students |
Host |
4 |
8 |
Local DNS |
2 |
4 |
Root |
1 |
1 |
Top Level Domain |
2 |
3 |
Authoritative Name |
4 |
6 |
Web Server |
4 |
6 |
Router |
1 |
2 |
Once students select a role, each device group should meet briefly to discuss what information they have to collect from the post-it notes on the board. They will go and obtain either a script that informs them what to do during the play, (how their device works) or all the printed web pages from their server.
Gathering Data:
Post this list of directions and allow devices to go to the board and obtain the required IP address information.
Before the play can start, these seven sets of data still have to be collected.
Notes:
Steps to complete the play:
Explain: Both domain names rules name and IP address rules have changed over time.
Have students watch these two videos:
Afterwards, they should record responses to these two prompts:
Set the stage:
Distribute scripts, envelopes, and post-it notes.
Note: Use the character protocols from the previous session during the dress rehearsal, especially if the students are struggling.
This play is improvisational with Hosts requesting whichever pages they want. Restart the system with all Hosts online.
Introduce the security problems associated with plain text messages and with DNS poisoning:
Students will research this topic and report on security issues (among other aspects of DNS) in their summary report.
If the previous lesson has not been assessed, assign the entire summary in the document entitled "DNS Summary."
The simulation will be acted out at least three times. Students should change to a new role each time.
Use the character protocols during the dress rehearsal.
Students are to reopen their spreadsheets from the previous lesson.
Show the students how to create a simple "if statement" in a spreadsheet. The spreadsheet will become a tool where a user can type a domain name into a cell. If the respective IP address of that domain name is found, then that IP address is shown. If it is not then a "0" appears.
(See the sample spreadsheet in the Lesson Resources folder called "Sample Spreadsheet")
A. Describe one rule change for names used on the Internet. Describe the rule before and after the change.
B. Describe one rule change for IP addresses used on the Internet. Describe the rule before and after the change.
C. Describe briefly the process by which the Domain Name System operates.
D. Briefly describe one way the Domain Name System was not designed to be completely secure.
E. Briefly describe one security concern and one coping strategy for the Domain Name System insecurity.
Unit 3. Information and the Internet
Revision Date: Jan 04, 2020 (Version 3.0)Summary
This lesson investigates how the world wide web and search engines work. Concepts of browsers and servers as well as he spiders that crawl the web in search of valuable information, the data farms that store the data, and the processes used to organize current and historical data. The search process starts before you ever type a query, by crawling and indexing trillions of documents. Students will create a concept map illustrating their understanding of the operations of a search engine. A concept map is an artifact that could be created as part of the Explore Performance Task at the end of Unit 3.
Outcomes
Students will be able to:
Overview
Source
The slides for the guided exploration of search methods were adapted from slides provided by Marie desJardins at the University of Maryland, Baltimore County.
Students will understand how the world wide web is structured and operates.
Students will understand the many processes that are required for an effective search engine.
Students will create diagrams and concept maps, do some investigations and discuss how search engines work, and then will individually use a computational tool to create an online diagram illustrating their understanding.
Student computer usage for this lesson is: required
Students should journal on the following question:
"How many searches do you think are done each day using the Google search engine?"
Pair and share, then show this amazing live counter of internet searches: http://www.internetlivestats.com/google-search-statistics/
Use the slide presentation "About Search Engines" (in Lesson Resources folder) to direct students through this lesson.
Jigsaw into third’s and assign each third one of the following tasks. Have students answer their assigned question based on the reading.
Read paragraphs 1 and 2 of Understanding Browser Tracking by Goodwill Community Foundation, Inc. What have you used online recently that is keeping a record – tacking – your usage?
Read paragraphs 1 and 2 of Locational Privacy – Issues by Electronic Privacy Information Center. What devices or systems are tracking your or your family’s location?
Read paragraphs 1 and 2 of HOW COMPANIES USE PERSONAL DATA AGAINST PEOPLE section 2.4 Key developments in recent years. How do companies individually identify us?
Share responses to each question with the class.
Describe at least three differences between the internet and the world wide web and identify which is searched by search enginges like Google or Bing.
Have students create a concept map of ideas relating to search engines, doing additional research to round out their understanding. (See Teacher Resources for online tools that can be used to create concept maps.)
Share ideas from the students' concept maps. Point out that the concept map (if done online) is an artifact that was created using a computer to present information visually.
Optional Extension: (for fast moving classes who need more to do)
Google tracks everything that everyone queries. (Is this an invasion of your privacy?) The results are fascinating.
Look at www.google.com/trends. You can look at trends by region and limit them to a date and/or place. For example search for “Obama, McCain” limiting your search to 2008, and the United States. What conclusions do you draw?
Pick another topic of interest to explore in Google trends to reveal society’s interests.
Students can create diagrams and concept maps on paper by hand if that is helpful.
Be sure to assign roles to pairs when working together. Don't allow one partner to be passive while the other is active.
Students create a concept map of what they learned with additional research on the topic.
Students will develop a visual diagram of the processes involved in indexing the Internet by a search engine.
Unit 3. Information and the Internet
Revision Date: Jan 12, 2020 (Version 3.0)Summary
This lesson has two main objectives.
The first focuses on search engine algorithms and the impact search engines have on our lives. Search engine page rank algorithms rely on many factors to predict what someone is looking for. The business advantage of appearing on the front page of a Google search is tremendous. However, as more information is tracked about our interests and preferences in order to customize the results of our searches, we have to ask whether or not the loss of privacy is worth the results.
The second objective is to introduce students to creating a visual artifact (knowledge required for performance tasks). Students will research a page ranking subtopic, prepare a one minute speech, and (if possible) create a video to accompany the speech.
Outcomes
Session Two
Students will understand that the page rank algorithm depends on many factors, has changed over time, and has a large impact on the traffic that a site gets.
Students will give examples of how their activity online is tracked and how the knowledge of them is used to taylor the results and the possible repercussions.
Students will create an artifact using screen capture of themselves discussing and analyzing an aspect of searching.
How can computing extend traditional forms of human expression and enhance people’s ability to find information and solutions?
Student computer usage for this lesson is: required
Students should take a few minutes to journal on the following question:
Which are you more likely to do if you don't see an answer to a search request on the first page: click forward to page 2 of the results or ask the question differently? Why?
(Encourage students to discover that it is very valuable to business to appear at the top of the search engine rankings and that often thousands or millions of results are returned in a single search.)
(Use the PageRank presentation in the lesson folder to guide the discussion.)
Note: Guidelines for the teacher are in the "Teacher Notes on PageRank Presentation" document. This document also contains an answer key. (Students can record their notes in the "PageRank Student Handout".)
Read Fast Fact the Protect PII on Social Media published by the US Navy.
What concerns does the Navy have about the information posted online?
Do these same concerns apply to people not in the military?
Read the first three sections Internet is forever, except when it is not from Ask Leo.com.
How hard is it to permanently delete information once it is posted on the internet?
What advice would you give to a young person about posting their information online?
Why could it be beneficial for a search engine to keep track of what people are searching for? In what ways do computers enhance our ability to solve problems? Discuss.
(Possible answer to lead students toward: Topics sporadically become popular, and knowing what results people like can make it easy to suggest sites to others looking for similar things. History data can also enable a search engine to suggest a search phrase when a single word or only a few letters are typed in. The better a search engine knows what you are looking for, the better it can filter results to include results relevant to your query.)
Explain that students will be creating a presentation on the topic they researched in the last session. This presentation should be scripted, and make use of a PowerPoint and sources from the internet. They will have 30 minutes to make this presentation. (Slide 8 is made for video creation, but works well for general presentations too.)
For classes with enough video recording equipment for all groups:
Explain that students will create their own video explanations of how one feature of search engines works. Go over the "1 minute talk directions.odt" together to help students organize their video. The creative design process to develop such a short, focused product requires good teamwork, organization, and creativity. Plan out what the key message is, what visuals will add the most value, and then craft the wording to fit within the 1 minute time frame.
Students should split into their groups and begin work. Allow only 10 minutes for additional research as needed. They will take the remaining 25 minutes to:
Show as many videos/ group presentations as you can share with the class. If there are videos, assign the remainder to be watched as homework and have students bring in notes on the key points learned from each video.
Session 3 New for 2020-2021
Getting Started
Warmup:
1 What can we conclude from the following two statements?
2 How do you think the computer can tell which bits are for the title of a page and should be large and which bits represent plain text on the page and should be smaller?
Say: According to the Dublin Core Metadata Initiative Metadata Basics page (), metadata is "data about data" -- specifically, descriptive metadata -- is structured data about anything that can be named, such as Web pages, books, journal articles, images, songs, products, processes, people (and their activities), research data, concepts, and services. Creative Commons Attribution 3.0 Unported License
In this session, we will investigate what metadata is, its relationship to data, and its uses.
Watch the first 40 seconds of this video to complete these two sentences.
Metadata are pieces of information that make studies ______________ & ______________.
Metadata helps you make_________ of the ___________.
Watch the first 90 seconds of this video. After watching the Meta... What? Metadata! video, define metadata in your own words.
Say: Let’s answer two questions about the metadata for this image.
.
Colin Hines www.ColinHinesPhotography.com [CC BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/)]
Now view its metadata.
Think-pair-share: Discuss with your elbow partner
Say: If metadata tells us what data means - what information it contains - then what tells us what metadata means.?
Consider the XML for these messages.
<messages>
<note id="23">
<to>Marcus</to>
<from>Lin</from>
<heading>Reminder</heading>
<body>Don't forget our appointment!</body>
</note>
<note id="24">
<to>Lin</to>
<from>Marcus</from>
<heading>Re: Reminder</heading>
<body>What meeting</body>
</note>
</messages>
Ask: How does the metadata make using the data itself more effective?
The metadata tells us what the data (in black) means. To find out what XML, means we need to consult a standard. Examine the standards recommended by the W3C for XML.
Say: On a web page the data is what people need to see. The metadata is what computer systems use to present the data in useful ways. One large computer system is the internet. Every message/file transmitted on the internet is first broken into small fragments and each fragment packed in packets. These packets contain a lot of metadata that make delivery of the packets by the routers (computers) of the internet both possible and reliable.
Visit the IP packet structure web page and examine the metadata that is part of every packet transmitted on the internet and answer these questions.
Watch this video from International Privacy.org then discuss these two questions with your elbow partner.
For a shorter class, don't have students take notes, just discuss the slides.
For the Explore performance task, each student should be able to create their own artifact. You could have the students work on the presentations individually in this lesson, as a practice for the Explore task, if your class is fairly competent with the technology. For students with less experience (or to save time during presentations), it could be beneficial to have students create these artifacts in pairs, with some pairs repeating topics for comparison.
Students share best definitions of page rank related terms
Students analyze web pages for reasons for differences in page rank
Students create a one-minute video clip on a topic related to the operation of search engines.
Unit 3. Information and the Internet
Revision Date: Jul 22, 2019 (Version 3.0)Summary: This lesson is designed for students to review basic statistics, including calculations of the mean, median, mode, and standard deviation. It will also give the students some experience using spreadsheet software to calculate the statistics and to create histograms. Note: This lesson is intended primarily as a review and a reminder of material that should already be familiar to the students. If your students have little familiarity or experience with using Excel to compute statistics or generate plots, you may wish to extend this lesson to two sessions, and provide more scaffolding and instruction on the basic mechanisms.
Outcomes:
Overview:
Source: This lesson was adapted from Unit 2: The Engineering Design Process, Lesson 2: Collecting and Processing Information ©2013 International Technology and Engineering Educators Association Foundations of Technology, Third Edition/ Technology, Engineering, and Design
The students must understand the basic statistical concepts of mean, median, mode, and standard deviation. They must also be able to use spreadsheet software to calculate the statistics and to create histograms.
Students often have some initial difficulty learning how to use formulas in the spreadsheet software to do the calculations.
Student computer usage for this lesson is: required
For Each Student:
Review of Statistics:
Present a review of basic statistics (min, max, mean, median, mode, and range), and use the following board exercise to have the class review their understanding of these basic concepts:
Discussion:
Ask the class to come up with situations where it might be most useful to compute the mean, median, or mode of a set of values. Encourage them to understand that each of these statistics can be useful in different situations, but may be misleading. Have them generate sets of data that would give "misleading values" for mean (if there is an "outlier value"), median (if the values have a longer "tail" on one side than the other), or mode (if there is a frequent value that happens to occur at one end or the other of a wider range).
Note: The teacher may want to do this activity along with the students, displaying the spreadsheet on a screen so that the students may ask questions and see how to do the statistical calculations using the spreadsheet software. Students who do not have much experience with spreadsheets may need more scaffolding and instruction. (If you have many such students, you may wish to spread this lesson out over two class sessions.)
Students will use spreadsheet software, such as Excel, to calculate the average number and standard deviation of candy color in an individual-sized bag of M&Ms, Skittles, or other colored candy. Optionally, students may compare their results to other online published statistics for each candy.
Candy Statistics |
||||||
Trial Number |
1 |
2 |
3 |
4 |
5 |
6 |
Yellow |
17 |
20 |
24 |
19 |
19 |
17 |
Red |
21 |
13 |
19 |
21 |
15 |
18 |
Blue |
10 |
18 |
16 |
18 |
21 |
20 |
Brown |
7 |
12 |
5 |
12 |
12 |
14 |
Green |
26 |
26 |
16 |
17 |
22 |
18 |
Orange |
24 |
16 |
20 |
15 |
15 |
16 |
Package Total |
105 |
105 |
100 |
102 |
104 |
103 |
The students will also need to create columns further to the right labeled Mean, Median, Mode, and Standard Deviation.
Mean |
Median |
Mode |
Standard Deviation |
19.375 |
19 |
19 |
2.199837656 |
18.125 |
19 |
19 |
2.799872446 |
17 |
17.5 |
18 |
3.338091842 |
9.5 |
10 |
12 |
3.380617019 |
21.125 |
22 |
22 |
3.833592124 |
18.25 |
17.5 |
16 |
3.284161124 |
SUM
function.
Yellow Candy σ = |
2.199837656 |
Get on |
3Cs |
25.97451297 |
|
2S |
23.77467531 |
|
1s |
21.57483766 |
|
Mean |
19.375 |
|
-1s |
17.17516234 |
|
-2s |
14.97532469 |
|
-3s |
12.77548703 |
Students will answer the following question in their journals:
Learners may be paired to assist each other in the use of the spreadsheet software.
The teacher should frequently check the students' work for accuracy as the lesson progresses so that misunderstandings may be quickly resolved.
Unit 3. Information and the Internet
Revision Date: Sep 28, 2019 (Version 3.0)This is the second of three lessons where students will research a computing innovation.
This lesson will focus on:
Identify data privacy, security, or storage concern
Say: In this lesson, we are going to work individually to investigate a computing innovation. All computing innovations use data and to some degree expose the data to risk. In this lesson, you will identify a computing innovation and describe a privacy, storage or cybersecurity concern.
All computing innovations have a purpose, a purpose that guided the developers in its production. Some privacy, data security or data storage concerns about the innovations may have been known by the developers. Others may have become known only after the innovation was in use.
With elbow partners, list five or so kinds of information that most people want to remain private. Create a class list of these a list of these.
Say. Some personally identifiable information is protected by law is PII. Have students visit this website for a definition of PII. (https://github.com/ca-cwds/Information-Security/wiki/Definition-of-PII-(Personally-Identifiable-Information))
Provide the list below and ask students to identify what elements in our list are also listed as proteced by law.
Personally identifiable information (PII) is information about an individual that identifies, links, relates, or describes them. Examples of PII include:
Select one of the three concerns from activity 1 to focus upon.
Research and prepare a report assessing the risk and providing guidance on how to protect against that risk. The report must include citations of at least two references assessing the concern and two reference for protecting against the risk.
Prepare a one minute report about the concern you wrote about in the last sessions.
Computing Innovation data concern presentations.
Unit 3. Information and the Internet
Revision Date: Nov 07, 2019 (Version 3.0)Summary
This lesson provides the students with an opportunity to practice the AP CSP Explore Performance Task with a given set of tasks from which they may choose. Students will use a rubric to perform self-assessment of work generated for the Explore Performance Task.
Outcomes
Overview
Session 1
Session 2
Session 3
Source: The lesson models the College Board AP CSP Explore Performance Task.
The students will be able to use reliable research findings to generate a computational artifact and respond to questions on that innovation.
Student computer usage for this lesson is: required
In the Lesson Resources folder:
Instruct the students that they are to use their findings to generate a computational artifact and a one-page paper on an innovation.
The artifact is an original digital artifact screencast or knowledge map diagram that you create to express the effects of your chosen innovation.
Students are to generate a written document in which they respond directly to the following prompts. Their document should be a one-page paper that may include illustrations.
Writing responses to questions posed on "Practice Explore Task Response Document" and creating artifact.
Remind students that brevity is important for the performance tasks; it is a talent to be able to get a message across with real content succinctly.
I have made this letter longer than usual, only because I have not had time to make it shorter. ~Blaise Pascal (1623-1662).
Have students complete the "Practice Explore Task Job Completion" form, indicating where they are in the process of the Practice Artifact.
Complete any additional research needed to complete the document (if needed).
The previous evening's homework was to complete the paper that students were working on in the previous class. Pass out the rubric and have students go through their paper to verify that they have all points covered. Point out that most of the points awarded are based on the report (75% of the total score) and the artifact represents 25% of the score. Teacher will need to circulate to assist where needed.
Have students complete a Job Progress form indicating where they are in the process of the Practice Artifact.
Complete the paper using the rubric as a guide. Complete the plan for the artifact; you will have one more class period to work on the artifact before the project is due.
The previous evening's homework was to complete responses to "Practice Explore Task Response Document" modifications as indicated using the rubric that students received in the previous class. Using the artifact part of the rubric, have students go through their plans for the artifact to verify that they have all points covered. Point out that most of the points awarded are based on the report (75% of the total score) and the artifact represents 25% of the score. Teacher will need to circulate to assist where needed.
The responses to "Practice Explore Task Response Document" for the Practice Explore Performance Task should be complete. Students should be focused on the artifact. The entire project will be collected next class.
Have students complete a Job Progress form indicating where they are in the process of the Practice Artifact.
Complete artifact using the rubric as a guide. The Practice Explore Performance Task is due at the start of the next period.
SPED/LLD: need to be frequently monitored and assisted as needed.
Teachers may choose to spread this activity out into multiple class sessions over a longer period of time, to give students some more time to work on the paper and artifacts at home (especially if the class meets every day, since "overnight homework" is often difficult for students to complete effectively when they are involved in other after-school activities and have assignments for other classes).
Practice Explore Performance Task -- provide feedback, using College Board's rubric (Explore_Performance_Task_Rubric_Nov2015.pdf and the CSM detailed Explore Task writing rubric (CSMattersWritingRubric.docx and CSMattersWritingRubric.pdf) -- both can be found in the lesson folder
Explore Performance Task
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Pre-lesson Preparation
Assigning some of the research as homework will allow more in-depth research.
Summary
Reflecting on the fact that the Internet was not designed with security in mind, students will examine the devastating impact of cyber attacks. Students will study types of cyber attacks and the vulnerabilities they exploit and identify the roles of software, hardware, people, and the Internet. Students will identify potential cybersecurity concerns in systems built on the Internet.
6.3 Cybersecurity is an important concern for the Internet and the systems built on it.
The Internet was not built with security in mind, leaving computers vulnerable to cyber attacks. This makes cybersecurity an extremely important concern when designing and implementing systems that are built on the Internet. Students need to be able to identify potential problems that could arise and potential options for protecting against these problems.
Outcomes
Student computer usage for this lesson is: optional
In the Lesson Resources folder:
Journal Sample Response:
Example for Presentations:
Information to present about firewalls. (Included in the slides)
“You can protect against certain attacks. One way to protect against them is a firewall.”
(Note: There is a PowerPoint to be used with this entire lesson: "Cyber Security Lesson Slides" in the Lesson Resources folder.)
In their journals or as a class, students should discuss the following:
2a. Say: What can be done to protect our online security and privacy? Institutions can implement Multifactor and 2-factor authentication.
Show the videos: Multifactor and 2-factor authentication
Discuss: multifactor identification. Be sure all four points below are discussed. (Suggestion, play it like Family Feud, keep getting ideas until all key points below have been revealed and add other ideas as they are suggested)
2b. Say: What can we as users do?
Discuss with students what they think they can do. Be sure all six points below about what users can do are discussed.
Individuals can manage passwords, network and credit card use.
Organize the class into seven groups and assign a topic above to each. Ask students to think about what the technology is, why it is important and how it is used.
Allow students five minutes to research the topics. Allow 5 minutes to prepare a poster about each. Present and answer questions about each.
4a. Say: All real-world systems have errors or weaknesses that make the susceptible to attack. One approach to making them safe is to detect and prevent these attacks. We are going to investigate malware and virus attacks. Show the video Malware: Difference Between Computer Viruses, Worms and Trojans. Have a brief class discussion on computer viruses using the questions below as prompts.
4b. Say: Attacks come from unknown senders, or spoofed or compromised known senders. Show the What is Phishing video. Have a brief class discussion on phishing using the questions below as prompts.
4c. Say: Some attacks take advantage of keyloggers. Show the Cyber Security Minute: Keyloggers video. Have a brief class discussion on keyloggers using the questions below as prompts.
4d. Ask: Why is the danger of free downloads is a special risk to young people? Visit the site 7 Quick Sites That Let You Check If a Link Is Safe and identify two tools you could use to identify safe downloads.
4e. Ask: What is an access point to a network? (Ans: a point of connection that can communicate with the network)
Say: According to Wikipedia, A rogue access point is a wireless access point that has been installed on a secure network without explicit authorization from a local network administrator. Rogue access points can give access to the network with authorization and can be used to intercept or modify network traffic that is traveling through it.
Solicit at least 3 examples of how this could be a problem on a secure network.
4f. Ask: What does it mean if something is malicious? (Ans: it has bad intentions)
Say: According to ZDnet,"85% of all malspam sent in Q2 2019 (April, May, and June) contained a link to a malicious file download, rather than the actual malicious file attached to the email." Have a brief class discussion on malicious email using the questions below as prompts.
4g. Say: In addition to attachments and malicious links - whether in an email, message or on a web page, email from an unknown sender or a known sender whose computer has been compromised may contain active contents such as forms or videos that can be used to compromise your computer security, your privacy or both. Discuss with students ways malicious software can be installed on their computers. Be sure to address the points below.
Optional programming activity.
Visit the PyPi website keylogger 2.7.3 and read the Use cases.
Optional research activity.
Students will be grouped by the type of attack they read about. They will conduct research to answer the following questions: (some resources will be provided, but students can also search for others. If no computers are provided, it will be up to the teacher to find these additional resources)
Visit the Top 10 Malware January 2019 report.
Visit the us-cert.gov report on Ransomware.
What is ransomware?
How can you protect yourself?
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A certain social media Web site allows users to...
A retailer that sells footwear maintains a single
When a cellular telephone user places a call, the
Many Web browsers allow users to open anonymous...
Which of the following has the greatest potential
Which of the following is considered an unethical
Real World Connection: Protecting your Computer
Choose one of the following articles to read, based on the operating system you have running on one of your home computers, or the computer you normally use.
Answer the following questions:
If yes, answer the following questions:
If no, do the following:
Optional: Use this extended checklist to enhance the security of your computer.
The teacher will see where the students place the cyber attacks as they read about them on the impact graph and give appropriate feedback.
The teacher will monitor the research on cyber attacks and check for accurate information.
The teacher will clarify misconceptions that become evident during the group presentations.
Students will complete a journal entry by responding to questions about their personal and school related data being accessible through the Internet.
Unit 3. Information and the Internet
Revision Date: Jul 22, 2019 (Version 3.0)Summary
Students are introduced to the topic of cryptography and learn to perform two encryption techniques. The students will identify the role of the algorithm and key in the encryption process. Students will use abstraction to see the general process used in symmetric encryption. The students will consider the strength of ciphers and the importance of keeping the key a secret.
Outcomes
Overview
Student computer usage for this lesson is: optional
In the Lesson Resources folder:
Optional: Lesson slides with the key questions, encryption demos, and diagrams (the teacher could simply read the questions and present demos and diagrams by writing on a board).
For examples, consider reviewing The Code Book by Simon Singh.
Journal:
Tell the students, “This problem is not a new one. Throughout history, people, including government and military officials and personnel, business owners, and others, have wanted to send secret messages to someone but worried that the message could be intercepted along the way.”
There are two ways to try to keep the message secret: Steganography and Cryptography.
Explain the basic difference between the two.
Present two different encryption techniques, showing one example of each.
An alternative to this lecture portion above is to have students independently study the same concepts using a reading, video, or online learning tool. Here are some suggested resources:
Summarize with this overview: "Each encryption scheme involves an algorithm and a key. The algorithm is the set of steps that you follow to accomplish the encryption. The key is the secret piece of information that is needed to know exactly how to apply the algorithm in this case. This allows you to securely send encoded information across the Internet and decode it when it arrives. Some codes are more secure than others."
Have the students pair up and practice sending each other encrypted messages, then decrypting them to make sure they end up with the correct message.
A worksheet called "Cryptography Partner Practice" is provided in the Lesson Resources folder.
Ask the students: “How difficult would it be to crack a message that was encrypted using the Caesar (shift) cipher if you didn’t know the key? How would you do it?” (Easy, try each of the 25 possible shifts.)
Present: There are two ways to increase the strength of encryption:
Option #1: Increase the number of possible keys.
A general substitution (not limiting to just a shift) dramatically increases the number of keys. The number of keys in this case is the number of permutations (different orderings) of the 26 letters in the alphabet. This can be computed by multiplying the 26 options for the first letter in the cipheralphabet, by the 25 remaining options for the 2nd letter, 24 remaining options for the 3rd letter, etc. (26! or 26 factorial).
The answer: 4.032914e x 1026 keys (Google will calculate it for you).
This analysis makes it seem as though a substitution cipher would be unbreakable, but clever people have invented tricks (e.g., frequency analysis) that can be used so you don't have to try all of the different keys.
Option #2: Use a better algorithm.
For example, use a polyalphabetic cipher that combines multiple cipher alphabets.
(If time allows, you can have students explore other ciphers. For further study, see Khan Academy or The Code Book by Simon Singh.)
Present a diagram that shows high-level view of the encryption and decryption process (see The Code Book, p. 11).
Journal:
Use the "Cipher Python Project" worksheet in the Lesson Resources folder. Students are tasked to create a simple Caesar cipher program that uses ASCII values to shift messages by a certain letter. The rubric for this project is also in the Lesson Resources folder.
The teacher will evaluate student responses to the journal entries, class discussion questions, and the students performance during the encryption practice.
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Summary
In this lesson, students will learn two solutions to the key distribution problem and the mathematical foundations behind these solutions. They will make connections between encryption, the use of SSL/TLS in web browsers, and the use of digital certificates. Students will recognize the value of open standards used in modern cryptography.
Outcomes
Overview
Session 1
Session 2
Student computer usage for this lesson is: optional
In the Lesson Resources folder:
Students should answer the following questions in their journals:
Suggested Review
Motivation: Present the Key Distribution Problem:
Introduce the following topic. Allow for discussion among the class about possible solutions to the problem presented.
After the class has come up with some ideas, reveal a solution to the problem that was found using math.
Present Key Information: Dreamers to the Rescue – Two men, two solutions, one important mathematical idea.
The system also uses powers (base/exponent). Very briefly review power notation.
Students should answer this question in their journals:
Research Hellman and Diffie’s work on public-key exchange, identify the big ideas of CS Principles that show up, and provide specific examples of how they are related to what you find out about Hellman and Diffie's work. Alternately, read about the British group that developed the same solution as Hellman and Diffie's to public key encryption in secrecy (http://cryptome.org/ukpk-alt.htm).
Students will read the following question and record their thoughts in their journals:
Have students present ideas from their journal entries. Use this as a way to review the Key Distribution Problem, and the team that tackled the problem.
Present Diffie’s Solution - Public Key Cryptography
Have students act out three short scenes (see "Public Key Encryption Plays") in order to illustrate how the system works. (It is advisable to select "dramatic" students to fill the four roles.)
Roles
Overview
Follow Up question to ask the students: Who do you have to trust for this system to work? (2 min)
What are the mathematical details that enable this idea of work? (Don't worry, we are not going to fully answer this!)
Discussion: Do “Open Standards” make sense in the world of Cryptography?
The systems of encryption used on the web have been "standardized" (meaning that everyone agrees to use the same systems) so that computers all over the world can communicate with each other. These standardized systems could be "proprietary" (meaning the details are kept secret), or they can be "open" (meaning the details are shared for anybody to see).
Students will Think-Pair-Share about the following prompts:
Possible responses
Benefits of open encryption
Benefits of open standards
- The bigger picture: Open Internet standards are the cornerstone of the Internet’s success. They enable its existence, facilitate its growth, and provide a platform that supports creativity, as well as social and economic opportunity for its billions of users. Open standards are implemented around the world in all kinds of Internet products and services. https://www.internetsociety.org/policybriefs/openstandards
Note: Heartbleed vulnerability is a good example of something that was eventually caught because of open standards. (This could be a homework assignment to read about it)
Drawbacks
Students should read this question and record their thoughts in their journals:
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
What is the minimum number of connections that ...
Which of the following are true statements abou...
Which of the following best describes a Distrib...
Which of the following is LEAST likely to indic...
Which of the following statements about securit...
Read about Heartbleed vulnerability in SSL. Reflect on how open standards relate to this.
RSA Encryption Algorithm Video: http://youtu.be/M7kEpw1tn50
The teacher will observe and evaluate student responses to journal entries, class discussion questions, and class activities.
Unit 3. Information and the Internet
Revision Date: Jan 05, 2020 (Version 3.0)Summary
This lesson will increase student awareness of the concept that there are dangers associated with Internet usage. It addresses Internet Security with issues inherent to Internet usage: viruses, worms, Trojan horses, and identity theft. The primary objective of this lesson is to equip students with knowledge that will enable them to make responsible choices regarding their Internet use, to prevent security risks. This lesson introduces key vocabulary, discusses Internet security and provides students the opportunity to explore the causes and effects of common security problems.
Students will:
Outcomes
Student computer usage for this lesson is: required
Teacher's resources:
Students' resources:
Students will read the following prompt and respond in their journals:
Consider the following questions and discuss answers as a class:
On your home computer, see how vulnerable you are to malware and identity theft:
If there is additional time, watch one of the TED talks
Students can create an "Identity Theft Prevention Action Plan," including a purpose and list of ten guidelines, to share with family and friends after they have researched prevention tips on the FTC website.
Unit Assessment and Investigate/Explore Performance Project – at end of unit.
Unit 3. Information and the Internet
Revision Date: Jun 11, 2020 (Version 3.0)Data is stored and transmitted online efficiently using many different kinds of hardware and software to send it quickly and accurately. Data can be compressed to take up less storage room and transmission time and, at the core, the entire system is made up of simple circuits that work with binary information that flows at an incredible speed all around the world. The security and privacy of this constant flow of data deserve understanding and attention. Students will investigate different areas of privacy and share with the class.
This flexible lesson includes additional material if the teacher would like the opportunity to reteach key concepts such as binary, abstraction, Internet functionality and also teachers the layers of hardware abstraction from transistors and logic gates up to computing devices.
The accompanying assessment can be used in class or as homework. (20 min) optional
Student computer usage for this lesson is: required
The Computer Science Field Guide http://csfieldguide.org.nz
Coding and compression: http://csfieldguide.org.nz/en/chapters/coding-compression.html
Data representation: http://csfieldguide.org.nz/en/chapters/data-representation.html
Use the binary number calculator to check conversion calculations
How computer memory works (5:05) http://ed.ted.com/lessons/how-computer-memory-works-kanawat-senanan
Presentations: Unit3Lesson14_InternetData_Presentation, Unit3Lesson14LogicGates_Presentation.
Worksheets: Accompanying student notes to be filled in. Unit3Lesson14_InternetData_StudentHandout, Unit3Lesson14LogicGates_Handout. Also Unit3Lesson14_InternetData_ReviewSection
How does information get from one computing device to another using the Internet? (also on Slide 1 of the Unit3 Lesson14_InternetData_Presentation)
Slides 2-3 review the basic steps to sending information online:
This is a review of unit 3. Pair, share and discuss. Identify weak areas of student understanding.
If students need additional review: provide the handout: Unit3Lesson14_InternetData_ReviewSection (to accompany slides 4-9) and continue with the presentation, otherwise use the handout as an assessment.
Distribute Unit3Lesson14internetData_StudentHandout (slides 10-11) on data compression and abstractions from low level to high level with notes to accompany the video how computer memory works (5:05)
Say: To protect ourselves online we need to understand some facts about how data is collected and used. Assign each of the following to a pair of students. Each pair is to prepare and present a 30 second (2 or 3 sentences) explanation for why their fact is most important. After two minutes give each pair a chance to present their explanation.
Present Unit3Lesson14_LogicGates_Presentation about hardware abstraction.pptx
Distribute Student handout: Unit3Lesson14LogicGatesHandout.docx
Assessment (20 min) optional or can be used as homework.
Also available Logic Gates additional practice handout and informational article.
Questions in the AP Classroom Question Bank may be used for summative purposes.
Sixty of the 80 questions are restricted to teacher access. The remaining 20 questions are from public resources.
Questions are identified by their initial phrases.
A new bank plans to make customer convenience a...
More than any other lesson so far, this lesson should be customized to meet the needs of the students. If they have a background in electronics and logic circuits from science or STEM classes, or have a firm grasp of binary number conversion and how the internet works, these sections of the lesson can serve as a very quick review skipping past the slides with extra detail.
For advanced students: Use the Unit 3 Lesson 14 assessment and the Unit 3 Lesson 14 Data on the Internet - Review Section as summative assessments after a brief review.
For students who do not have this background knowledge, use the presentations and notes.
Notes and exercises for binary encoding, data compression, logic circuits, how the internet works and layers of hardware abstraction.
Unit 3 Lesson 14 Summative Assessment
and
Unit 3 Lesson 14 Data on the Internet - Review Section
can be used as a formative or summative assessment.
Unit Explorations of Computing Innovations
Revision Date: Jun 23, 2020 (Version 3.0)In the Explore Performance Task (EPT), students choose and explore a computing innovation. The EPT requires students to select and investigate a computational innovation that:
● Has or has had the potential to have significant beneficial and harmful effects on our society, economy, or culture.
● Consumes, produces, and/or transforms data.
● Raises at least one data storage concern, data privacy concern, or data security concern.
Students are expected to complete the EPT with minimal assistance from anyone. Students will have 8 hours of class time to complete, and submit:
● Computational Artifact
● Written Responses
Written Responses
Suggested Schedule October 2017
This schedule provides a schedule for 10 50-minute sessions, in order to meet the 8-hour in-class minimum required by the College Board.
Sessions 1 and 2 Using Development Processes and Tools
Sessions 3 -5 Analyzing Impact of Computing
Research:
Find an additional fact about the purpose or function of the CI
Find at least one effect of the CI
Find a group that benefits from an effect.
Find a group that is harmed by the effect.
Sessions 6 - 8 Analyzing Data and Information
Research:
Find the concepts the CI manages and the data it uses to manage it
Find how the data is consumed, transformed or produced
Find a data security, data privacy or data storage concern of the data the CI uses
Find a group that is harmed by the effect.
Finding and Evaluating Information - References and Submitting Documents
Sessions 9 and 10
Session 1: Identify performance task requirements and choose a computing innovation
Session 2: Review EPT Rubric and Research - Day 1
Session 3: Draft Written Responses part 2A, 2C, and 2E
Session 4: Research - Day 2
Session 5: Artifact Design
Session 6: Artifact Development
Session 7: Artifact Development
Session 8: Written Responses to parts 2B, 2D, and 2E
Session 9: Complete Artifact and Written Responses and Create PDF versions
Session 10: Submit Artifact and Written Responses
Students will be able to identify beneficial and harmful effects of a computing innovation.
Students will be able to explain how the innovation uses, produces, and/or transforms data.
Students will be able to explain a privacy, security, or data storage concern related to the innovation.
Stude