# data[].attributes.attachment_link.readable_text
Lesson Overview

For this activity, no instructions are provided. Instead, students will use examples of what imaginary players have done to figure out how to play the game. This lesson gives students the opportunity to practice the four arts of computational thinking (decomposition, pattern matching, abstraction, and algorithms) in one cohesive activity.

Lesson Objectives

Students will:

Analyze information to draw conclusions

Match identical portions of similar phrases to match patterns

Identify differences in similar phrases and abstract them out

Materials, Resources and Prep

For the Student

For the Teacher

Getting Started (15 min)

1) Vocabulary

This lesson has four new and important words:

Algorithm - Say it with me: Al-go-ri-thm
A list of steps that you can follow to finish a task

Decompose - Say it with me: De-com-pose
Break a problem down into smaller pieces

Abstraction - Say it with me: Ab-strac-shun
Pulling out specific differences to make one solution work for multiple problems

Pattern Matching - Say it with me: Pat-ern Matching
Finding similarities between things

2) Figuring it Out

Tell your students that you want them to sum up all of the numbers between 1 & 200.
Use your body language to indicate that this is not a "serious" or graded exercise.

Now, let them know that they must do it all in their heads.

Add the time constraint of thirty seconds.

They may feel overwhelmed. This is intentional. You can indicate with your tone and demeanor that you might be crazy asking this of them, but begin timing with a resounding: "Starting NOW".

Watch the class as you keep time. How many are lost in thought?

When time is up, ask if anyone was able to get the total.

Ask if there is anyone who thought the problem was so hard that they didn't even attempt it.

Did anyone attempt it and just not finish?
What did they try?

Guide students toward thinking a little smaller.

If we break the problem up into smaller pieces, it becomes easier to manage.

Let's start at the two ends. What is 200 + 1?

What is 199 + 2?

What is 198 + 3?

See a pattern?

How many of these pairs will we have?

What is the last pair we will find? 100 + 101

That means that we have 100 total pairs.

If we have 100 total pairs of sums of 201, how do we find the final total?

What is 100 * 201?
Now, what if we wanted to find the trick to do this with other numbers?

Can we do it easily with 2,000?

How about 20,000?

What stays the same? What is different?

If we use abstractions to make our end goal something that can change (say we name it "blank") then we can make an algorithm that will work for any number

Work through the problem until you ultimately get ? = ("blank"/2) * ("blank"+1)

Do a few simple examples to show that the algorithm is correct for blanks= 2, 3, 4, & 5.

"This is all to show that if you use the tools of Computational Thinking (decomposition, pattern matching, abstraction, and algorithms), then you can figure out how to solve problems that no one has already taught you how to solve...just like we did here! This will be an extremely powerful skill for the rest of your life!"

Activities: (25 min)

This lesson is all about a "Game with No Instructions." Students will be charged with figuring out how to play the game as a small group. The small details of their final algorithm are unimportant. What is important is that they were able to take a huge task like "figuring out how to play a game on their own" and take small steps toward achieving the goal.

Students will be guided toward discovering the rules using the steps of computational thinking. Resist the temptation to point the students toward "doing it right" and allow them just to do it on their own. If they feel stumped or confused, encourage the students to look at the information that has been given to them, or if they must, ask a classmate.
Directions:

1) Divide students into groups of 2-4.

2) Have the groups read over user experiences to get an idea of how other students have played the "Game with No Instructions."

3) Encourage them to pattern match between each experience by circling the sections of words that are identical from player to player.

4) Next, have them abstract away differences from each experience by underlining words that change from player to player.

5) Using pattern matching and abstraction, have them make a script template for game play by writing up the circled parts of the other students' experiences, and leaving the underlined sections as blanks. For example:

6) Give students a blank sheet of paper to write a list of instructions for how they think this game should be played based on the user experiences that they just read. This will be their algorithm.

7) Have students play the game using the algorithm that they just made. Each player should get at least two turns.

Wrap-up (5 min)

4) Flash Chat: What did we learn?

What should you try to do when you're asked to do something and you don't know how?

If a problem is too hard, what should you try to do?

If you find similarities in lots of solutions to different problems, what does that probably tell you?

If you have a problem that is just a little different from a problem that you have a solution for, what would you do?

Flash Chat questions are intended to spark big-picture thinking about how the lesson relates to the greater world and the students' greater future. Use your knowledge of your classroom to decide if you want to discuss these as a class, in groups, or with an elbow partner.

5) Vocab Shmocab

Which one of these definitions did we learn a word for today?

"Bringing two pieces together"
"Breaking a problem down into smaller pieces"
"An educated guess"

...and what is the word that we learned?

Assessment (5 min)

Hand out the assessment worksheet and allow students to complete the activity independently after the instructions have been well explained.

