Lesson Summary

Summary

EarSketch teaches computer science through music composition and remixing. No prior knowledge of either computer science or music is needed. Students can express their own unique style. EarSketch also lends itself well to student collaboration as well as a discussion on proprietary ownership.

EarSketch is a web-based application, so there is no software to install. You need a current version of Chrome, Safari, Firefox, or Edge running on Mac, Windows, Linux, a ChromeBook, or a tablet with an attached keyboard. You also need headphones or speakers.

EarSketch consists of two components:

  1. A free online curriculum that teaches programming concepts using Python while teaching music composition and remixing.
  2. A free online software toolset, which contains a code editor to write and test Python code and a Digital Audio Workstation (DAW) to actually play the music.

 Students create an account to get Cloud storage for their files.

  • This curriculum does not ask students to post anything on this or on any public web site.   
  • No downloads or installs are needed other than current web browsers.   EarSketch runs inside a recent web browser Chrome, Firefox, Safari or Microsoft Edge. (Internet Explorer < 12 is not supported.)
  • Students need ear buds or headphones for these lessons.

Outcomes

  • Students will understand the basics of music including beat, measure, track, and effects.  
  • Students will use the Python programming language to create and remix their own music.  
  • Students will apply Python programming concepts - iteration, user-defined functions, debugging
  • Students will apply Python programming concepts - list creation, access, modification and traversal

Optionally from Section 3.

  • Students will use the Python programming language to create and remix their own music including effects and musical forms
  • Students will use the Python programming language to create and remix their own music including randomness and stochastic composition
  • Students will explore sonification -a way to use non-speech audio to convey information, or in other words, turning data into sound.
  • Students use Python to enable the computer to analyze audio.
  • Students will implement recursive Python programs

 Overview

The Lesson is divided into three sections.  

Section 1 Getting Started with EarSketch  is anticipated to take about 5-6 sessions.

  1. Programming for Personal Expression
  2. Program Design and Functions
  3. Project 1
  4. Copyright and Correctness
  5. Section 1 Assessment

Section 2 is anticipated to take about 5 sessions to complete these EarSketch units.

  1. Reusing Code
  2. Strings and Debugging
  3. Project 2
  4. Conditionals and Data Strucutres
  5. Section 2 Assessment

 

 

Section 3 is optional and is anticipated to also take about 5-6 sessions to complete these Earsketch units.

Each session will have the following elements.

  1. Getting Started: (5 min)
  2. Guided Activities (40 min)
  3. Wrap Up (5 min)

Sources

EarSketch curriculum is available at https://earsketch.gatech.edu/earsketch2/#. The EarSketch curriculum and teaching materials are licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) license.

 

 

Learning Objectives

CSP Objectives

Math Common Core Practice:

  • MP1: Make sense of problems and persevere in solving them.
  • MP2: Reason abstractly and quantitatively.
  • MP5: Use appropriate tools strategically.
  • MP6: Attend to precision.
  • MP7: Look for and make use of structure.
  • MP8: Look for and express regularity in repeated reasoning.

Common Core Math:

  • F-IF.1-3: Understand the concept of a function and use function notation
  • F-BF.1-2: Build a function that models a relationship between two quantities
  • F-LE.5: Interpret expressions for functions in terms of the situation they model

Common Core ELA:

  • RST 12.3 - Precisely follow a complex multistep procedure
  • RST 12.4 - Determine the meaning of symbols, key terms, and other domain-specific words and phrases
  • RST 12.7 - Integrate and evaluate multiple sources of information presented in diverse formats and media
  • RST 12.9 - Synthesize information from a range of sources
  • WHST 12.2 - Write informative/explanatory texts, including the narration of historical events, scientific procedures/experiments, or technical processes
  • WHST 12.4 - Produce clear and coherent writing in which the development, organization, and style are appropriate to task, purpose, and audience
  • WHST 12.6 - Use technology, including the Internet, to produce, publish, and update writing products

NGSS Practices:

  • 2. Developing and using models
  • 3. Planning and carrying out investigations
  • 4. Analyzing and interpreting data
  • 5. Using mathematics and computational thinking

NGSS Content:

  • HS-ETS1-2. Design a solution to a complex real-world problem by breaking it down into smaller, more manageable problems that can be solved through engineering.

