With Hour of Code and Girls Who Code rapidly gaining popularity, it’s easy to see that the coding movement is growing. Even President Obama recently gained attention for being the first President of the United States to write a line of code.
The reasons behind teaching students to code seem fairly obvious. Technology is a growing sector, and technology companies claim a shortage of qualified individuals for technology jobs.
Should Schools Be Involved?
But where does that leave schools? Should every student learn to write code in the push for STEM education?
This has been an interesting topic of discussion amongst the staff here at Edublogs. As an educational technology company, we’re invested in teachers and students, as well as the use of technology. We bring our own biases to the table as some of us are both former educators and technology workers and enthusiasts.
We differ in our ideas and approach, but if we made a general consensus, it would be that there is no magic bullet in education. Suddenly dropping an entire school’s worth of students into programming classes won’t make everyone instantly employable. Nor will all students enjoy it. For some, being able to program the next Flappy Bird and Trivia Crack sounds like fun. Others would just assume play the latest app without a second thought regarding its functionality.
But while there is no single career path or set of skills that will equally benefit all students, I think incorporating ways that allow students to explore programming (even just a taste) can open doors for students who would have never considered technology beyond their own understanding of their devices and apps.
Benefits of Coding
Here’s a few lessons that will tremendously benefit students, even if they never write a line of code again:
- Logical reasoning. If this happens, then do this. If it’s raining outside, wear a coat. By breaking down ideas into pseudocode, we get a better idea of how objects are related to each other.
- Creativity. Projects can be open-ended. There are multiple solutions to a single problems.
- Problem-solving. If a program doesn’t work, we naturally want to solve why it doesn’t work (de-bugging).
- Interdisciplinary learning. Limited only by the size and scope of the project. In my example below, I used mathematics (probability), music (audio editing), arts (vectorization and image editing).
- Instantly applicable learning. Have your students ever asked, Why do I have to learn this? By writing code that works, we get a functioning game or application. There is a larger picture that governs our learning, rather than a blanket, It will help you later.
In my quest to increase my own development skills, I decided to enroll in my first MOOC through EdX. The course, CS50, is offered by online Harvard University, and is their most popular course on campus. If you’ve ever wanted an awesome introduction to computer programming, this is the place to learn it. The lectures are engaging (and optimized for an online audience), there are shorter walk-through tutorials, and everything is hands-on with project-based outcomes in the problem sets.
While the MOOC rapidly expands in depth and difficulty as the course progresses, the very beginning of the course focuses on Scratch, a project from the MIT Media Lab, geared at students ages 8-15. (My guilty secret: It’s a ton of fun as an adult, too!)
Scratch is a web-based application and programming language that lets you create stories, games, and animations. It’s intuitive and visual, and entirely free.
Over 7 million projects have been created, and 7,500 educators have used Scratch, so I’m certainly not the first nor last to discover how awesome this application is.
If you have a chance to use Scratch with your students, there is an amazing variety of projects you’ll be able to create. Here is my simple Rock, Paper, Scissors project:
What do you think? Is there an over-emphasis placed on coding in schools these days? Are schools not taking advantage of the curriculum and resources available to introduce programming to students?