Saturday, February 18, 2017

Coding In Kindergarten? Yes! - Part 2

Here are some notes and observations on my experience.
Each day I met with a group of six students (in partners), using 3 Beebots, at the main carpet area. The students faced me, and I set the mats to one side.
I showed them the command buttons on the Beebot: forward, left turn, right turn, backwards, stop, and "x" for cancel the previous program (like a reset). Then they explored using the BeeBots.
On the carpet, one partner told the other partner to program the Beebot, eg. forward, forward, right turn. Then they switched. Some students were quite shy and it took a while for them to verbalize to their partner. But all were successful. This time also allowed the students to play with the BeeBots on their own, and to share with their partner after each turn. Then they all returned to face me.
I placed the Treasure Island map in front of me so they could see it, and asked them to name all the different things they could see. They did really well with all this vocabulary and identified: ladder, bridge, octopus, volcano, sharks, secret passage. I prompted them to identify the groups of trees and the river, and anything else they did not name. Then I explained that the BeeBot would be placed in the corner and one partner would challenge the other to "go to x location." Then they would switch.
With the clear grid, I used a nice stone from the classroom collection. One student placed the stone in a square, and the other would get the BeeBot to move from a location at the edge of the mat to touch the stone. 
Once the two groups were dispersed, I introduced the streetscape, as it took a bit longer to identify all the locations. Some are sort of urban, and not readily identifiable to our students. One or two students could read the names on the storefronts. Same routine, with one partner asking the other to get the BeeBot to go to a specific location.
Timing: approximately ten minutes to introduce, ten minutes at their first map, and then ten minutes at a second map. They took their own BeeBots and moved to a new map.
Instructions I found myself using:
What is the path it would take, can you point to the path?
How many steps?
Right turn or left turn?
Let's count out the steps before pressing the buttons.
With the streetscape, I told them to have the BeeBot enter the store, not just drive down the street to that location.
Strategies I observed:
One-to-one tapping of squares and buttons, with one hand tapping the squares forming the path, and the other simultaneously tapping the BeeBot buttons.
Lots of counting out loud.
Lots of verbal command lists: eg. forward, forward, forward, turn, forward.
Looking at the physical arrow buttons to clarify whether to turn left or right.
With the clear mat and stone, some groups started making roundabout paths, not just the most direct path; this helped them input longer series of commands.
Students working together to identify the pattern, and to say it out loud while the BeeBot was being programmed, or while it was running.
Next steps:
Math such as adding up steps to a total: 3 forward plus 1 turn plus 1 forward equals 5 steps.
Going off the maps and estimating how many forward steps might be needed to get from one classroom location to another.
Phrasing the street map in a different way describing store functions: move BeeBot to a store where it could get a haircut, where it could buy gas, where it could mail a letter, etc.
For three students, next steps would involve adding a turn, as they were successful only with defining short forward paths.
In terms of the whole class, staff and students alike are confident enough to incorporate BeeBots as one of their centres on a daily basis.

Coding In Kindergarten? Yes! - Part 1