Essential Questions

  • How can a creative development process affect the creation of computational artifacts?
  • How can computing and the use of computational tools foster creative expression?
  • How can computing extend traditional forms of human expression and experience?
  • How are vastly different kinds of data, physical phenomena, and mathematical concepts represented on a computer?
  • How does abstraction help us in writing programs, creating computational artifacts and solving problems?
  • How are programs developed to help people, organizations or society solve problems?
  • How are programs used for creative expression, to satisfy personal curiosity or to create new knowledge?
  • How does abstraction make the development of computer programs possible?
  • How do people develop and test computer programs?
  • Which mathematical and logical concepts are fundamental to computer programming?
  • How does computing enable innovation?
  • What are some potential beneficial and harmful effects of computing?
  • How do economic, social, and cultural contexts influence innovation and the use of computing?

Teacher Resources

Student computer usage for this lesson is: required

Students will need earbuds or headphones for these lessons.

EarSketch consists of three components:

The software toolset component includes the EarSketch code editor and digital audio workstation environment to write code and make music. It runs inside a web browser with the latest versions of Chrome, FireFox, or Safari. Internet Explorer is not supported and the digital audio workstation will not load. You must use a browser that supports Web Audio.  (Internet Explorer 12 plans to include support for Web Audio.)

Teachers should review the first two modules of the student curriculum to learn the components of EarSketch: Unit 1 (Getting Started) and Unit 2 (Effects and Beats).

Next, teachers should access the teacher curriculum, which is designed to help computer science teachers with little or no music knowledge begin teaching EarSketch in their classrooms. It presents music concepts, rhythms, pattern and variety, and effects as they relate to music programming in EarSketch. 

Finally, teachers should complete the student curriculum to get an idea of what students will be learning and doing.

Lesson Plan

Section 1 Introduction to EarSketch

Session 1

Getting Started (5 min)

Journal Prompt: What are possible advantages there are to creating and mixing music on a computer?

Responses should be collected from each student and used to create a word cloud. Project the following four benefits to programming music and ask, "Are any of these missing?"

  1. You can automate repetitive, tedious tasks.
  2. You can experiment with music more easily.
  3. You can roll the dice. (Introducing randomization into music.)
  4. You can turn data into music and interpret data in a musical way.

Students should select one of these four points and record throughts and observations as to their meanings.

Guided Activities (40 min)