This should feel familiar, thanks to the previous activities.

Connections and Background Information

ISTE Standards (formerly NETS)

1.a - Apply existing knowledge to generate new ideas, products, or processes.

1.c - Use models and simulation to explore complex systems and issues.

2.d - Contribute to project teams to solve problems.

4.b - Plan and manage activities to develop a solution or complete a project.

4.d - Use multiple processes and diverse perspectives to explore alternative solutions.

CSTA K-12 Computer Science Standards

CPP.L1:6-05. Construct a program as a set of step-by-step instructions to be acted out.

CT.L1:6-02. Develop a simple understanding of an algorithm using computer-free exercises.

CT.L2-01. Use the basic steps in algorithmic problem solving to design solutions.

CT.L2-06. Describe and analyze a sequence of instructions being followed.

CT.L2-08. Use visual representations of problem states, structures, and data.

CT.L2-12. Use abstraction to decompose a problem into sub problems.

CT.L2-14. Examine connections between elements of mathematics and computer science including binary numbers, logic, sets, and functions.

NGSS Science and Engineering Practices

3-5-ETS1-2. Generate and compare multiple possible solutions to a problem based on how well each is likely to meet the criteria and constraints of the problem.

Common Core Mathematical Practices

1. Make sense of problems and persevere in solving them.

2. Reason abstractly and quantitatively.

3. Construct viable arguments and critique the reasoning of others.

6. Attend to precision.

7. Look for and make use of structure.

8. Look for and express regularity in repeated reasoning.

Common Core Math Standards

3.OA.3 - Use multiplication and division within 100 to solve word problems in situations involving equal groups, arrays, and measurement quantities.

4.NBT.B.4 - Fluently add and subtract multi-digit whole numbers using the standard algorithm.

5.NBT.B.5 - Fluently multiply multi-digit whole numbers using the standard algorithm.

Common Core Language Arts Standards

SL.3.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 3 topics and texts, building on others' ideas and expressing their own clearly.

SL.3.3 - Ask and answer questions about information from a speaker, offering appropriate elaboration and detail.

L.3.6 - Acquire and use accurately grade-appropriate conversational, general academic, and domain-specific words and phrases, including those that signal spatial and temporal relationships.

SL.4.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 4 topics and texts, building on others' ideas and expressing their own clearly.

L.4.6 - Acquire and use accurately grade-appropriate general academic and domain-specific words and phrases, including those that signal precise actions, emotions, or states of being and that are basic to a particular topic.

SL.5.1 - Engage effectively in a range of collaborative discussions (one-on-one, in groups, and teacher-led) with diverse partners on grade 5 topics and texts, building on others' ideas and expressing their own clearly.

L.5.6 - Acquire and use accurately grade-appropriate general academic and domain-specific words and phrases, including those that signal contrast, addition, and other logical relationships

# data[].attributes.attachment_link.description
For this activity, no instructions are provided. Instead, students will use examples of what imaginary players have done to figure out how to play the game. This lesson gives students the opportunity to practice the four arts of computational thinking (decomposition, pattern matching, abstraction, and algorithms) in one cohesive activity.

# data[].attributes.headline
The Tech Collective Computational Thinking 

# data[].attributes.subject
The Tech Collective Computational Thinking 

# data[].attributes.attachment_link.title
Computational Thinking Lessons | The Tech Interactive

# data[].attributes.attachment_link.description
Browse our computational thinking lessons and discover out interdisciplinary approach to computer programming!

# data[].attributes.attachment_link.description
Please take your time and respond to the following questions in complete sentences. Your response helps us help you!

# data[].attributes.attachment_link.title
Kindergarten Lesson plan-Math & Computational thinking

# data[].attributes.attachment_link.title
3rd Grade- Roman Numeral, Computational Thinking Lesson

# data[].attributes.body
One lesson that I had struggled with in the past was teaching division of fractions.  At first, what I thought was going to be an easy lesson prepare turned into a struggle with my students.  In order to make it more understandable for my kids I broke it down in more simplistic forms. I developed a series of steps for the students rather than jumping into the process full steam.   Without knowing it I followed the pillars of computational thinking and it transformed the understanding the concept of division of fractions.  Below is the example of how used computational thinking to improve my teaching.

Decomposition:  I first showed the students what dividing fractions looked like with a hands on approach.  We worked on concrete hands on examples and how you would divide simple fractions.  We found a song by the Jonas Brothers “S.O.S” changed the words to fit the method/steps that we would be using to solve division of problems.    (Shape. Operate. Simplify)

Pattern Recognition:  I used the fraction pieces that the kids created to gain a deeper understanding  what we are doing when we divide fractions.

Abstraction.  Students started to see that division was simply an extension of the skill we had mastered in multiplying fractions with a few nuances.  They understood how reciprocals were a major role in division and how it would show the parts of a fraction.

