Maybe you are wondering why I stated that ALL students should learn to code. Well, besides the fact that coding, also called programming, is a skill set that students could use for a future career in a world that has a shortage of skilled coders and programmers, coding can help students in their other subjects, too—coding can improve soft skills like perseverance and problem-solving that we educators emphasize. Coding is especially beneficial to students who are struggling with reading and math. In addition, students often feel empowered when they can create digital media and share it with others instead of just being consumers of digital media.
Starting back in 2003, Mitch Resnick (2013) and his team at Massachusetts Institute of Technology (MIT) created Scratch, a block-based coding tool that is engaging and educational for students. (Watch Resnick’s (2012) TED talk on the importance of teaching kids to code for a demo of how students have been using Scratch). After more than 11 million students used Scratch, the team discovered that students learned far more than coding. So what do students learn besides how to code? According to Resnick (2013), students learn:
- Math concepts such as variables and conditions
- Logic such as sequencing as well as cause and effect
- Techniques for solving problems
- Project design such as the importance of breaking down big ideas to specific tasks
- Benefits of collaboration and techniques for communicating ideas
- Ability to take criticism as well as identify and fix errors
- Perseverance in the face of difficulty
For students who struggle with reading, writing, and math in school, it is imperative that they learn techniques to improve these skills. We, as educators, know that time is so limited. How can we possibly add another element such as coding to our instructional time? Yet, incorporating coding helps students gain skills such as sequencing, problem solving, math concepts, as well as perseverance so that they will become better readers, writers, and mathematicians. I believe that making the time during the school day will prove beneficial for all students. At the very least, it is definitely worth more research.
You may be wondering:
So what tools are out there that can be brought into the classroom for students to learn to code?
What instructional resources are available? I don’t have time to learn how to code!
Do students have to learn the old BASIC programming you may have learned in school?
No. Coding is much more visual in the 21st century, and there are a number of tools built specifically for students that use block-based and visual coding. Here are some great resources to try:
- Scratch – free – online web-based tool – https://scratch.mit.edu
Scratch was created by Resnick and his team at MIT. It is for children 8 years old and up, and students do need basic reading capabilities. This site focuses on creativity and collaboration through coding. There is a way for teachers to create a classroom account as well. According to the site, “Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century.” Google has created CS First materials based on Scratch that can be used by teachers to create an after-school program. Check out this site to review the materials – https://www.cs-first.com/overview.
- Code Studio – free – online web-based tool – https://studio.code.org/
Code Studio, hosted on the http://www.code.org site, is a non-profit that sponsors the annual “Hour of Code” in December, when students code for just one hour. There are online courses for students that take them through the basic steps needed to create code and learn computer science. The quality educational materials are on target. In addition, all learning is hands-on and interactive. This is less creative than Scratch, but the materials even include younger students such as 4-6 year olds through high school.
- MIT App Inventor – free – online web-based tool – http://appinventor.mit.edu/explore/designer-blocks.html
MIT App Inventor is a more sophisticated coding tool that is useful for older students who are grades 7 and up. The apps that are created can be used on Android only although there is a computer emulator to show how the app would function. The website includes many resources to support learning how to code using block-based coding.
There are other programs and apps available that have a fee. Other apps even allow students to code commands that are sent to robots, LEGO tools, and light-bulbs. However, I recommend testing one of the free tools listed above first before investing money. Scratch is definitely my favorite for students who are grade 2 and up. There are many resources available to get students started quickly and easily.
How Should Students Interact with Coding?
Resnick and Siegel (2015) recommend the following principles when introducing coding to students: projects, peers, passion, and play. The students should be able to create a meaningful project about something that they are passionate about. They should be able to share with peers in their classroom and also around the world. Also, Resnick recommends the importance of encouraging students to play or tinker with their creations so that they take risks and they can learn from their failures.
Are you ready to jump into coding? I would love to hear about the ways that you are thinking about using coding in your classrooms and schools. Did your students create a class project? Maybe they worked with a partner to create a solution to a real-world problem. Or, perhaps they worked individually to create a new app that will change the world! Whatever tasks they work on while following the four principles above, they will most likely be improving their skills in other subjects as well as building confidence and creativity.
Resnick, M. (2013). Learn to code, code to learn. EdSurge, May 2013. Retrieved from, https://www.edsurge.com/news/2013-05-08-learn-to-code-code-to-learn
Resnick, M., & Siegel, D. (2015). A different approach to coding. Bright/Medium. Retrieved from, https://medium.com/bright/a-different-approach-to-coding-d679b06d83a#.7rk06vjmg