I had a wonderful invitation this week – to join a kindergarten class for four days, to introduce coding using BeeBots. BeeBots are cute little yellow-and-black-striped robots. They have four directional arrows and a Go button, and can store up to 40 commands in sequence. There are also three mats with illustrations over a grid (treasure island, clear grid and streetscape). On the grids, one press of a BeeBot button moves the robot one square.
I was delighted to see rich evidence of computational thinking as the children interacted with the BeeBots. Here are the elements of computational thinking:
Decomposition – breaking down a problem or system into smaller more manageable parts
Pattern recognition – looking for similarities among and within problems
Abstraction - focusing on important information and ignoring irrelevant info
Algorithms - developing step by step solutions to problems that can be communicated to others.
Working with the BeeBots elicited all of these, but especially decomposition and algorithms.
Looking at our goals relating to 21st century or global competencies, I also saw many instances of growth mindset, perseverance, team work and other aspects of collaboration.
Mathematical Processes
Observing the students involved in the activities, I saw a close correlation between their actions and the mathematical process described in the Kindergarten Program document.
Problem solving: Children develop and apply problem-solving strategies, and persevere when solving problems and conducting mathematical investigations. Using the BeeBots and successfully coding a path evoked all of these skills.
Reasoning and proving: Children develop reasoning skills (e.g., pattern recognition, classification) to create, investigate, and test possibilities and conjectures (e.g., through talk and through models provided by the teacher and sometimes by other children). Testing the code that was inputted and seeing the results, as the BeeBot moved across the mat, drew on these skills.
Reflecting: Children reflect on and monitor their thinking to help clarify their understanding and, if necessary, revise their thinking, as they conduct an investigation or solve a problem. If the BeeBot did not move as the students imagined, they had to re-think their code together and input a new sequence.
Representing: Children create representations of mathematical ideas (e.g., use concrete materials; physical actions, such as hopping or clapping; pictures; numbers; diagrams; dramatization; invented symbols), make connections among them, and apply them to solve problems. The BeeBots led the students to make connections between the number and direction of button-presses (code) and the grid.
Communicating: Children communicate mathematical thinking orally and visually, using everyday language, an emerging mathematical vocabulary, and a variety of representations (e.g., constructions, pictures.) Verbalizing the consecutive numbers in a sequence along with use of directional language such as forward or turn occurred constantly during this activity. Collaborating on a successful algorithm also used these skills.

Tuesday, February 14, 2017

The Why and Who of Coding

Recently, Apple representatives visited to present their Everyone Can Code workshop introducing Swift Playgrounds. I was pretty sure the teachers would enjoy themselves and either learn the basics of coding, or expand their horizons with this new, outstanding learning tool.
Having already attended one of these Apple Workshops I was much more interested in what I knew would happen in the first part of the event: a conversation and activities to provoke interest and discussion about two broad topics, the Why and Who of coding. What would this look and sound like in NNDSB?
In our board, there are definitely pockets of teacher expertise, and growing interest in coding, but we have never really had these discussions before in a formal setting.
We have strong coding work going on in at least two high schools, we had teachers from ten schools involved with Learning Connections last year, and several more with Coding Quest this year. And numerous elementary schools participate in First Lego League. Plus individual teachers are moving forward on their own.
But this was a different occasion, a chance for reflection. Each session contained a mix of principals, coordinators, secondary and elementary teachers - another first.
Here are some notes and insights from these remarkable NNDSB educators!

Why Code?
I want to make an app
I am back in a regular classroom, and want to see how to move forward with new ideas and strategies
My son is a technical director at Warner Brothers, and was supported by an enthusiastic teacher in Mattawa; I am aware of the global and Canadian shortage of technology employees
On the topic of equity for women, my son is in computer engineering at Carlton; I recently asked him how many women were in his program, and he replied less than 10 per cent
Coding is an art, clean design, ability to add personal details, also a universal language
How scary is coding? Get a comfort level.
Connections to math
Teachers learn too: at our coding club, kids move past us, it is constant learning for me too

Who codes and why?
Empowers everyone, age, gender, everything, accessible
Many opportunities
Crosses over many jobs, touches every job, a connection
Making connections across the curriculum, to math language
In the US some states now allow a swap of language credit with a coding credit, they are approaching it as a literacy
Advancing our society in general, health, education,
Self esteem, passion
Accomplishment, leading edge, helping others
Taking things that are deep within themselves, meaningful for them, we are making our teaching better
Accessibility: kids don’t have this opportunity until they walk into our buildings
Literal accessibility via iOS AT tools
Coding is a vehicle for all these things, democratization, so everyone can have that opportunity
Solve a problem
Makes life easier
For fun
Empowering, the person who creates it, and those who benefit – the creators and the users
Pride in what they have done and sharing it
Create change
Part of the future, it’s not going away
To be able to participate in the world in a better way
To serve others through those tools: eg. “Be My Eyes,” a crowd source tool where people can volunteer to help someone who is visually impaired

And as a bonus - Math Curriculum Connections
Computational thinking, as follows:
Decomposition – breaking down problem or system into smaller more manageable parts
Pattern recognition – looking for similarities among and within problems
Abstraction - focusing on important information and ignoring irrelevant info
Algorithms - developing step by stop solutions to problems that can be communicated to others.
In Swift Playgrounds, each animation is a “representation” of the code that appears on the left. Which is also a representation… of mathematical thinking.