Author: Abhay Bindumadhav Joshi (email@example.com)
Date: 1 April 2010
Children have a natural fascination for computers. You can see them lapping up every opportunity to play with PCs and gadgets like video-game consoles and cell phones. The interaction of most children with computers consists of browsing the Internet, connecting with friends using chat and email, playing games, or using ready-made (and sometimes dull!) software like word processors. The best attempts in schools to introduce computers to their students also, as we will see later, do not go beyond the literacy level.
Programming means tapping into the computer's immense power by talking with it directly. Through programming, children use the computer's terrific power to draw graphics, design animation, solve mathematical or word puzzles, and even build robots. Such a close friendship with the computer unleashes the children’s intellectual ability and creativity. It also allows them to apply concepts of Math and Physics to solve interesting problems.
The choice of the programming language is critical. It is essential to use programming environments like Logo/Alice/Scratch/Squeak (and many others) that have been specially designed with "learning" in mind. These environments are simple and entertaining, and yet very powerful. They are called "low floor and high ceiling" languages. They allow the learner to build his/her vocabulary without getting mired in the complexities of syntax and grammar.
So, we teach programming; and in these programming courses, learning to program isn't the ultimate goal; the goal is to apply principles of math and logic, to learn critical thinking, and to unleash individual creativity. The focus is on fun, exploration, and challenging projects.
This type of computer education (known as "Constructivist" education promoted by eminent educators such as, Piaget and Seymour Papert) is widely recognized all over the world as a preferred way of introducing computers to children. The following websites give more details about this approach:
See Appendix A for additional papers written about the
benefits of writing computer programs. The papers refer to Scratch, but the
theme applies essentially to Logo and
1. Children discover the true power of computers. Their fear (or anxiety) about computers is replaced with a friendship.
2. Children apply principles of Arithmetic, Geometry, and Physics in creative and enjoyable programming projects.
3. Children learn new ways of thinking:
a. Logical reasoning (no assumptions) and algorithmic thinking (step-by-step)
b. Analytical thinking (understanding your own ideas so that you can teach the computer)
4. Children learn a new technique of dealing with complexity (called divide-and-conquer).
5. Children learn a new technique of problem-finding and solving called "debugging".
6. Children learn in a friendly (computer never complains) and highly tolerant (there is no "right" or "wrong" in programming) environment.
We conducted our courses for
SPARK's teaching staff developed
"Introduction to Programming" courses using two separate
languages: Logo and
Following is a simple example in which a beautiful garden was drawn by a pair of 7th grade students, by simply creating a "petal" shape (see the code snippet in the box below) and then replicating it to draw the leaves and flowers.
SPARK's teachers encouraged
students to select and design their own projects, and the result was a great
variety of very imaginative ideas. A pair of students did a graphic of
Even though there was variation in students' grasping power, the variety of programming problems kept everyone busy. The teachers encouraged them to share discoveries and insights (made through mistakes sometimes) with each other so that the group as a whole made great progress in a short time. Homework was optional - its purpose was to help students reinforce their understanding.
The students were delighted at the opportunity to do programming - to be able to talk with the computer directly, solve interesting problems, learn how to catch defects in programs (and in their own thinking process), draw cool graphics or animation on their screens, and work in a stress-free environment. The students not only attended all sessions, but also resisted cancellation of any session for any reason.
The initial fear that only "bright" students might benefit from these courses was completely disproved. Every child thoroughly enjoyed programming. There were in fact students who showed remarkable improvement in their enthusiasm for learning, class participation, Math abilities, and even working style. Their interest improved even in other subjects!
Following are comments of some of the students:
- I loved the class ... It was an unforgettable experience ... I want to learn more ...
- Now I know computer is not just for games ... I can actually talk with it ...
- Besides programming I learnt Math and techniques of solving problems ...
- Logo is fun ... The Turtle is cool ...
- I learnt how to think systematically ...
School officials were very pleased with the experiment. They were impressed with the high degree of professionalism shown by the teaching staff. Their impression from what they heard from their students was very positive. They pointed out as an unusual fact that there wasn't a single complaint from any student about the classes.
Many parents indicated that their wards talked about these courses quite enthusiastically; that their daughter's or son's interest in Geometry and Arithmetic had taken a turn for the better. They said that their children now spent less time playing games and more time doing programming.
It is clear that teaching children computer programming is a great idea. Students discover that the computer is a powerful assistant that can help them in any of their favorite subjects. Through the interesting ideas embedded in the programming environments and the specially designed programming problems, students' interest and ability in "difficult" subjects like Math and Physics improve substantially.
Students learn a great deal through programming. They become active learners (they learn through their own activity and creativity). They learn that answers are not just "right" or "wrong"; real life solutions usually require gradual improvement through "debugging". They learn to deal with complex problems by starting with smaller sub-problems. They learn to think about and analyze their own thinking, because that is the only way to program computers. Their overall learning process transforms from acquiring facts to creative thinking.
Before you teach programming at your school, the important points to remember are:
1. Mindstorms: Children, Computers, and Powerful Ideas by Seymour Papert (2nd Ed) - this book discusses the idea of "learning through programming" in great detail
2. http://www.cs.berkeley.edu/~bh: Home page of Prof. Brian Harvey - the author of UCB Logo and of popular programming books on Logo.
3. http://en.wikipedia.org/wiki/Educational_programming_language: A page on Wikipedia about educational programming languages.
4. http://www.spark-institute.com - organization dedicated to helping children learn through programming.
In operation since August 2007, our aim is to show children how they can harness the real power of the computer by learning to program. We want to demystify the secrets of the computer for children and show them how they can use it as a powerful assistant to learn anything they want.
Our main activity at SPARK Institute is to teach Secondary
School students (6th to 10th) computer programming using
languages like Scratch, Logo, and