Key benefits of learning to code that are sometimes missed in traditional education
There are benefits of learning to code that are sometimes missed in traditional education:
- Authentic learning
- Growth mindset
What is authentic learning?
One of my favourite websites is Authentic Learning. It is a rich resource of, you guessed it right, authentic learning. So what is authentic learning? The proponent of the term Steve Revington defines authentic learning:
- Real life learning. It is a style of learning that encourages students to create a tangible, useful product to be shared with their world.
- Learning that engages all the senses allowing students to create a meaningful, useful, shared outcome. They are real life tasks, or simulated tasks that provide the learner with opportunities to connect directly with the real world.
- Providing a learner with support to achieve a tangible, useful product worth sharing with their community and their world, instead of vicariously discussing topics and regurgitating information in a traditional industrial age modality.
Learning to code allows students to create projects that are meaningful to them: games, animations, storytelling, digital art, problem solving, and other personalised projects. Coding projects are authentic projects because students get to build a real computer game or animated movie. They do not research about the history of computer game development or how others make their computer games. Students actually build something of their own. They can show their family and friends what they built and can invite them to play their game or watch their animated movie.
What is growth mindset and how do we learn it from learning to code?
Growth mindset is a personal belief that abilities and intelligence can be developed from dedication and hard work, brains and talent are just a starting point. The mindset focuses on improvement and not this starting point. Students who learn this mindset show greater motivation at school and better grades. (A great TED talk on growth mindset by Carol Dweck.)
We develop a growth mindset from learning to code because we learn from our mistakes. This is a common scenario I experience from students new to coding. The student will write up a piece of code, then before they run and test the code themselves they ask me, “Is this correct?” In which case I respond, “I’m not sure. Shall we test the code and find out?” This typical scenario highlights that in traditional classroom education, we are training students to be afraid of making a mistake. They would prefer to ask a teacher or adult whether their work is correct or not rather than just seeing for themselves. There is no harm is running code that does not behave as you expect it to.
Just like with learning to code, problem solving, scientific enquiry or entrepreneurship, we learn from our mistakes. The only failure is when we fail to reflect and miss out on the lesson to be learned.
When we learn to code we learn that:
- Mistakes are key to learning, we learn from trial and error.
- No one ever writes code perfectly the first time.
- Even professional programmers continue to learn in this manner.
Learning to code is a valuable skill, but what’s more important are the transferable skills that lie underneath coding. For primary school students we learn our fundamentals in Scratch by creating our own computer games, animations and digital art. In the process we learn principles in: computational thinking,algorithmic thinking, logic, maths, problem solving, iterative development. Once we have built a strong foundation in Scratch we also learn to program mBot – the educational robot and create digital devices using MaKey MaKey.
mBot is the educational robot for beginners. We use MakeBlock to program mBot. MakeBlock’s interface looks exactly like Scratch because it was based off it. We can control mBot’s movements with a computer keyboard, remote control, or by uploading a program that we designed via Arduino. mBots are a great tool to create an authentic learning experience. We can program mBots to sense its environment and navigate itself through an obstacle course, follow a line on a piece of paper, and to detect and avoid walls and edges of table top. This requires a trial and error way of solving a real life tangible problem i.e. the obstacle course, which is a prerequisite to experience authentic learning.
An engaging application of mBot in a classroom is to create an obstacle course for the mBot to navigate its way through e.g. with cardboard (cereal) boxes on the floor. The project brief for the students is to develop their own program for the mBot to be able to navigate its way through the obstacle course from start to finish. This activity requires trial and error, learning from mistakes and solving a real physical problem.
Click through photos for obstacle course ideas:
Click through images for the front and back of MaKey MaKey:
MaKey MaKey is a simple input and output device that can be used with Scratch, or devices in general. As an input device it can be used as the cursor keys, space bar and the left mouse click. But MaKey MaKey can actually do a lot more than that. It can also input as other keyboard keys and mouse movements and clicks. There are also a number of pins on the MaKey MaKey which can be used as output. Two pins have been pre-programmed, one to output 5V when there is keyboard input and the other to output 5V when there is mouse input. The remaining pins can be programmed using Arduino IDE.
MaKey MaKey is a wonderful tool for building inventions therefore creating authentic learning experiences. There are so many inventions that you can make using MaKey MaKey. Experiment and be creative by using various materials as the input device. You can use lollies, fruit, buckets of water, humans and animals etc. You can experiment creating your own inventions or you can recreate existing tactile games such as Operation game, Dance Dance Revolution, giant piano keys that you step on from this webpage/gallery.
In building inventions, either for fun or to solve a problem, trial and error is required. Students experience the frustration and the sense of achievement of overcoming hurdles that are resolved through learning from mistakes. Students learn to learn and that it is ok to not know the answer right now, but that a solution can be developed and learned by making intelligent guesses and testing ideas.