Why Would I Teach Programming to Elementary Students?!
What is Code.org
Quite a few big Silicon Valley companies have been noticing the upcoming need to have more programmers. It turns out that computer scientists aren’t just in demand, companies are turning away work and worried they won’t be able to survive given the lack of employable software engineers.
All of these tech companies that are in competition with one another came together in a kumbaya moment around the programming campfire and put their money together to promote the study of computer science in elementary schools with the hopes of having enough employable people in the future.
And we benefit! I signed up to go to a free workshop. There were no sales gimmicks! Someone even raised a hand and asked, “Where are the products for purchase?" Well, it turns out that the workshop is indeed free and there isn’t a catch.
The resources are free to download, free to use, and they happen to be easy to use. You can open a free teacher account to track your student’s progress. I know what you are thinking: There it is… it’ll offer me a free account for a month or for a fixed number of levels and require a paid upgrade. WRONG! This whole darn thing is free.
**As a disclaimer, there are links on the Code.org site that take you to some of their affiliates like Tynker.com which have paid components. However, everything I’ve been able to find on Code.org has been entirely free.
Tips for using Code.org curriculum:
1) The progression of learning, playing the levels, and watching the videos still require that a teacher introduce certain concepts to continue in the success and understanding.
2) The lessons the teacher uses are called “unplugged” because you don’t need computers to teach them! The purpose is to express a new concept and make it accessible for as many students as possible. No computers? These lessons are a great way to start teaching your students the concepts and vocab. They are set up in the same format and expose the students to programming vocabulary.
3) The lessons are strategically scaffolded to repeat skills with little bits change while the concept stays the same. It’s about the thought process and integrating technology.
4) It is making a game, not playing one. Get your district on board by explaining that the students aren’t playing. Thinking is a requirement in order to program the game and build the skills for future programming.
5) Partner programming (one person touches the computer the other person thinks) is one way to get kids talking and working through problems together. Just FYI, this is an actual thing. Mr. WigglingScholars is a programmer and can attest that professional programmers use this technique to work through code.
6) When using the site to work through the levels, have students go to Play Lab by clicking on the rocket ship or the pencil. If you have them go from within the lesson, it will target the specific skill, or you can choose it as a course, but it will not be targeted the same.
Why Should Teachers Care?
I’d like to note that 21st Century Skills does NOT mean email and attaching a link or typing and saving a file. It is a thinking style and collaborative effort. It is learning how to give explicit directions to a computer to collect data, manipulate actions, and display information.
For my purposes, I’d like to define coding as the writing of code on a computer and programming as the thinking done in order to make the code effective.
At the workshop, someone mentioned that you may not be artistically creative, but logically creative. I’d like to argue that programmers are artistically creative. Further yet, that the best programmers merge the two.
If you’d like to do more reading on the art of programming, check out the original article from 1974. Yes, that’s right… 1974! Some truths don’t die. Kunth speaks the truth about programming. Here is a snippet from his speech:
“…They would agree with the following characterization: Science is knowledge which we understand so well that we can teach it to a computer; and if we don't fully understand something, it is an art to deal with it. Since the notion of an algorithm or a computer program provides us with an extremely useful test for the depth of our knowledge about any given subject, the process of going from an art to a science means that we learn how to automate something.
My feeling is that when we prepare a program, it can be like composing poetry or music; as Andrei Ershov has said, programming can give us both intellectual and emotional satisfaction, because it is a real achievement to master complexity and to establish a system of consistent rules.” 
I want to make it clear, I am writing this post not because I am being paid, not because I was asked, and not because I feel like I need to pay them back for the free training. I am writing in the hopes you consider teaching your students some form of programming. Just as you already teach algebraic concepts and group-work strategies, you can also teach your students some of the basics of programming.
What Can You Do?
If you are a looking to stay connected with other educators who are talking about Code.org try these hashtags on Twitter:
There is also a forum on the site that allows you to connect with other teachers.
I am no expert, but I'd love to offer any help I can, too! Let's get a conversation started.
Copyright 1974, Association for Computing Machinery, Inc. General permission to republish, but not for profit, all or part of this material is granted provided that ACM's copyright notice is given and that reference is made to the publication, to its date of issue, and to the fact that reprinting privileges were granted by permission of the Association for Computing Machinery.