Direct students to Unit 1: Getting Started with EarSketch (http://earsketch.gatech.edu/uncategorized/unit-1).

Within the first unit, they should explore the section 1.1. Introduction to the DAW (Digital Audio Workstations) (http://earsketch.gatech.edu/uncategorized/unit-1#chap11). Students should research the following definitions and procedures, then share them with a partner.

Definitions

  1. DAW
  2. measure
  3. track

Procedures

  1. How does one create, manage and play (run) an EarSketch script?
  2. How does one select and play tracks in the digital audio workstation in EarSketch?

 

Especially important is the process of creating, opening, running, editing, and saving EarSketch python scripts both on the EarSketch cloud as well as in the classroom. Once students have completed this task, demonstrate the following sections for them:

   1.4 Running a Script

   1.5 Adding Comments

   1.6 The DAW in Detail

   1.8 Sections of an EarSketch Script

   1.9 Creating a New Script

1.10 Composing In EarSketch

 

2  All programs process data, even those being developed for personal expression.  Demonstrate interactively the use of Python variables to store and retrieve data and to express values. Introduce student to the concept of abstraction and have students identify at least one detail that is hidden by each of data representation they review. 

   2.1 Rhythm

   2.2 Data Types

   2.3 Functions

   2.4 Numbers

   2.5 Variables

        2.6 Constants

Wrap Up (5 min)

It is important that students know how to use the curriculum and the online development environment.  Students should reflect on the process of creating, saving and retieving program in EarSketch.

  1. Which questions have been answered?
  2. Which questions remain?
  3. What new questions arose?

Assignment

Assignment 1.1

This assignment can be found within the curriculum resources at Unit 6 > Lesson 1 > EarSketch Units > Unit 1.

 

Session 2

Getting Started (5 min)

Journal: Students should open their Assigment 1.1 (homework from the previous section) and discuss what they learned while completing it with their elbow partners. They should record in their journals two observations made either in the previous session or during the completion of the assignment. Any questions remaining after these discussions should be shared by students.

Guided Activities (40 min)

Beats, Effects and Tempo 

Program Design and Functions

Students work in pairs through the 8 sections below and add any questions they have to those posted during the getting started session.

Debugging and Documenting

Effects in EarSketch: setEffect

Tempo and Pitch

Students complete Quiz 2.1.

Wrap Up (5 min)

Identify and responding to questions students have shared.  Use other studetns as a resource to answer as many questions as possible.

Assignment

Distribute and assign Assignment 2.2.   

 

Session 3

Getting Started (5 min)

Collect: Assignments 1.1 and 2.2

Journal: Students should discuss with their elbow partners the first two assignments, reflecting on the lessons learned and identifying any questions that are lingering. Unresolved questions should be posted on the board.

Guided Activities (40 min)

Some time should be used to respond to questions students posted at the beginning of the session. If questions are regarding upcoming material answer these during the next activity.

Students should work together to complete a  project for units 1 through 3. This project can be found under Unit 6 Resources > Lesson 01 - Earsketch > Projects > Project Unit 1-3_1.docx. The final product should be one working program per group.

 

Wrap Up (5 min)

Students should get into pairs and complete Quiz 3.1.  Collect an exit slip from students of any questions they need help with. Collect the quiz. 

Assignment

Students should complete Assignment 3.1 for the next session.

 

Session 4

Getting Started (5 min)

Journal: Students should discuss with elbow partners the lessons they learned from session 3 (including the assignment and quiz). Any unresolved questions should be posted to the board.

Guided Activities (40 min)

Before continuing, any questions regarding last session's formative quiz or assignment 3.1 should be answered.

Students again work in pairs to review Program Design and Functions using the following elements in the EarSketch curriculum.

Debugging and Documenting

   3.1 What is Debugging?

   3.2 Using the Console

   3.3 Documenting Code

   3.4 Common Errors

Effects in EarSketch: setEffect

4.1 Using Effects in EarSketch

Tempo and Pitch

   6.1 Tempo

   6.2 Pitch

   6.3 Transition Strategies

Wrap Up (5 min)

Students should reflect on how they benefited from cooperating with one another as partners and how they might beneifit from collaboration on the next project.

Assignment

Students should prepare for the section 1 exam using the assignments, quizzes and EarSketch units 1-3 as resources.

 

Session 5 (Section 1 Assessment)

Getting Started (5 min)

Students should upload their collaborative projects from session 4, including the .wav output of the music they created.

Guided Activities (40 min)

Students will take the section 1 test (units 1-3). The test to be administered can be found at the following location: Unit 6 Resources > Lesson 01 - Earsketch > Section Tests > Unit 1-3 Test.docx.

Time permitting, discuss the current music sharing sight and the ethical issues surrounding public sites. If students require more time to complete their collaborative projects, some could be given here as well.

Wrap Up (5 min)

Going foward, host a version of March Musical Madness. Hold a single elimination tournament to select the class musical section 1 champion.  If going on to sections two and three, consider doing just one round of the contest.  Each week allow pairs to enter their best product either from something newly created or modified.

 

Section 2 Dynamic Music Generation 

Session 6

Getting Started (5 mins)

Students should brainstorm lessons learned from the first section. They will be working in pairs throughout this entire section so this is a good time to also discuss standards for collaboration and cooperation. Partners/ work groups should be specified here. Notes gathered during this section, along with the EarSketch API documentation, will be allowed for the section 2 exam. 

Guided Activities (40 mins)

Student work in pairs through the Reusing Code sections below and post any questions they have.

Looping

   9.1 The For-Loop

   9.2 Components of a For-Loop

   9.3 Example Loop

   9.4 Following Control Flow

   9.5 Adding Effects with Loops

   9.6 Automating Effects with Loops

Musical Form and Custom Functions

10.1 Sections and Form

10.2 A-B-A Form

10.3 Custom Functions

10.4 Return Statements

 

Wrap Up (5 mins)

Using students as a resource whenever possible, answer any questions students have identified.

Working in pairs, students should complete Quiz 4. This quiz can be found under resources at the following location:  Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 4. 

Assignment

Optional - Time permitting have stuend seletc a project and collaborate in its development.

With partner/work group, select an assignments from the following list (these assignments can be found under the following: Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 4).

Assignment 4.1 

Assignment 4.2

Assignment 4.3

Assignment 4.4

Assignment 4.5

 

Session 7

Getting Started (5 mins)

Assess student progress from the previous session. Student working groups should identify questions or concerns. It is crucial that major concerns are addressed as soon as possible.

Guided Activites (40 min)

Student work in pairs through theStrings and Making Custom Beats: makeBeat sections below and post any questions they have. 

12.1 Strings

12.2 Beat Patterns with Strings

12.3 makeBeat()

13.1 String Concatenation

Debugging Logic

15.1 Printing to the Console

15.2 The Debugging Process

15.3 Common Errors

 

 

Wrap Up (5 min)

Using students as a resource whenever possible, answer any questions students have identified.

Working in pairs, students should complete Quiz 5.1. This quiz can be found under resources at the following location:  Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 5.

 

Assignment

Select and assign one of the following to assignments (these assignments can be found under the following: Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 5):

Assignment 5.1

Assignment 5.2

 

Session 8

Getting Started (5 mins)

Assess student progress from the previous session. Student working groups should identify questions or concerns, making sure to share all concerns pertaining covered material before the following session.

Guided Activities (40 mins)

Students should work together to complete a  project for units 1 through 3. This project can be found under Unit 6 Resources > Lesson 01 - Earsketch > Projects > Project Unit 4-6_1.docx. The final product should be one working program per group.

Time permitting students shoul work individually on  assignment 6.1. This assignment can be found within the curriculum resources at Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 6.

 

Wrap Up (5 min)

Students should identify questions or concerns and share those that they think are most important, supplementing their notes with important comments.

Assignment

Formative Assessment (15 min)

Working in pairs, students should complete Quiz 6.1. This quiz can be found under resources at the following location:  Unit 6 Resources > Lesson 01 - EarSketch > EarSketch Units > Unit 6.

 

 

Session 9

Getting Started (5 mins)

Assess student progress from the previous session. Student working groups should identify questions or concerns, making sure to share all concerns pertaining covered material before the following session.

Guided Activites (45 mins)

Have your students select and complete (in pairs) one of the following two projects. These projects can be found under Unit 6 Resources > Lesson 01 - EarSketch > Projects:

Project Unit 4-6_1.docx

Project Unit 4-6_2.docx

Assignment

Students should consolidate their notes and prepare for the section 2 exam next session. REMINDER: It is an open note exam.

 

Session 10

Getting Started (5 mins)

Journal: Have students reflect on the ethical concerns raised by digital media innovations such as EarSketch. In their journals, they should write down a specific ethical issue associated with the use of EarSketch. They should also point out one additional piece of online technology that raises digital media related ethical concerns.

Guided Activity (40 mins)

Distribute and administer the section 2 exam. This exam can be found at the following location: Unit 6 Resources > Lesson 01 - EarSketch > Section Tests > Unit 4-6 Test.docx.

Wrap Up (5 mins)

Host a version of March Musical Madness. Hold a single elimination tournament to select the class musical section 2 champion. If going on to section three, consider doing just one round of the contest. Each week allow pairs to enter their best product. It can be derived from the in-class work or be a completely new, out-of-class creation.

 

Section 3 Teaching Computers to Listen (Optional)

Section 3 is optional and is anticipated to also take about 5 sessions to complete these EarSketch units.  Students should be working very independently during this unit in prepartion for the Create Task.

11 EarSketch Unit 7: Teaching Computers [1 session]

12 EarSketch Unit 9: Recursion [1 session]

13 Project 3 [2 sessions]

14 Summative Assessment

Session 11:

Getting Started

 

Guided Activities

Unit 7: Teaching Computers

 

Formative Assessment

Quiz 7.1.docx

Assignment:

7.1

Wrap Up:

In pairs. then study groups students identify questions or concerns and share those they think are most important and supplement their notes with important comments.

 

Session 12:

Getting Started

Assess student progress from Session 11.  Groups identify questions or concerns and share any items of concern before day 2 of this section.

 

Guided Activities

Unit 9: Recursion

Formative Assessment

Quiz 9.1

Assignment:

9.1

Wrap Up:

In pairs. then study groups students identify questions or concerns and share those they think are most important and supplement their notes with important comments.

 

 

Session 13 and 14:

Getting Started

Assess student progress from Session 12.  Groups identify questions or concerns and share any items of concern before days 3 and 4 of this section. 

 

Guided Activities

Project Unit 7-9_1.docx

Project Unit 7-9_2.docx

 

Assignment:

Prepare for Section 3 exam.

Wrap Up:

In pairs. then study groups students identify questions or concerns and share those they think are most important and supplement their notes with important comments.

 

 Session 15:

Guided Activities

Unit 7-9 Test.docx

Wrap Up:

Host a version of March Musical Madness.  Hold a single elimination tournament to select the class musical Section 2 champion.  If going on to three consider doing just one round of the contest.  Each week allow pairs to enter their best product either from somethnnewly created or modified.

Assignment:

None

 


Evidence of Learning

Formative Assessment

Section 1:  

Quiz 1.4-1, 1.4.2, 2.1-1, 2.1.2, 3.1, 3,2 and 3.3

 

Section 1:  

Quiz 4, 5.1 and 6.1

 

Section 1:  

Quiz 7.1 and 9.1

 


Summative Assessment

Section 1:  

Project Unit 1-3_1 and Unit 1-3 Test 

 

Section 2:

Project Unit 4-6_1 and Unit 4-6 Test

 

Section 3:

Project Unit 7-9_1 and Unit 7-9 Test 

Lesson Summary

Summary

In this lesson, students will be formally introduced to data visualization using Bokeh: an interactive data visualization library in Python. They will go through a guided tour of how to use this library, and then will complete a fun activity that involves gathering data from their classmates for the purposes of visualization.  

Outcomes

Students will learn why data visualization is important.

Students will be able to meaningfully visualize data they collect. 

Overview

Session 1 (Line/Bar Graphs):

  • Getting Started - Data acquisition (5 Minutes)
  • Guided Tour - iPython notebook / Powerpoint - (15 minutes)
  • Activity - Plotting data (30 minutes)
  • Wrap Up - Exit slip (5 minutes)

Session 2 (High-level charts):

  • Getting Started - Data acquisition (5 Minutes)
  • Guided Tour - iPython notebook / Powerpoint (15 minutes)
  • Activity - Plotting with high-level charts (30 minutes)
  • Wrap Up - Exit slip (5 minutes)

Learning Objectives

CSP Objectives

Teacher Resources

Student computer usage for this lesson is: required

  • Power Point presentations: "session1.pptx," "session2.pptx"
  • iPython notebooks: "BokehTutorialLesson1_a.ipynb"

Lesson Plan

Session 1

Getting Started (5 minutes)

Come up with 4-5 questions that make sense when visualized with a line graph or bar graph, such as:

  • When do you usually do your homework? 
  • What time do you wake up in the morning on a weekday?
  • What time do you wake up in the morning on the weekend?
  • etc.

Enlist the help of your students in coming up with the questions. Present all questions at the start of this lesson, and solicit answers to each question from each student. These answers will be used later in the lesson, so make sure to collect them in a table-like format such as ".csv"

It is reccommended that you create a Google Form to collect answers to these questions with. You could then ask your entire school to fill out the survey, and have even more data to visualize! 

Guided Tour (15 Minutes)

Use the existing iPython Notebook to introduce Bokeh. Explain data visualization. Have the students follow along as you show them how Bokeh line plotting works, have them attempt the exercise at the end of the notebook. 

Activity (30 Minutes)

Using the data that was collected at the beginning of class, determine the best way to plot the information collected at the beginning of class. Then, plot it! See if you can come up with cool trends by plotting data on the same chart, etc.

Exit Ticket (5 minutes)

Simple exit slip, ask the students what data visualization is, why it is important, how to construct a line graph in Bokeh, etc.

 

Session 2

Getting Started (5 minutes)

Gather data in a similar fashion as the last session. Ask questions of your class / school that make for interesting visualizations. 

Guided Tour (15 Minutes)

Use the powerpoint provided to briefly discuss the high-level charts available in Bokeh.

Activity (30 Minutes)

Have the students use any of the high-level charts to plot the data that was collected in the warm-up.

Exit Ticket (5 minutes)

Ask a simple question about any of the plotting mechanisms covered.  


Lesson Summary

Summary 

Continuing the focus on data analysis from Unit Five, students will use the browser-based Dataquest learning environment (http://www.dataquest.io) and supplementary materials to explore more ways in which Python can be used to analyze data. For the first week, students will explore Dataquest through the browser-based "missions" on the website. Each lesson begins with a warm-up/journal entry, and students then spend the rest of the time working through the missions at their own pace.  For the second part of the lesson, students will design and implement their own data analysis project in order to prepare them to complete a data-focused Create Performance task.

Outcomes

  • Students will understand how to design a data analysis project
  • Students will have the tools to analyze data in Python
  • Students will have practice reading and understanding datasets

Overview

Week One: Learning Dataquest

  1. Getting Started (5 - 10 min)
  2. Independent Study (40 - 45 min)

Week Two: Data Analysis Project

  1. Students Plan and Implement Data Analysis Program

 

Learning Objectives

CSP Objectives

Teacher Resources

Student computer usage for this lesson is: required

DataQuest.io website: https://www.dataquest.io/learn

Week One Materials: Unit 6 Resources -> DataQuest.io -> Week One Lesson Materials -> Mission #

Week Two Materials:

Datasets: Unit 6 Resources -> Dataquest.io - > Week Two Project Datasets and Materials -> Datasets

Sample Project: Unit 6 Resources -> Dataquest.io - > Week Two Project Datasets and Materials -> Sample Project

Project Rubric: Unit 6 Resources -> Dataquest.io - > Week Two Project Datasets and Materials -> "Data Analysis Project Rubric"

(Quizzes for Week One and Week Two are in the corresponding teacher-only resource folders)

 

 

Lesson Plan

Week One: Learning Dataquest

Note: all worksheets and quizzes can be found in the teacher-only resource folder, Unit Six -> DataQuest.io -> Week One Lesson Materials -> Mission #

Directions for working in Dataquest.io

  1. Each student will first need to create an account on Dataquest.io. This is free, and will help them to keep track of their progress.
  2. Each mission comes with a worksheet with required sections to complete. Students are encouraged to fill out as much as possible. The non-required sections are introductions to basic coding tools. Some students may want to do these if they need a refresher on the concepts. 
    • Note: As of now, sections cannot be skipped on the website. This limitation may change in the future.
  3. Once they have completed the worksheet for the mission, students will use the notes on their worksheets to complete:
    1. concept quiz to test their understanding of the data science concepts.
    2. coding quiz to test their understanding of the Python concepts.

Quizzes should be done in class, and should take a minimum of 10-20 minutes to complete. It is advisable to not give a quiz out in the last ten minutes of class. If there are only a few minutes left, the student can use the time to add to their notes.

If a student fails one of the quizzes, they may be given the chance to go back and add to their worksheet before attempting the quiz again. (Multiple versions of all coding quizzes are available.)

There are a total of four Missions for the Introduction to Python track. Students are only required to do the first three. The fourth Mission has worksheets/quizzes for those students who get to it, and can be counted as extra credit/normal grade at the teacher’s discretion. Two additional optional missions are available: one on data visualization, and one on working with statistics.

Getting Started (5 - 10 min)

Day 1

Show the first two minutes of the introductory video in Mission 1 on the Dataquest.io website. Students will discuss their reactions and thoughts about Data Science.

Day 2

Pull up d3js.org on the projector. This is the webpage for a data visualization library in Javascript that has many great examples of ways to make connections from data. You can explore by clicking on one of the tiles on the front page. Explore the D3 front page with the class and discuss reactions.

Day 3

This warm-up time is used for class discussion on progress through the missions. You can use this time to gauge the students' comfort with Python concepts by having students vote with their heads down. If enough students are having trouble, you may want to have a separate review session during the class.

Day 4

This warm-up time can be used for reviewing a Python concept (such as Dictionaries) or looking at a current news article involving data analysis (any article about a topic of interest to the students that uses statistics would be appropriate). Students should think-pair-share on additional ways in which data could be used.

Day 5

Students should do a show of hands to see where everyone is in the missions. The class should have a general discussion about progress.

 

Week Two: Data Analysis Project

Note: All materials for this section can be found in Unit 6 Resources -> Dataquest.io - > Week Two Project Datasets and Materials

Directions: 

For this week, students will be pairing up to create and implement a data analysis program of their own design.

  • Teachers start out the first day by presenting the PowerPoint "Project Introduction," which goes through the steps to creating a data analysis project. Teachers then review the "Data Analysis Project Directions" document.
  • The class splits up into groups of two (with up to one group of three) and each group chooses a dataset to work with. It is preferable if each group chooses a different dataset.

For the rest of the week, students should work on their projects in their groups. At the end, teachers can optionally have them present their PowerPoints to the class, exchange presentations in pairs, or merely turn everything in.


Evidence of Learning

Formative Assessment

  • Week One quizzes
  • Check for understanding at the beginning of each day of week one.

Summative Assessment

Week two project.

Lesson Summary

Pre-lesson preparation

The second session is a programming activity and requires using NetLogo (a tutorial is in the Unit 4 Lesson on Hypothesis Testing with NetLogo) or using Python with Bokeh (for more advanced students).

Summary

Students will be introduced to the topic of diversity and computational problems, learn about and discuss implications of the proliferation of algorithms in society, and reflect on how the quality of input data and small, sometimes unintended biases can lead to low quality solutions.

Outcomes

  • Students will consider how diversity leads to better solutions.
  • Students will discuss the proliferation of algorithms in society.
  • Students will learn about some applications of artificial intelligence and machine learning algorithms.
  • Students will explore a computational simulation of bias.
  • Students will understand how small changes in input parameters can affect output quality and variety.
  • Students will program an agent-based model from social science theory.

Overview

Session 1

  1. Getting Started (5 min)
    • Artificial intelligence algorithms in daily life?
  2. Discussion (10 min)
    • Algorithms, Input Data, and Diversity
  3. Guided Activty (25 min)
    • Parable of the Polygons
  4. Wrap-up (10 min)

Session 2

  1. Getting Started (5 min)
    • Algorithms, Diversity, and Solutions
  2. Programming Activity (40 min)
    • Make your own Parable of the Polygons
  3. Wrap-up (5 min)

Learning Objectives

CSP Objectives

Math Common Core Practice:

  • MP3: Construct viable arguments and critique the reasoning of others.

Common Core ELA:

  • RST 12.2 - Determine central ideas and conclusions in the text
  • RST 12.6 - Analyze the author's purpose in providing an explanation, describing a procedure
  • RST 12.9 - Synthesize information from a range of sources

NGSS Practices:

  • 2. Developing and using models
  • 7. Engaging in argument from evidence

NGSS Content:

  • HS-ETS1-1. Analyze a major global challenge to specify qualitative and quantitative criteria and constraints for solutions that account for societal needs and wants.
  • HS-ETS1-4. Use a computer simulation to model the impact of proposed solutions to a complex real-world problem with numerous criteria and constraints on interactions within and between systems relevant to the problem.

Teacher Resources

Student computer usage for this lesson is: required

Supplementary articles:

Lesson Plan

Session 1

Getting Started (5 min)

Think-Pair-Share: Artificial intelligence algorithms in daily life?

Ask your students to list discuss what artificial intelligence algorithms they think affect them in daily life and how they are affected. How would it be different if those algorithms did not recognize them or treated them inappropriately? If an algorithm makes the wrong judgement about them, what would they do, who could they go to for help? It is OK if students are unsure about the answers as it leads into the following discussion.

Discussion: Algorithms, Input Data, and Diversity (10 min)

Algorithms have become prominent and common in daily life. In particular, algorithms that use artificial intelligence (AI) or a technique called machine learning are employed to make decisions that affect us, sometimes in ways we aren't aware of and cannot control. For example, machine learning is used by Google, Facebook, Flickr, among other companies to detect faces in photographs, apply labels, or automatically tag images with people they recognize. In general, these algorithms are trained on input data (such as images of people), and are improved iteratively using statistical methods until they learn how to categorize, differentiate, and reach a correct answer. Another example of companies using AI is in personalized marketing or recommendation systems. For instance, Amazon tailors the products they suggest based on an algorithm trained on similar customers' purchase history. Or a company like Netflix will recommend movies to users who rate similar movies similarly.

At the heart of these algorithms is the fact that their solutions all depend on the initial parameters and input data used to train them. What happens when those parameters and data are not sufficiently diverse? Small changes in those parameters, oversights in the training data, implementer bias (both intended and not), and missing distributions or categories can all negatively prejudice algorithms. All this is important to keep in mind as algorithms start determining aspects of our lives and there is less or no control over the input and decisions they make about and for us.

A 2016 article in the New York Times (http://www.nytimes.com/2016/06/26/opinion/sunday/artificial-intelligences-white-guy-problem.html?_r=0) highlights an example problem where lack of diversity leads to lower quality solutions. In particular, various AI and machine learning algorithms were developed by and calibrated on too limited a population, leading to insulting and significantly bad results, such as not recognizing people with dark skin tones or tagging them inappropriately. Examples where diversity may greatly influence the quality and real-world implications of algorithms include:

Guided Activity (25 min)

Parable of the Polygons

A hands-on example of how initial parameters, subtle biases, and lack of diversity can greatly affect an algorithm's execution is in the "Parable of the Polygons" (http://ncase.me/polygons/). The Parable of the Polygon is a simulation based on the mathematical model of how segregated communities may arise from small differences preferences, based on the theory of Thomas Schelling, an economist and game theorist who received the Nobel Prize for Economics in 2005.

Guide students through the website and let them explore dragging polygons, changing settings, and see how they can influence (it is best for them to follow along individually or in groups on their own computer).

An alternative version of the final sandbox with three polygon shapes is also available here: http://ncase.me/polygons-pentagons/play/automatic/automatic_sandbox_frame.html

Wrap-up (10 min)

Journal or Homework

Have your students continue to explore the Parable of the Polygons website and answer the following questions using the sandbox at the bottom of the website:

  • What settings where the ratio of polygon populations are the same lead to the greatest segregation? Why do you think that is?
  • What settings where the ratio of polygon populations are the same lead to the least segregation? Why is that?
  • What settings where polygons still have room to move lead to the algorithm being unable to find a solution (it does not terminate)? Why is that?
  • Answer the same three questions above using the three-polygon version here: http://ncase.me/polygons-pentagons/play/automatic/automatic_sandbox_frame.html

Session 2

Getting Started (5 Min)

Think-Pair-Share: Algorithms, Diversity, and Solutions [5 min]

  • Have students consider one or more of the following questions:
    • How can an algorithm be affected by diversity (such as in its input data)?
    • What does it mean for input or training data to be diverse?
    • Can you think of examples where diversity, or the lack of diversity, affects the quality of an algorithm's solution?
    • Can you think of algorithms that benefit from diverse data?

Programming Activity (40 Min)

Two options: guided programming exploration with NetLogo, or more involved Python programming project for advanced students

Option 1: Using NetLogo

  • If you have not already used NetLogo in the classroom, you can follow the instructions for downloading and setting up NetLogo in the Unit 4 Lesson "Hypothesis Testing with Simulations in NetLogo"
  • Open up NetLogo and go to File->Models Library, then under the Sample Models folder, open the Social Science folder and load the Segregation model
  • For information about the model, read the sections in the Info tab
  • Have the students experiment with the settings and see what differences and similarities it has to the Parable of the Polygons website
  • For the remainder of the activity, have the students make some meaningful changes to the code of the simulation (in the Code tab) and write a short response stating what they did and how their parameters
  • Some suggestions include:
    • Add more types of agents to the model (hint, add another color to the line "set color one-of [red green]")
    • Change the sliders to match the Parable of the Polygons slider (agent count based on ratios, ability to have <50% agents)
  • Finally, a more developed model is included in the NetLogo models library

Option 2: Using Python with Bokeh (for advanced students)

Have students re-create the Parable of the Polygons themselves in Python, time with at least four types of polygon shape/colors. The source code for the Parable website is hosted on GitHub here: https://github.com/ncase/polygons/blob/gh-pages/play/automatic/automatic.js It is in JavaScript, but it serves as a good pseudocode basis. Alternatively, students could use the NetLogo code from Option 1 as another reference in creating their simulation.

Wrap-up (5 Min)

Journal: Have your students reflect and list 5 examples or ways in which diverse input makes for better solutions.