I have always been intrigued by computers and computer programming. I remember my best friend and I would sit up hours creating text-based adventure games on an old Commodore 64 with a cassette tape. Then I took my first programming course in high school in Basic and Pascal on a TRS 80 Model III with amber colored text on a black screen. I was hooked! the exercises were tedious and at times I often asked myself “Why are we having to learn this?” During my teaching years I had the opportunity to teach computer programming in high school and some of my students would ask the same question. This post will strive to help answer that question for you.
If you are interested in learning about a particular language you may certainly do so, but this post will not address programming language syntax or specifics. I will say however that the most popular languages still continue to be C++, JAVA, HTML, CSS, PHP, and SQL. Some of the older languages like COBOL and FORTRAN still have some use in the business world especially on legacy applications.
It is important to learn the basics of software design and to learn how to become a good logical thinker in order to be a successful computer programmer. You can always learn the particular syntax of a language when you move from one language to another. Everyone can benefit from learning at least the basics of computer programming.
Why Should Programming be Taught in School (K-12)?
There have been several studies and articles written about why students should learn programming. In a Tech Republic article (October 2009) by Justin James, he states ” I believe that we need to treat programming as a skill at the same level as mathematics or basic science in our education system.”
James also states, “I do believe that every student should be exposed to enough software development to be able to properly leverage the skills they will be using as adults.” Here are his primary reasons why:
- More and more jobs involve working with a computer.
- Many applications have a built-in scripting (macro) language that allows users to manipulate the application in order to make it perform certain tasks more efficiently.
- More and more jobs are actually specialized programming positions or positions where the worker will benefit from knowing some basic programming skills.
Read more of the article for some of the challenges that James states we face if we want to implement teaching software development as young as third grade.
In a more recent (March 2012) post by John Naughton in the UK’s The Guardian, Naughton states “Starting in primary school, children from all backgrounds and every part of the UK [or anywhere] should have the opportunity to:[numbers added by me for easier readability]
- learn some of the key ideas of computer science;
- understand computational thinking;
- learn to program; and
- have the opportunity to progress to the next level of excellence in these activities. “
Naughton concludes with the following statement: “The biggest justification for change is not economic but moral. It is that if we don’t act now we will be short-changing our children. They live in a world that is shaped by physics, chemistry, biology and history, and so we – rightly – want them to understand these things. But their world will be also shaped and configured by networked computing and if they don’t have a deeper understanding of this stuff then they will effectively be intellectually crippled.” So unless we teach our children these principles, they will become “slaves” to consumer services that are created by the people that do know how to program.
So How Do I Get Started Teaching Programming?
First we must stop trying to fix this problem piecemeal and in isolation. What I mean is that we often place students in isolated computer education or programming courses and fail to show them how to use these tools in their other disciplines.
Second we have to realize that we are talking about people, not the technology. The technology, even though it is relatively expensive, training people in the workplace that do not have these skills is even more expensive. So companies will look for folks that already have the basic computer programming skills.
Below are some other tips that might help you get started:
- Learn about the computer programming basics yourself so that you are more comfortable with them.
- Start slow and look for ways to implement programming skills into your curriculum.
- For early learners (K-3) start with the LOGO language.
- SCRATCH is a good language to use for intermediate learners (3-12 grade) that are interested in gaming.
- ALICE was developed to encourage more girls to get interested in programming but all students (6-12 grade) will enjoy it.
- In most middle and high schools students learn Visual Basic and JAVA (for the AP course.) Students will also benefit from learning Python.
- If your school doesn’t offer a course maybe you could start one.
Programming Sites for Education
- Land of Code – Learn a variety of web development programming languages
- How to Start Programming
- Computer Science for Homeschoolers
- Lesson Planet Lesson Plans
- Peanut Butter and Jelly Programming
- Alfred Thompson on Computer Education
- Teach Yourself Programming in 10 Years
- Is Programming Obsolete?
- Education Requirements and Career Information