Learn to Code - Hour of Curiosity · Learn to Code Write a “pseudocode procedure: 1)Determine a...
Transcript of Learn to Code - Hour of Curiosity · Learn to Code Write a “pseudocode procedure: 1)Determine a...
Learn to CodeA Professional Development Activity for K-8 Math Teachers
Learn to CodeA Professional Development Activity for K-8 Math Teachers
Group Size: 40 participantsResource: Computers & Tablets, Wifi, Projector
Note: To keep the file size down, video resources meant to support this resource are linked in the corresponding slides.It is assumed the presenter has some basic understanding of “coding”
Learn to Code
What is “Coding” ?
• You’ve seen the craze for learning code. But what exactly is coding? Coding is what makes it possible for us to create computer software, apps and websites. Your browser, your OS, the apps on your phone, Facebook, and this website – they’re all made with code.
Source: http://www.codeconquest.com/what-is-coding/
Audience Engagement:
Ask the audience how many have heard of coding.Ask “How many of you have seen coding before?”
Learn to Code
What is “Computational Thinking” ?
• Computational Thinking (CT) is a process that generalizes a solution to open ended problems. Open-ended problems encourage full, meaningful answers based on multiple variables, which require using decomposition, data representation, generalization, modelling, and algorithms found in Computational Thinking.
https://en.wikipedia.org/wiki/Computational_thinking
CT is a process in which solutions to open ended problems are derived using technology.
Discuss the notion that coding is a subset of computational thinking, but not the only subset.
Learn to Code
What is “Computational Thinking” ?
• Thinking about and solving problems or completing tasks using technology.
• Coding is a tool used in Computational Thinking. • Building structures is Minecraft is a form of Computational Thinking. • Created spreadsheets and organizing data and graphs is a form of
Computational Thinking
Credits:
Sketchnote by Sylvia DuckworthContent by Brian Aspinall
https://www.youtube.com/watch?v=nKIu9yen5nc
Source: https://www.youtube.com/watch?v=nKIu9yen5nc
Learning to code is a process. Here is a goo model explaining different stages. Introduce the terms “algorithm” and “debug” to the group. Explain that an algorithm is like a procedure and “debugging” is like proofreading written work to find mistakes.
So, what is coding?
A ordered set of instructions to solve a problem or complete a task.
Coding is the process of using a language to write an algorithm to solve a problem.
Source: https://interactivedesign2012.files.wordpress.com/2012/03/toast-flowchart-copy.png
Coding Without Technology
Credits:
Photos by Kristen Wideen (left) & Brian Aspinall (right).
Coding FriendBot
Move (NUMBER)
Turn (LEFT / RIGHT)
Hop
Turn (+ -)(NUMBER)
Move (NUMBER_UNITS)
k-3 4-6 7+
ROTATE (+ -)(NUMBER)
TRANSLATE (NUMBER_UNITS)
Hop (Height) Hop (Height_UNITS)
This is an example of pseudocode. Teachers should use “math” terms appropriate of the age of their students and curriculum documents.
Have participants generate other code blocks.
Coding FriendBot
Move (1) Turn (RIGHT)Move (1) Move (1)
Move (1)
Move (1)
Move (1)
Turn (LEFT) Move (1) Move (1)
Demonstrate the notion of linking blog code together to create a chain. This set of instructions is called an algorithm.
Move (1) Turn (90)Move (1) Move (1)
Move (1)
Move (1)
Move (1)
Turn (-90) Move (1) Move (1)
Coding FriendBot
Loop (3) Move (1)
Loop (3)
Move (1)
Loop (2) Move (1)
Depending on the age of students, block code can be extended to differentiate or scaffold based on the needs of individual students.
Move (num)
Turn (num)
Coding FriendBot
Loop (num)
1 cm
1 cm
Give participants 3 minutes to solve this puzzle.
Move (num)
Turn (num)
Coding FriendBot
Loop (num)
1 cm
1 cmCan you unlock the treasure chest?
You cannot step on black squares.
Take (item)
Open
Give participants 3 minutes to solve this puzzle.
What curriculum connections can you make?
Generate a list of curriculum connections. Eg: LA — Write the narrative story of your FriendBot.
Learn to Code
Coding: Big Ideas in Geometry• Grade 1: describing location using positional language • Grade 2: describing relative locations and paths of motion • Grade 3: describing movement on a grid map; recognizing transformations • Grade 4: describing location using a grid system; performing and describing
reflections • Grade 5: locating objects using the cardinal directions; performing and
describing translations • Grade 6: performing and describing rotations; plotting points in the first
quadrant • Grade 7: performing and describing dilatations; tiling a plane; plotting points in
all four quadrants • Grade 8: plotting the image of a point on the coordinate plane after applying a
transformation
Demonstrate that coding is a great way to teach Geometry.
Learn to Code
Mathematical Process
• Problem Solving: Develop and Apply Problem Solving Strategies • Reasoning and Proving: Develop and Apply Reasoning Skills • Computational Strategies: Use Electronic Tools to Solve Problems • Connecting: Make Connections Among Math Concepts & Procedures • Representing: Represent Math Ideas • Communication: Communicate Mathematical Thinking Orally, Visually, and in
Writing
Demonstrate the Math Process. Be sure to highlight the fact that Computational Strategies already exists in the curriculum document.
Learn to Code
Linking to Literacy
What are “factors” of a number?
Suggest writing topics for students. Discuss the notion of teaching the skill of researching.
Learn to Code
Linking to Literacy
How do you find the factors of a number?
Learn to Code
Write a “pseudocode procedure:
1) Determine a number, say Num. 2) Determine a variable, say X 3) Set X equal to 1. 4) Divide Num by X and look for a remainder. 5) If there is no remainder, X is a factor. 6) Repeat steps 4 & 5 while incrementing X by 1 each time. 7) Stop when X equals Num.
Linking to Literacy
https://scratch.mit.edu/projects/28080104/
After writing a pseudocode algorithm, substitute line for line with block code found in Scratch to generate a working “app”- Show the live demonstration.
Learn to Code
Write a procedure about how to…
•Tie your shoes •Do a jumping jack •Create a resume •Phone a friend •Download music •Find a video on the internet
Linking to Literacy
Extensions
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting Integers
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
4 1 3 7 2 3
Discuss the notion of manually sorting data prior to calculating mean, median & mode.
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 4 3 7 2 3
https://en.wikipedia.org/wiki/Sorting_algorithm
This activities uses the computer algorithm known as “Bubble Sort” to sort data manually. The goal is to allow students an opportunity to think logically systematically and computationally prior to calculating mean, median and mode.
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 4 3 7 2 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 7 2 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 7 2 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 7 2 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 7 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 7 3
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 3 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 3 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 3 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 4 2 3 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 2 4 3 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 2 3 4 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 2 3 4 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 2 3 4 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 3 2 3 4 7
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Calculating….mean, median, mode
The Human Bubble Sort
Sorting
@mraspinall• www.brianaspinall.com
https://en.wikipedia.org/wiki/Sorting_algorithm
4 1 3 7 2 3
1 2 3 3 4 7 Median? Mode?
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Watch: Human Bubble Sort
https://www.youtube.com/watch?v=lyZQPjUT5B4
Have a conversation with class - how long is this dance video? How fast do computers sort data? Is there a more efficient sorting algorithm?
https://en.wikipedia.org/wiki/Sorting_algorithm
https://www.youtube.com/watch?v=lyZQPjUT5B4
https://en.wikipedia.org/wiki/Sorting_algorithm
Learn to Code
Using Sphero to Code Geometry
What Is Sphero?Sphero is the app-enabled ball that does it all.
A Brave ExplorerControl Sphero, turn your living room into a video game with augmented reality apps, or upgrade family game night with multiplayer games. Sphero is also pet-proof, swims and is ready to roll wherever you go.
A Teachable RobotSphero is even making moves in the classroom with crash courses in programming using MacroLab and orbBasic. Check out SPRK at sphe.ro/education.
A New Way to PlayChoose from over 30 apps and launch a whole new world of gameplay. The result is limitless possibilities for new types of connected play that meld the virtual and real worlds for a fun gaming experience.
https://brandfolder.com/sphero2 https://www.youtube.com/watch?v=43tctP24XmoVideo:
Coding robots.
Show the corresponding YouTube video.
Using Sphero
Make the connection with FriendBot. Coding a Sphero ball across a grid on the floor.
https://www.youtube.com/watch?v=-pjCphAzVE0
Video: https://www.youtube.com/watch?v=-pjCphAzVE0
Credits:Brian Aspinall Discuss the observations made in the video with regards to the “process” of coding.
https://www.youtube.com/watch?v=LtUbyTxltUc
Video: https://www.youtube.com/watch?v=LtUbyTxltUc
Discuss the math talk observed in the video.
Credits:Brian Aspinall
https://www.youtube.com/watch?v=bq-jx5LUKjE
Video: https://www.youtube.com/watch?v=bq-jx5LUKjE
Discuss the level of engagement in this task.
Credits:Brian Aspinall
Make reference to the visible Geometry in the block code on the right.
Credits:Brian Aspinall
Learn to Code
CRITICAL THINKING allows the individual to manage information. Information presented in a multitude of forms from a variety of media. Information that must be filtered and analyzed, authenticated and processed, and eventually must be synthesized in a form that will be useful to the individual. CRITICAL THINKING is PROBLEM SOLVING, the ability to take information and put it to use to create solutions.
COMMUNICATION provides the means by which the individual can present information. Information presented in a multitude of means through a variety of media. COMMUNICATION must be CLEAR and CONCISE, effective and engaging, and eventually be presented in a way that is meaningful to the individual and the audience.
COLLABORATION engages the individual in the world they share through association. Association, that is created to benefit an COMMUNITY and as a means to conduct processes of the world we share. COLLABORATION that includes partnership and teamwork, leadership and assistance, and alliance that serves to benefit the whole.
6 C’s of Education
@mraspinall• www.brianaspinall.com
https://infogr.am/the-6-cs-of-education-for-the-21st-century
Discuss the 6C’s and work of Michael Fullan.
Learn to Code
CULTURE & COMMUNITY encourages the individual to appreciate where we have come from, who we are now and how we can move into the future. CULTURE associates the individual to all that surrounds them: art, drama, dance poetry, history, science, religion, written and unwritten language, technology and the individual themselves.
CREATIVITY provides the avenue for expression. The structure means nothing without function. Therefore, the individual must be capable of CREATING something with the knowledge that they have worked so hard to obtain. It is in CREATING that the individual gains purpose.
CONNECTIVITY places the individual in touch with their world. In today’s existence that is increasingly through the technology that is rapidly changing the way they view their world. Understanding that connections are personal no matter what the means of contact and that humanity must remain in light of how the technology may change for each individual.
6 C’s of Education
@mraspinall• www.brianaspinall.com
https://infogr.am/the-6-cs-of-education-for-the-21st-century
Discuss the 6C’s and work of Michael Fullan.
Resource: http://www.michaelfullan.ca/media/13599974110.pdf
Learn to Code
Coding to Create Content (Using Geometry)
Now that participants understand block code and played with simple Geometry scripts, explain that we will now create content using those mathematical principles.
French Class
This project was created by a grade 8 student. His task was to demonstrate understanding of French directions. He choose to code a remake of “Zelda” and used Geometry to move the character around the screen.
Suggest this final product is only the “tip of the iceberg” as the process to create it was incredibly challenging and required time and effort.
Make connections to the Geometry in the code. Explain how a negative X or Y moves the character backwards and down.
Refer to the Cartesian Plane.
Homemade Zelda
https://scratch.mit.edu/projects/64271626/
Show live demo.
Learn to Code
Law of Large Numbers (Probability)
Try It >
Show live demo of this probability simulator. Explain that the task was to explore probability and that principles of geometry, algebra (variables) and number sense were used to create the product.
This method “spirals” math - it diffuses across strands.
Learn to Code
Coding Fractal Art Using Geometry
https://www.youtube.com/watch?v=P72tO-PdAdg
Using repeating patterns, variables (algebra), and movement (geometry) to create digital art.
The final shape is a large pentagon made up of smaller pentagons.
Video: https://www.youtube.com/watch?v=P72tO-PdAdg
Learn to Code
Coding Choose Your Own Adventure Stories
Try it >
Introduce twine as a place to write Choose Your Adventure Stories.
Demonstrate how coding can be used to “spruce” up the appearance of the story.
Learn to Code
Hour of Code: Minecraft Edition
CodeGeneration.ca
Coding Flappy Bird
Try it!
Let participants try for themselves. Each task is more difficult than the previous.
Learn to Code
Create With TouchDevelop Try It >
Introduce TouchDevelop and show the website.
Learn to Code
Create With Scratch Try It >
Introduce Scratch and show the website. Mention that it is “flash” and won’t run on iOS.
Learn to Code
Create With Apps
Scratch Jr. Grades: K-3
iOS & Android
Tynker Grades: K-8 iOS & Online
Hopscotch Grades: 4-8
iOS
Vizwik Grades: 9+
Online
Introduce these apps as tools to create content with coding. Challenge participates to code a narrative story in the app of their liking using principles of geometry (translations, rotations, reflections).
Learn to Code
Design Challenge
At your table, create a lesson plan that uses coding to demonstrate learning of a topic.
What is the Learning Goal?
How will you assess it?
How will it include coding?