Saturday, 18 April 2015

How Coding fits into the Curriculum

A little over a year ago, I had never coded anything before. I knew that coding ran computers, and programs, but hadn't ever tried to play with it before. I was starting to give my students opportunities in class to choose what they want to learn about, and I was hoping coding would come up. It was a goal of several students to code a game before the year was over in my Grade 3/4 class. I found Code.org online, and we did the Hour of Code that year. We really enjoyed the chance to "remix" Flappy Bird and make it into our own games. You can try it here: http://studio.code.org/flappy/1

Gr. 3/4 student explains how he modded Flappy Bird on Code.org from Scott McKenzie on Vimeo.
This year I started earlier with coding and introduced my students to coding as a way to teach them about angles in 2D shapes. We used Hopscotch on the iPads and created all sorts of shapes. I started the class off by showing them how to draw a line, make a 90 degree turn, and draw a second line. After that I turned them loose to see what 2D shapes they could create. Here are some of the designs they came up with. This year my students understand angles much better than they have in previous years.

If you don't have access to iPads, then I recommend snapcoding.com. Here is a perimeter question created in snapcoding:


Then I share the code I used:
Many Math Expectations can be covered, and connected to coding. Measurement, Geometry and Patterning are the easiest to link:


Measurement:
Students estimate, measure, and describe length when deciding how long/far a “Sprite” should travel for a given purpose.


Geometry and Spatial Sense:
Students compose and decompose common two-dimensional shapes using a “Sprite” and a “Pen Down” code to draw various 2D shapes.
Students describe the relative locations of objects using positional language in order to accurately complete a task when coding.


Patterning:
Students  identify, describe, extend, and create repeating patterns when using a “Repeat” code to continue a given series of actions to meet a goal.

I wanted to do more, and keep growing with my students. I had seen Scratch a few times and it seemed a bit confusing. There seemed to be too many choices, and I didn't understand all the possibilities with it (I still don't), but I slowly dipped my toes in the water and tried a few things. What really opened my eyes to what can be done was when I learned enough to get my students started working with Scratch. Once they started playing with it, I played along with them too. We learned how to do lots of things, and new ideas pop up every week.

As always, my students impress me so much. I was teaching a lesson on how to write persuasively, and students were using several options to create an advertisement. One of my students asked if she could make her advertisement in Scratch. I said, "Why not?" She made her ad in the same time frame as the other students, and it was funny and engaging.

Coding apps like Scratch Jr., Hopscotch, Scratch (and many others) allow for unlimited opportunities to create narratives, poems, persuasive writing pieces, Science and Social Studies reports, ect. 
Here are some links to Language Expectations:

Oral Communication


As the “Pilot” in the collaborative coding roles, a student listens in order to understand and respond appropriately in a variety of problem-solving situations to successfully write efficient code to complete a desired action.


As the “Navigator” in the collaborative coding roles, a student uses speaking skills and strategies appropriately to communicate with different partners, in a variety of coding activities.


After completing an algorithm, students reflect on and identify their strengths as listeners and speakers, areas for improvement, and the strategies they found most helpful in their roles as both “Pilot” and “Navigator”.


Reading:
Students read and demonstrate an understanding of informational text, using a range of strategies to construct meaning, in order to successfully complete a coding challenge.


Students use knowledge of specific coding language and cueing systems to read fluently.


Students reflect on and identify their strengths as readers, areas for improvement, and the
strategies they found most helpful before, during, and after reading, using the immediate feedback provided by running their coding algorithm.


Writing:
Students generate, gather, and organize ideas and information to write to explain clearly the steps to take to complete a coding challenge, for an audience of their peers.


Students use editing, proofreading, and publishing skills and strategies, and knowledge of language conventions, to correct errors, refine expression, and present their work effectively.


Students reflect on and identify their strengths as writers, areas for improvement, and the strategies they found most helpful at different stages in the writing process, using feedback from the audience they share their writing with.


Media Literacy:
Students create a variety of media using various “Stages” and “Sprites” for different purposes and audiences, using appropriate forms, conventions, and techniques.


Students reflect on and identify their strengths as media interpreters and creators, areas for
improvement, and the strategies they found most helpful in understanding and creating media with coding algorithms.

In Scratch you choose your stage (Setting), your sprites (Characters), create events to get the story started (Rising Action), but the true power of coding is that it can do so much more. As educators I think we are always asking ourselves how can we do more technology. How can we allow students to create, build and author things that would never be possible without this technology?

My students started by remixing games already on Scratch. They would play the game and then change things in the game. This was their insertion point into coding. They just started doing it this year, so this is scaffolded learning at its best. They change lines of code, and get immediate feedback from the game. I wanted them to do more than that, I wanted them to build their own games, but also to tell a story.

That was when I had my "Aha!" moment, I always wondered what happened to the "Choose Your Own Adventure" stories I had enjoyed as a child, and I realized they have morphed into the Role-Playing Games that so many people enjoy today. If my students write a Role-Playing Game together, then I would say that they have elevated their story writing skills to a new level.

