In a previous post, I have listed a few
reasons for teaching programming in school. In this post, I intend to
argue that computer programming is an essential
skill in the curriculum. I was prompted to write it
when I read the following comments made by Steve Jobs:
"In
my perspective ... science and computer science is
a liberal art, it's something everyone should know how to use, at
least, and harness in their life. It's not something that should be
relegated to 5 percent of the population over in the corner. It's
something that everybody should be exposed to and everyone should
have mastery of to some extent, and that's how we viewed computation
and these computation devices."
(http://www.npr.org/2011/10/06/141115121/steve-jobs-computer-science-is-a-liberal-art?sc=tw&cc=share)
Usually,
when society decides that a skill should be known by all, or most,
people, we add it to the school curriculum. So far, it seems that
we're operating on the assumption that computer programming is a
skill that should be relegated to 5 percent of the population.
Programming
as an aid to learning
Those
of us who have learned to program usually find that our thinking
changes in many ways. When you want to write a computer program, you
have to teach the computer to do something for you. This involves
iterations through a process of deciding what you want to
achieve, breaking this down into small tasks, describing
these tasks precisely, writing the program and, most
importantly, testing and debugging it.
Debugging
is a powerful metaphor for all learning. I read somewhere that most
students approached tasks with the attitude that they either "get
it" or "don't get it". Debugging introduces a process
whereby strategies are trialled and improved upon in a gradual way.
Here's what the legendary Seymour Papert has to say in his book,
"Mindstorms":
A
deep understanding of programming, in particular the notions of successive decomposition as a mode of analysis and debugging of trial
solutions, results in significant educational benefits in
many domains of discourse, including those unrelated to computers and information technology per se.
Programming
as a skill for the 21st century
Mitch
Resnick, of MIT Media Labs, talks about "interactive literacy".
He says that one is not literate simply because he/she can read. You
expect a literate person to be able to write. In the same way, he
argues, most people consume media but are not able to create
it themselves. Here's an excerpt of his argument:
Recent
commentaries on new media literacy have emphasized the importance of
the ability to analyze media critically and the ability to
participate actively in online communities. Those abilities are
clearly important. But I feel these commentaries haven't paid enough
attention to another important aspect of new media literacy: the
ability to express oneself with new media. This aspect of literacy is
sorely lacking in today's society: very few people are able to
express themselves fluently with new media
technologies.(http://civic.mit.edu/blog/interactive-literacy-0)
Resnick
acknowledges that more content is being created now than before.
However, he points out that most of this content is in the form of
websites and blog posts that use traditional forms of media. He adds,
"For me, the most important and distinguishing property of new
media is interactivity".
Like
Papert, Resnick has backed up his words with actions. He is the main
force behind the Scratch
programming environment which enables kids to build this
interactivity in a fun and effective way.
It
is now easier than ever to teach programming to kids. There are now
many visual environments that are custom made for use with
school-aged kids. In my school, we have introduced Scratch at year 7
level, our junior year. Some of the IT teachers were reluctant at
first. Now, they rave about Scratch and love what their students have
produced with it in a very short time.
I
hope this post will help me start a conversation with some who are of
the same opinion and others who disagree with me. I am planning to
follow it up with two other posts: A guest post from a colleague on
Scratch as a constructivist learning environment and another on why I
am passionate to see girls, in particular, taught programming at
school.
Please
join the conversation by leaving a comment.
5 comments:
rogramming does help develop thinking skills and like everything else, it should be nurtured at a young age. With multiple programming tools and resources available for children, I hope that it will happen. We can't wait until high school to have these kids know nothing about programming. Its not just the software development skills, but its also about developing analysis skills.
I always believe that software developers, like musicians, have only creativity and lots of thinking skills at their disposal. I personally feel that these are 2 key elements necessary to change the world. Being both, I can personally tell you how it feels to have made someone's life better. Steve Jobs was right to say that programming is a liberal art.
I fully agree, Collin. I am happy that my daughter's school teaches programming from grade 4 level. I don't really know what environment they use since she's not there yet! Many primary schools use Scratch or Game Maker. The beauty of Scratch is that kids can tell stories and much research shows that many girls prefer that over writing games. Game Maker games can look more polished.
The analysis skills and problem solving skills are very important... and programming gives students a setting in which they are more likely to develop important problem solving skills... with such programmes like SCRATCH (which are designed to help students learn programming) allowing students to be in charge of the creative process and to create something they want to create, the motivation for students to persist and explore possible solutions is MUCH greater than in other more traditional settings.
When I was at school, programming was an 'elective' for those interested in computers where it was generally about copying a lot of code and not knowing if it worked or didn't work or why or why not. How different it is today with programs like Scratch and the simulators which allow instant feedback on what you have created... for the first time programming is now accessible to everyone and WHY shouldn't everyone learn a little bit of it?
Also, it probably isn't stressed enough just how much basic programming is used in the sciences... where any modelling is done. A friend of mine who has lectured Graduate Courses at various Universities is always shocked with how little many of his students know about programming... and, all too much, how poor their logical problem solving skills are... perhaps these two deficiencies go hand in hand.
Thanks for your valuable comments, Anonymous. A colleague of mine has a friend teaches postgraduate Biology and who finds that he needs to spend time on teaching programming. He laments the fact that students get to that level before they're introduced to it.
With ProgrammingKit.com you get practice programming a computer! Kids and adults can have fun moving the bug around and drawing different designs.
Parents: Ask your child to have the robot bug walk in a pattern (square, triangle, etc). Use the grid to count the boxes. Ask your child to have the robot bug walk to a particular spot on the screen.
Post a Comment