Last year I posted an article called Turn the Hour of Code into the Year of Learning. This year, I wanted to share a few ideas about how you might do that. After checking out some hour of code activities with your students (this year, officially, December 4 – 10), take a look at the ideas below – they might help extend the hour of code introductory activity into a long term, project-based learning adventure for you and your students.
1. Learn to code by starting your own coding project
Many teachers have told me they have thought about ‘doing coding’ with their students but they are hesitant because they don’t know how to code. One strategy that has worked with those brand new to coding is this: commit to three 45-minute coding sessions on your own time, at home, using the Scratch coding environment. Like any user, you create your own account on Scratch so that your projects can be saved and shared (your students should create their own accounts, too, for the same reasons). Then, spend those three, 45-minute sessions making something in Scratch that is enjoyable and interesting to you… hopefully you will choose to make something you are passionate about like an art project, or an animation, or a game, or a digital story.
The idea here is that when it comes time for you to introduce the Scratch environment to your students, you can share with them (authentically) the project that you are working on and excited about. Ideally, you can show them how you coded it and even continue to work on it in front of them, thinking out loud as you go. Don’t worry about designing lessons about each coloured coding block or giving them coding assignments to complete; that’s not the ideal approach. A proven and effective approach is to tell them that there are four “rules” for working on their Scratch projects:
- make something that you are passionate about
- think of your Scratch work as a project that might take days or weeks to complete
- learn by playing, tinkering and experimenting (think growth mindset)
- work with each other, your peers, to discuss ideas and share new skills
This is the 4P approach to creative learning outlined by Mitch Resnick in his book, Lifelong Kindergarten and used by his Lifelong Kindergarten group at MIT. (In fact, you can listen to Mitch discuss each topic in these YouTube videos: creative learning, projects, passion, peers, play, creative society). Students will want to work longer and harder on collaborative projects they are passionate about. I’ve seen exactly that happen with countless students, including this one.
In early November of this year, when I outlined these “rules” to a grade five class for their Genius Hour projects, one boy said with a little smile, “those aren’t really rules… they’re sort of fun rules.” He was right; they aren’t rules. They are the foundation of a different learning paradigm and for building a creative, collaborative learning culture.
2. Think of coding as a literacy
There is a well known code.org video called What Most Schools Don’t Teach. My favourite response in the video is from Mark Zuckerberg (at 47 seconds). I think his response best characterizes the idea of coding as a literacy. Thinking about coding as a literacy is the essential perspective that educators need, in my view, in order to move forward with helping students to use coding as a tool to express, create and explore ideas and concepts.
Most teachers would agree that reading, writing, speaking and listening are the working components of being literate; competency in each of these components is crucial to accessing and exploring new ideas, expressing one’s ideas, and learning, making, connecting, thinking. Computer programming is another literacy in which people can express ideas and make things by thinking mathematically and computationally.
To me, the code.org video sometimes seems to be saying that every kid should be learning how to code because the world will need more computer programmers in the future or that that skill will be essential in future jobs. But I think its just saying that learning to code at some level of competence will be beneficial to everyone, no matter what you do. Every kid in school won’t become a professional journalist or novelist even though they are learning how to read and write just like every kid who takes piano lessons does not become a concert pianist or piano teacher. Reading words, reading music and reading code are all not only useful skills to develop but learning each also helps you to think, express and understand.
Coding in education is not just about building a skill set. Thinking is such as abstract concept. If you are a teacher, you probably help students to “make thinking visible” in many different ways. To me, that’s a literacy. I think that anything kids create to make their thinking visible, that process and that product, qualifies as a media text. Thinking is more than just ideas… thinking can be feelings, dreams, fears, inventions, problems and solutions. Kids can make music, write stories, code games, build machines, and design new ways to solve problems. Coding, in this perspective, provides another avenue for creation and expression.
3. Plan a design-thinking, project-based learning activity
Considering how design-thinking can help students learn is a popular endeavour among teachers right now. There are many great books recently published such as Launch and Invent to Learn. I think of design-thinking as a model for thinking both creatively and critically. Coming up with new ideas to solve a problem is important. But, design thinking also requires reflection and critical thought: How are our solutions solving the problem? Should we continue in that direction? Do we need a rethink? Do we need more information? Do we need to learn new things? Do we need to talk to other people about it? And so on…
I recently shared a long-term project in which I was working with another teacher to create a project-based learning experience for a Grade 4/5 class, rooted in design-thinking. Full details about the project are outlined in this article. Essentially, my teaching partner and I were interested in empowering students to apply their coding skills to create a computer game (using Scratch) for younger students, one that would make learning about fraction concepts fun and easy for them. We intentionally did not start with a design process flowchart. Through ongoing reflection, and a culminating reflection activity, we wanted them to build their own design-thinking process from their shared experience of designing the computer game.
One of the most important things to point out is that our primary focus/goal was not for kids to learn to code. That happened for sure but it wasn’t the main focus. More important was:
- facilitating the project-based learning environment
- helping them to share and discuss their ongoing work and learning
- holding expectations that they were regularly reflective
- establishing structures for them to be reflective and collaborate
- supporting their creative and critical thinking efforts
- maintaining an environment where playing, tinkering, experimenting, and sharing were not only acceptable but desirable
Coding in Scratch formed the context in which all of this took place. We thought of coding more like thinking made concrete and as a medium for expression rather than as a skill per se that simply needed to be learned.
4. Use programmable robots or controller boards
It wasn’t that long ago that, outside of LEGO Mindstorms (launched in 1998) or LEGO WeDo (launched in 2008), there wasn’t much else commercially available to children, teachers, parents and schools. These were among the first buildable and programmable robots. As the maker movement took root in schools, there has been an explosion of buildable / programmable robots available (e.g., Sphero, Dash & Dot, mBot, Ozobot). There are online stores that carry hundreds of robots and sites that help you choose the right robot for your / your students’ needs.
There are also programmable, or at least tinkerable, controller boards (e.g., Raspberry Pi, BBC micro:bit, Arduino, Makey Makey) that are designed specifically for students to make and build in educational contexts. Again, lots of online stores and sites that help you choose what you need.
Designing, coding and building computer programs that work only on a screen might be all you need. But, you can expand the possibilities and choice for students by exploring and arranging for access to robots and controller boards. In the beginning, programmable robots in education (viz. turtles from Grey Walter and Seymour Papert) where always real, physical, electromechanical robots. Providing access to real programmable robots expands the possibilities for designing, playing, making, thinking and sharing significantly. It also tends to make more sense to younger children who often prefer a concrete object to interact with rather than a virtual (screen-based) one.
5. Offer challenges but maintain student voice & choice
I have always liked the notion of children learning skills and fluency in any domain from authentic immersion. Papert’s idea of a mathland, where children learn to become mathematically literate, has always resonated with me. I think computers allow for diversity and the ability to individualize the way in which children want to explore, make and share their ideas about mathematics, based on their passions.
I think choice and passion are the priority for learning. Helping students to find what they love and then supporting their projects in that domain is time well spent. Sometimes, though, you can add challenges to the list of choices for students.
I continue to add to a Scratch studio a collection of ‘mathland challenges’ for students to try if they wish. The idea is they can ‘remix’ the Scratch code in a given project to make changes and explore and build concepts. These challenges are often deliberately connected to overall expectations outlined in the Ontario Mathematics curriculum. I did not create these challenges as assignments for students or as puzzles. They are meant to be examples of projects students could choose to explore ideas and concepts.