Algorithm.  Once I had them understanding what the concept entailed.  I took them through the step by step process.  Step 1:  Change the divisor into its reciprocal.  Step 2 change the divide to a multiply sign.  Step 3:  Multiply the fractions.  Step 4:  Simplify if needed  in other words S.O.S.  From that point on whenever the kids heard the Jonas Brothers’ song “S.O.S” they knew what we were working on or doing!

# data[].attributes.body
Customary Conversions have been a struggle for the past couple of years. This previous year was a bit better after I rearranged the lesson and came up with extra activities. Another thing I may look into doing this year is gallon man to try to incorporate a hands-on activity that would really ingrain the conversions into their brains.

Decomposition - break down each measurement - gallons to quarts to pints to cups

Pattern Recognition - notice that each measurement goes smallest to biggest and builds as it goes

Abstraction - conversions are used in everyday life

Algorithm Design - break down each step into smaller pieces so that they get the first aspect before moving onto the next

# data[].attributes.body
Something in a unit or lesson that I need to keep getting better and concentrate on is space and equipment adjustments. I struggle with the amount of space and equipment that I have for each lesson. Sometimes I don’t have enough space or equipment to keep everyone involved. I need to find ways to adjust or add to my lesson plan in my limited space and equipment to have everyone involved and moving around. I don’t like when there is standing around in gym class. They come to move and get their exercise/movement in and standing around and waiting to play in a game or match because there aren't enough nets or hoops. One way I could possibly is take one net away and turn that area into a different game or activity that involves the same standards or something close to that.

# data[].attributes.body
Writing within the classroom and during state testing is a challenge.

Decomposition- Clearly define and provide each component of the writing task.

Pattern Recognition- Highlight each specific part and practice finding them.

Pattern Generalization and Abstraction- Fill in each section of a writing template and going through the writing process with it.

Algorithm Design- Publish a specific type of writing, working through each step as a class.

# data[].attributes.body
Over the years, I have taught many lessons that did not go well. Teachers are unique people in that they can recognize that lessons aren’t going well and can adjust on the fly.  This reinforces the check for understanding during the lesson and the exit tickets at the end. I don’t believe I have taught a lesson over and over that didn’t go well. You adjust to accommodate your class. Every class is different. You need to use data to inform your teaching lessons, therefore, lessons aren’t necessarily going to be the same every year.

I taught Kindergarten for one year, and I was excited about an assignment of writing math problems on large sticky notes. They were to use the dominoes to write addition problems. They were so excited about the new materials it was hard to keep their attention to complete the assignment. They also were not familiar with dominos so some of the students had a hard time understanding my directions. My changes to this activity were to do it again after the students had experienced large sticky notes and dominoes. Use the lesson as more of a review lesson rather than a practice lesson.

# data[].attributes.body
Finding certain parts of speech like adjectives and adverbs in a sentence.

Decomposition-Breaking down what questions each one answers.

Pattern Recognition-Find the noun first.

Abstract-Breaking down the purpose of each.

Algorithm-Giving the students a sentence to see if they can locate the adverbs and adjectives.

# data[].attributes.body
Problem Area: Layout of Writing - Paragraphs

How to Fix:

-Write a template out for them to simplify - introduction sentence, example 1, example 2, example 3, conclusion sentence.

-Color code the different kinds of sentences.

-Then wean them off until they can do it themselves.

How to add in the Pillars of Computational Thinking:

Decomposition: Breaking it down for them on what a paragraph should have.

Pattern Recognition: Recognizing the pattern of intro., examples, and conclusion.

Abstraction: Color coding the different kinds of sentences.

Algorithm Design: DO IT!

# data[].attributes.body
G6 Lesson: Ukulele Playing

Lesson Objective:

Demonstrate understanding of reading tablature for the ukulele

Play a melody using tablature

Computational Thinking

Decomposition: Breaking down the whole music piece into smaller sections  (e.g., intro, verse/s, chorus, and ending)

Pattern Recognition: Looking for similarities or patterns on the pitches/notes and/or rhythm throughout the song

Abstraction: (can be individualized to better address the students need)

Identifying the notes used in each small part and focusing only on the frets where these notes are played. This will help students to not get overwhelmed with all the frets on the ukulele.

For students with problems on finger dexterity: Practicing finger placements and open string plucking one hand at a time before playing with both hands together.

Algorithm Design: Develop a Rehearsal Strategy - for practicing individually at home, and for practicing in small groups inside the classroom. Creating a simple step-by-step process in practicing the piece (e.g., starting at a slow tempo or focusing on playing 4-8 measures at a time).

I have realized that my music classes most of the time only emphasize decomposition and pattern recognition, incorporating individualized abstraction and algorithm design can significantly enhance students' learning progress.