One of the main elements of my final COETAIL project is coding a.k.a. programming. Coding has been a true treasure to educators for more than 10 years. I love the fact that thanks to educational resources like Scratch and Hour of Code students begin learning to program at quite a young age. These free-of-charge online educational tools are popular all around the world. However, there is so much more than just these tools. In this post I would like to share my own experience teaching programming, as well as some of the coding tools that me and my students found most useful and engaging.
“Whether you want to uncover the secrets of the universe, or you just want to pursue a career in the 21st century, basic computer programming is an essential skill to learn.”
– Stephen Hawking
The Advantages of Learning How to Code
Coding unleashes student’s creativity. For example, Scratch programming platform contains all the necessary tools that allow elementary students to program an interactive game or animation. Students can choose characters, backdrops, or even paint them using the provided tools. Motions, sounds, variables, looks, etc. – by using these simple coding elements, students can animate and customize anything they create in Scratch coding studio. Even more, students can share their projects with their peers by making their projects public. They can access the entire library of interactive visuals, created by other people and shared publicly. Students can comment on each others’ projects and even copy someone’s code and then edit it. Students can learn much by remixing other students’ projects, change the code and add their own elements. During this process, students analyze the code and come up with their own strategies on how to change it. Of course, for a successful learning experience, students should get a basic introduction on how Scratch works by a teacher. My students have their own accounts, that I can see on my Scratch teacher dashboard. I can leave comments to students as well as see their activity on Scratch. Moreover, students can comment on each others’ projects, they also receive feedback from other Scratch coding participants. Never-ending student engagement and a rich database of educational resources created by the Scratch team made me choose this amazing tool for my final COETAIL project.
Scratch was a Good Choice
Scratch educational platform has a lot to offer for teachers as well as for students. This coding software was successfully integrated with Google for Education platform and now teachers can assign lessons from Google CS First through Google Classroom. This is an amazing opportunity for teachers to teach coding remotely and for students that are willing to improve their coding skills while studying at home. This platform provides all necessary tools for educators to teach students programming. Teachers can access lessons as well as unit plans and even the entire curriculum for teaching coding. What’s great about it, is that almost every educator can teach coding by using this platform. Of course, some knowledge is appreciated, however, it could be gained also by exploring CS First.
It is not that difficult 🙂 Students sign up using their individual Google accounts or sign up with Google Classroom. Once students join the class assigned by a teacher, they can begin improving coding skills by watching instructional videos and completing hands-on lessons. Teachers have access to the teacher dashboard which allows tracking students’ progress. When students gain basic fundamental coding skills on Scratch, it becomes much easier to plan a variety of technology integration scenarios for almost any subject such as Social Studies, Science, Math, etc.
In order to provide a similar coding learning experience for my students during the final project, I have chosen another educational platform for teaching coding skills from Raspberry Pi Projects. My students were beginners in Scratch programming, so they could begin exploring Module 1 and learn how to program interactive stories, games, and animations. Students used knowledge gained in the further stages of our final project. For the final Scratch project students created their own music using tools from Chrome Music Lab. They used the music created in the further programming process of their interactive animations on Scratch. The Raspberry Pi platform is one more great tool for students to develop even better coding skills. Students get step-by-step instructions on how to build their interactive animations or gems using Scratch software as well as learn new coding concepts. Unfortunately, the Raspberry Pi educational platform doesn’t provide a teacher dashboard, however, students’ progress can be accessed from the teacher dashboard on Scratch. One more important fact about the Raspberry Pi Projects platform is that students can choose to learn how to code from a variety of coding languages and tools such as Python, HTML, CSS, Micro:bit, etc. Thanks to similar educational platforms, students get even more opportunities to learn how to program and develop their skills even without teacher’s assistance. It is great indeed that students can learn new valuable concepts as well as develop their skills individually. This is a great experience for students who are not used to focusing and following instructions. Scratch is an attractive coding platform for students, that allows them customize their own interactive animations and games. This important feature allows students to build their own world in a digital game or animation and works as a great motivator to students. I’ve noticed that very often students are used to be instructed by a teacher and struggle following simple instructions when working on their own. Therefore, coding tasks make students think and act more independently and develop their individual problem-solving skills this way. This has been a challenge for my students during this final project.
I am always excited about my book orders for the next school year because it always includes books from ISTE. This time I have one more gem in my hands – No Fear Coding by Heidi Williams.
The author has emphasized 5 main reasons why students in K-5 should learn how to code.
1. Making their thinking visible. Young students are at the beginning stages of learning how to follow step-by-step instructions and by developing their coding skills, they develop a better understanding of how to follow instructions in such way. Computer science helps make students’ thinking visible by building algorithms that usually have some visual shape. By thriving to achieve a goal, students build an algorithm and get visible results, which leads to further investigation and, of course, learning. Just by having fun students develop their learning skills without even understanding that.
2. Sustaining Creativity. According to Sir Ken Robinson, adults often lose their capacity of being creative, because they are afraid to be wrong, while students still have the power of being creative and not being afraid of making mistakes. While learning coding students always hear my encouragement to make mistakes, because all of us know that no programmer has ever written a good code without making mistakes and getting errors. This way students feel better while coding and are able to unleash their creativity even at the cost of making mistakes. At some point, coding is like a game of making mistakes, learning from them, and correcting them. I like the Hour of Code feature to run the code step by step and figuring out what’s wrong this way or by making small mistakes and running the code step by step every time.
Coding for kids is a totally creative process – it starts from scratch and ends with something more significant. “Learn To Code – 4 Reasons Why Your Child Should Do It”
3. Encouraging Computational thinking. “Teaching how to read and write code supports students’ ability to think computationally”. By learning coding students have to comprehend that their brains work like a highly complex computer by breaking down problems apart, identifying and creating solutions, implementing procedures, analyzing results, determining if results are acceptable (correct). After digging even deeper in order to understand how Computational thinking is being developed I found a comparison with Project-Based Learning and Inquiry-Based Learning. This means that by working on complex projects like PBL or IBL students get computational thinking experience, that’s why such projects are so effective in developing students’ critical thinking, curiosity, motivation for learning, collaboration, etc.
4. Fostering Future-Ready Skills. These skills include 4C’s – critical thinking, communication, collaboration, and creativity. By developing these skills students will begin the preparation process for the increasingly complex life and work environments. The communication process has changed and nowadays it is open for everyone to communicate with the entire world when working on a certain project. Instant feedback might be really important when expecting high-quality results.
“Coding allows the user to become a creator rather than just a consumer of the content.”
5. Empowering students to take action. “Coding is about applying skills and creativity to solve problems.” Coding allows creating a variety of solutions for the real world. During one of the educational conferences I have met a senior student, who has chosen to program an app as a community service project. This app was created to make students’, teachers’ and even parents’ life easier while tracking all events happening at school. The app included the LMS (learning management system), cafeteria menu, important school events, etc. All of this school-related stuff could be accessed via one app. I have to admit that this is an amazing initiative and I can only imagine how many schools are dreaming about an app like this. Finding relevant information in one place is really convenient.
Computational thinking is a complex of skills that are necessary for our students, who are entering the real world and are going to make some relevant changes in the real world.