Introducing kids to computer programming.
It might be easier than you think ...




(These files are at the top of the page in the event that somebody wants to look at them during the event)
Before you read any more of this, I need to stress that I am by no means an expert at any of the stuff that you are going read about. About the only thing that I have going for me is my willingness to mess around and make mistakes.

I've put together a little video about halfway down the page which I hope will help explain some of the things that I've been thinking about. (You may want to watch it in "full screen" mode).

***

Of late, there has been quite a bit of chatter about the importance teaching children to code. The entire "Raspberry Pi" project was started by a computer studies professor who realized that most of the students who were coming to him didn't really understand how computers work. They might have been "power users" but they didn't really know what went on "under the hood." (You can read more about this by visiting www.raspberrypi.org/about)

There is a video on the website www.code.org that features commentary on programming by some very interesting and very influential people in the world of computing. All of them believe that programming is a form of creativity and, although the phrase "knowledge economy" has sort of fallen out of our vocabulary, I strongly believe that in the future our students are going to need programming skills to survive in a very different economy.

I tend to think about something like "Minecraft" or "Angry Birds" as examples of what I mean. A few years ago, the idea of being able to make a living by selling multiple copies of a $.99 app that runs on a phone was unheard of. The idea of a few people creating the structure for a world-wide immersive virtual space and selling millions of copies of the software for around $20 without being backed by one of the big game manufacturers companies is also astonishing.

Some of our students will join this part of the economy and I think that we have a responsibility to introduce them to these experiences as early as possible.

When I was introduced to computers in the 1980s, programming was an essential part of the experience. There were certainly software packages that I could "use" (mostly games, of course) but I spent hours trying to write software. I wasn't very successful (and I'm still not much of a programmer) but I loved and still love the problem solving that goes into the process.











Over the past few years, I have tried to introduce my students to Scratch, Logo and "Inform 7." As I write this, I have spoken with my Principal about starting a computer club at our school that will revolve around the Raspberry Pi. I am not sure how it will work (but, by the time he conference starts, I think that the club will have started) but I am hoping that the children will start by learning their way around the terminal in Linux.

Programming has changed a lot since I started working with computers. It looks a lot different but the big ideas are the same - you need to use variables, check conditions (If this is true, then do this, if this is not true, then do this) and make things happen as many times as you need them to (loops). Of course there is more to it then this but, with these ideas and a little familiarity with a programming environment, it is possible to create some really interesting things.

If you are even the slightest bit interested in helping your students learn to code, the most important thing to remember is that nobody knows everything about programming.

It's also important to remember that your kids don't expect you to know everything. In the early days, my kids would quickly step well beyond what I knew at the time. When they wanted to accomplish something and I couldn't help, they would teach each other. I would learn through this process and I know that they appreciated the opportunity that I was offering them.
What I hope to do at the conference is give you a chance to interact with a couple of kid-friendly programming environments and to put your problem-solving hats on. I'll show you where to grab software and resources and try to show you some examples of problem-solving activities that are connected to the curriculum.

If you messed around with computer programming during the early days, I will try to have a couple of vintage machines around so that you can try to connect what you did "back in the day" to programming today.

If you are interested in exploring these ideas at Minds on Media, I would encourage you to bring a laptop to the conference. All of the resources that we will be playing around with are easily downloadable or will run in a browser. There are some excellent teaching tools available on tablets but the ones that we will be looking at only run on Personal Computers.

Resources:

Here is an "overly-Skitched" but coloured version of some of the charts that I will have on hand.


Here are a couple of sample tasks that I have thrown at my kids recently ...





Websites:
www.code.org
www.raspberrypi.org
scratch.mit.edu
inform.com
ACS Logo
(Mac Version of Logo) www.alancsmith.co.uk/logo/
FMS Logo
(Windows Version of Logo) http://fmslogo.sourceforge.net


Books
Scratch Programming for Teens
Scratch 1.4 - Beginner's Guide
Super Scratch Programming Adventure
Hello World - Computer Programming For Kids and Other Beginners

iPad / iPod Apps that help teach concepts
Kodable Pro
Move the Turtle