Additional profile information on Alfred Thompson at Google+
The other day I was looking through the analytics for this blog to see what sort of searches people were doing that let them here. Mostly I was seeing things I expected to see but one stuck out. Someone had searched for the string “i am scared of programming.” I suspect that the searcher was not afraid of the act of programing but that they were afraid that it would be too hard. Or perhaps that the course they were taking or thinking about taking was too hard. Although it is possible that the act of programming was scaring them. Some people are afraid that they will “break something” through their programming activities. In any case there sees to be a lot of fear around when it comes to programming. It may be one of the things that keeps people away from the field.
A bunch of years ago I wrote a textbook for learning Visual Basic 6.0. When talking with my publisher I joked that I would like the words “Don’t Panic” in large letters on the cover. The more geeky in the audience will remember that being on the cover of “The Hitchhiker’s Guide to the Galaxy.” One of the big goals of that first book was to be a friendly, gentle introduction to programming. Scaring people was the last thing on my mind. I don’t want to scare people away from programming and computer science. I want to attract them TO programming and computer science.
So what is scary about programming? For many it is the syntax of programming languages. The semi colons, the curly braces, the simple words in strange configurations, and the fussy way that programming languages what instructions to be specified. Recent years have seen the development of several languages, or environments perhaps, that have tried to avoid as much of the syntax problems as possible. Environments like Scratch, Alice and Kodu have gained a lot of usage particularly among teachers teaching younger students but even among teachers of older students. These tools allow the introduction of programming without the “scary” syntax of most major programming languages. Students using these environments learn that they can program and that it need not be something to be afraid of.
These tools are great and I love them but they have some limitations. One of these limitations is that they are essentially “walled gardens” and the programmer can only operate within these environments. At some point one has to move on to more traditional programming languages. One hopes that most students have more confidence about the idea of programming when they make this jump and that the syntax will no longer seems as frightening because the concepts will be familiar.
One of the other things that seems to scare some people is the literalness and the pickiness of “computers.” One really has to be pretty particular about how one gives instruction to a computer. It seems like the slightest little error – a typo, a missing semi colon, a letter in the wrong case – can make everything fall apart. For someone who is not used to being a detail oriented person or someone who just wants the computer to “do what I mean” programming can be frustrating. And yet bugs are not a time for panic but a time for patience.
I think some people are also fearful that they will not be able to combine the problem solving with the syntax and fussiness of programming to get something that does what they want the computer to do. When taking a course the fear is that this will lead to poor grades. I’ve seen more than a few students avoid taking a computer science course because of the fear of getting a poor grade. It is unfortunate that the focus on grades gets so high that it overshadows the value of actually learning. That does happen though.
What ever the source of fear I think that often that is the biggest barrier to entering computer science for many people who have the opportunity. Far too many people don’t have the opportunity for formal education in computer science and programming in K-12 of course. And that is a large problem. But in schools that do offer computer science and/or programming I think fear keeps many from even trying. And that is unfortunate.
How do we get the word out that there is no need to panic? Friendly tools like Scratch, Alice and Kodu can help a little. I think that themes that really gather students interest (gaming, phone development, etc.) can help motivate students to move past their fear. I think that introducing computer science (which is more than programming) at an earlier age can help prevent fear from developing. I think we can create more early courses in middle school (or earlier) that introduce the concepts more gently can be helpful. I know that a lot of people are concerned about reducing the rigor of CS education. This make sense of course. We all want an AP CS course that is really a college/university set of rigor. But we don’t teach AP Calculus to students who haven’t learned arithmetic first. In fact we usually expect students to have many years of math courses before they get to AP Calculus. And still no one says “you’re not giving enough rigor in math” because we realize that you have to work up to some things. We need that sort of attitude about computer science as well
Here we run into the old problem of no time in the curriculum. This is a tough one. The answer is probably something involving incorporating computer science into other parts of the curriculum. We’re a bit short of properly trained teachers for that which is an issue. Like so many problems though panic is not the solution. Neither is just giving up. We need to sit back, analyze the problem, develop a plan and execute it. Sounds a lot like programming doesn’t it?
Last week Microsoft announced the opening of the 2013 Imagine Cup. This year there are thee competition and three challenges for students to enter. The prizes are larger as well with a top prize for each of the three competition being $50,000 (USD) and each of the challenges having a top prize of $10,000 (USD). Participants must be 16 and older. Last year we had a team of high school students reach second in the game division in the US. I suspect that will be looking pretty well on their college applications. For university students success in the Imagine Cup is a great resume builder. Not only that many teams in the past have taken their Imagine Cup projects and made businesses out of them. For example Australian Imagine Cup 2012 Team StethoCloud was recently featured in the 'Innovators' section of Bloomberg BusinessWeek magazine! Have you got it in you to compete with the best? Time to build a team and start working on your project.
Sign up to get the Imagine Cup newsletter, talk to us on Facebook and Twitter, and get the latest scoop on our contests and even more ways to win.
For each competition, we'll award:
And each challenge:
Looking for resources to get started? Take a look at:
Happy Labor Day! Today is commonly thought of as the last day of summer in the US. Few if any schools in the US will start (with students) later than tomorrow. I hope you all – students and teachers – have a great school year. If you are looking for a few interesting tidbits I have a few links to share.
Andrew Duthie and Chris Bowen share with us their Top 10 Windows 8 secrets for App success. Tune in as they discuss the incredible money making opportunities available for developers who jump in and develop applications for Windows 8 as well as what free tools and services are available to help you along the way.
How to Develop a Windows Phone App in 30 Days Now that you have taken on the 30-day challenge to build a Windows Phone app, let's get down to the brass tacks. How to start? What happens next? Where to get a device to test your app? How to make money on your app? Help is at hand at each step of the way. The schedule below highlights themes and how you can make the most of each week with training, resources and support. Your journey begins here.
See also How to Develop a Windows 8 App in 30 Days
If you teach computer science in K-12 you really should belong to the CSTA. Check out the Benefits from Computer Science Teachers Association membership as the CSTA blog.
Randy Guthrie doesn’t blog often but when he does it is worth reading. He posted a couple of posts recently that I feel I have to share because they are just really useful.
Increase Problem Solving, Reduce Coding Syntax is a great post by Garth Flint that talks about the difficulty of teaching problem solving and how it is more important than just teaching syntax.