Coding scripts make sense when we need them to do something. It would be hard to explain how an "If - Then - Else" statement works, but if they want to write an interactive story then they need this code. In the story the main character sees a rock on the path. The character has to decide if they will pick the rock, and keep it for good luck, or pass on by. When each of these paths are followed by the character, a different action follows. "If" character touches rock - "then" it disappears (into his pocket). "Else"If the character walks on by the rock, and the rock follows him by moving along as well.

By making the coding activities authentic, the students will remember them better. As we write our stories we will want to do something, and as we problem solve to make it possible, we will learn more about coding. So how does coding fit into the curriculum? In a million ways! The more you try it, the more you will see ways to connect it in meaningful ways.
Here is one last thing that will make students very excited about writing headlines:
Go to a news website:
Then right-click on the page and select "Inspect Element". This will show the HTML code behind the scenes. Now find the heading you would like to change. Right click it, and select "Edit HTML". Students have a blast with this! It doesn't permenently change the website, so it is a harmless way to show students how web pages are built.
Happy coding!

Saturday, 11 April 2015

Fostering Critical and Creative Thinking Skills with Technology

A kindergarten student said something to me the other week that really hit home for me. He told me he wanted to be in my class when he was older. I smiled and asked him if it’s because I'm a funny teacher (all the kindergarten students think I'm very funny).


"No, I want to be in your class because you're the technology teacher."


I smiled at him, but this statement bothered me. It bothered me because I believe technology is an important part of my teaching practice, but technology is just a tool. It is a means to an end. An interesting, fun, and engaging means to an end, but still a means to an end.


Technology is a tool that allows me to foster critical and creative thinking skills in my students. It certainly isn't the only way to develop the skills, but it allows for a lot of interesting opportunities, and ways to engage both skill sets. While critical thinking has been a key component in my class for several years, I was beginning to see that creative thinking skills were equally important as well.


In the past couple of years Google 20% Time, or Genius Hour, started to become an important concept for me.I saw the value in student choice, and wanted to give more opportunities to my students to have control over their own learning. When students are given choice in what they learn, and how they share it, their creativity becomes a bigger part of the process.


Just to clarify what I am talking about, here is how I see critical, and creative thinking:


Critical Thinking
In order to have students think critically about something, they need to be challenged with tasks that have more than one choice. Instead of telling them what is right, or correct they must make their own decisions. We help them to move away from bias, and to be more objective in their decision making process by applying agreed upon criteria to the process.


Creative Thinking
In order for students to have the opportunity to think creatively we have to give them more freedom. Time to play, and tinker with new concepts and tools is essential. As they figure things out they share with each other, collectively the class figures out new ways to build, design, and modify existing ideas and concepts. This "play time" allows them to properly understand the tool, or concept they are learning about.


As I started to give my students more opportunities to choose what they were learning, or how they were expressing it, I began to realize that creative thinking skills were a whole separate spectrum that wasn't being addressed by the critical thinking strategies I had formerly learned. As I watch students take ideas, or tools and flip them from their traditional use and create something new I realized that both critical and creative thinking skills were crucial parts of the learning process.


What happened next was that the creativity fostered by the hour a day where students were allowed to make their own choices in how, and what they learned bled over into the rest of the day. No longer was there one way to show their learning. 

In a recent lesson we were creating an advertisement to develop our persuasive writing skills, and a student approached me and checked to see if she could code the advertisement in Scratch. My students had recently started learning to code in Scratch and she had a great idea of how to use the application to share her idea. Her creative thinking skills got her started on the project, but in order to be successful her critical thinking skills became a key part of the task as well.


So many students are held back from showing their intelligence by the very fact that they struggle with reading or writing skills. These students may have excellent creative and critical thinking skills, but are unable to show it in the traditional sense in school. Minecraft allows students to be both critical and creative thinkers and removes the barrier of language. I'm now starting to see Minecraft as a precursor to coding. Students are building and creating things from blocks similar to blocks of code, that they then put together to create a complex world.


Quantitative v.s. Qualitative
No matter what digital tool they use, the end goal is to have students become quality thinkers. Traditionally, we have taught with the quantitative model, where there's a great quantity of information we must somehow force into the minds of our students before they graduate our class. More recently, I'm beginning to see a qualitative model as much more relevant. Rather than covered many topics, we're covering less topics but in deeper capacity. Rather than a bunch of facts, the learning becomes an experience, where they find out about something exciting, and using their creativity, and their ability with technology twisting it into something new, something that is their own.


This process is still clunky, it is messy and I'm still feeling my way through it. But in understanding the creative thinking skills, and critical thinking skills that are needed I begin to understand how to value the learning my students are doing. The next step for me now, is how do we measure these skills.


If we want students to become the innovators of tomorrow, the tinkers and makers of a brave, new world. We have to allow them the opportunity to learn as tinkers and makers, to fail regularly and learn from their mistakes. To use that failure to eventually become successful.