You are on page 1of 6

Teaching Computer Programming in Schools - a Novel

Experiment
Author: Abhay Bindumadhav Joshi (abjoshi@yahoo.com), SPARK Institute, Pune
Date: 1 May 2009

Introduction
In this article, we will describe a new way of introducing computers to school children.
We will see how the 7th and 9th grade students of a well-known progressive school in
Pune responded to this new idea and turned it into a highly delightful experiment.

Children and Computers: Present Situation


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.

The New Idea: Using Programming as a Medium for Learning:


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, and as a result helps create interest in subjects like Math and Physics.

The choice of the programming language is critical. It is essential to use programming


environments like Logo and Alice that have been specially designed for children. 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.

Also, 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.

SPARK Institute is a group of computer professionals in Pune that is dedicated to this


mission of giving school children the true power of computers.

Proposal to Aksharnandan:
Aksharnandan is a renowned school in Pune, famous for its progressive learning culture.
Their philosophy is to teach children the art of learning itself. They believe that every
child is creative in his/her own way and the school's job is to help him/her discover and
cultivate that creativity. Their aim is to free education from the prevalent competitive
ethos, encouraging cooperative learning. Academic studies are interwoven with
productive activities such as farming, cooking and craftwork. Children are encouraged to
freely question, to be bold and inquiring, to express themselves spontaneously, but
always with self-discipline and responsibility.

SPARK Institute approached Aksharnandan School and discussed their idea with them in
July 2008. The school was already in full swing and things were moving along as per
their annual calendar. But the school founder Vidya Patwardhan and her colleagues were
very receptive to these new ideas, and they had a lively discussion. It was decided that
SPARK Institute take up one class - the students of 7th - and teach them computer
programming. The school insisted that the Institute should teach all 39 children - and not
just selected "bright kids". The Institute agreed to the school's condition. The school used
Marathi medium, so the other natural expectation was to use Marathi for instruction. The
Institute's teaching staff had no experience of teaching computer programming in
Marathi, but they took up that challenge as well!

Experience of Delivering the Classes:


The School was extremely supportive in the effort. They got their computer lab in the
required shape by adding memory (RAM) to slow machines and by installing an inverter
as a power backup.

SPARK's teaching staff divided the 7th grade students into two batches, and taught them
two separate courses. One was Introduction to Programming using Animation, and the
other was Introduction to Computing using Logo. They started teaching in August 2008
and finished in March 2009. They had a weekly session of about 70 minutes with the
students. The entire time was spent in the Computer Lab.

SPARK's teaching staff tried an unusual teaching methodology in these courses. They
spent less time teaching (on the blackboard) and more time helping children learn
through their own hands-on exploration, programming assignments, and the process of
debugging (the act of figuring out where you went wrong). The teachers showed the
children how to "bite as much as you can chew" by breaking a complex problem into
smaller ones. (A house, for example, can be treated as a combination of windows, doors,
walls, etc, instead of as one big object.) As a result, they became good at spotting patterns
in seemingly complex problems. Students got a more intuitive feel of geometry and
physics. (A circle, for example, is a path with constant curvature, and not just an
algebraic equation. Or in animation, a flying helicopter needs to calculate both the height
and distance of the helipad in order to design a flight path to it.) Students learnt that
programming is 90% thinking and 10% typing, since the computer is an obedient and
powerful but dumb assistant that needs every little step spelled out clearly and correctly.

Following is an 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.

2
;This draws a quarter circle
To Qcircle :size
Repeat :size [Forward 1 Right 90/:size]
End

;Using the quarter circle twice, this draws a petal


To petal :size ; size is the length
Qcircle :size
Right 90
Qcircle :size
Right 90
End

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
Dubai's skyline, many of them did a variety of gardens and landscapes, a pair did a basket
of fruit and flowers, a pair did a beautiful aquarium. (See http://www.spark-
institute.com/aksharn.html for a look at these interesting projects.)

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 - since its purpose was to
help students reinforce their understanding, not just to force them to do things.

3
In March 2009, the School, encouraged by the experience with the 7th grade, asked
SPARK Institute if they could conduct a vacation camp for the students of 9th who would
soon be in 10th. The Institute happily agreed and conducted a Logo Programming class
for the 24 students of 9th. They again ran two batches - each batch for 10 days, 2 hours a
day. The experience was again very similar - students jumped at the opportunity to learn
programming and enjoyed every bit of the intellectual challenges thrown at them in this
fast-paced course.

Students' Response:
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 performance 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 a lot more
...
- Now I know computer is not just for games and movies ... 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 ...

Feedback from the School and Parents:


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 in the entire year from any student about the classes.

As evidence of the favorable impression made by this experiment, the school had the
staff of SPARK Institute do a presentation to the school's entire teaching staff about
computer education and their working methodology. It was a lively session in which
teachers asked many interesting questions.

Many parents indicated that their daughter's or son's interest in Geometry and Arithmetic
had increased. They said that their children now spent less time playing games and more
time doing programming.

4
Quick Review of Computer Education in Schools today:
Let's now take a quick look at what generally happens at our schools under the name of
"computer education". Computers are no longer a novelty for schools. Barring the
schools where computers are simply eating dust, many schools these days offer computer
education to their students. Some schools have even come up with curriculum and
textbooks. A quick survey of these schools shows that the education being offered to their
students is of one of the following types:

Computer Literacy: This includes history of computers, parts of a personal computer


and their function, how to use the mouse and keyboard, how to connect to the Internet
and browse websites, and so on. The focus is clearly on developing basic familiarity with
computers and getting started with some basic use.

Productivity Applications: This curriculum consists primarily of teaching Microsoft


applications like Word, Excel, and Power Point, composing and editing documents,
various features of these applications, using the Internet browser to search for
information, email communication, online banking, and so on. The focus in these courses
is on enabling students to use the computer as a tool to prepare project reports, collect
and organize study material, collaborate with peers, etc.

Random Topics: These include topics like DOS commands, introduction to TCP/IP, and
C or Java programming. These topics are taught without any thought to their relevance
and propriety for the audience. Such topics are suitable for the industry audience, and not
for beginners. Instead of creating a friendship with the computer, they can easily create a
phobia. Secondly, their focus is on technology, and not on facilitating the learning
process. Certain other topics are too superficial, like ‘Introduction to Information
Technology’ which attempts to introduce students to all that happens in the IT industry.

It can be easily argued that computer literacy and learning word processing are very basic
steps - just like learning how to read and write English. Children can pick them up
themselves - in no time and in a much better way; schools don't need to invest their effort
on it.

Conclusion:
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"
subject likes 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

5
only way to program computers. Their overall learning process transforms from acquiring
facts to creative thinking.

Next Steps:
If you are convinced that the idea presented in this article is probably one of the best
ways to introduce children to computers, you can easily try it in your school or for your
children. One option for you is certainly to get in touch with SPARK Institute (in Pune)
to discuss how you can start such a program. You can also learn about it on your own.
The idea of "learning through programming" itself is not a recent invention; it's been
around for a number of years. There is a huge amount of material available on the
Internet. Please see the lists of references listed below.

Before you start a programming course at your school, the most important points to
remember are:
• The philosophy behind teaching programming (that programming is for the sake
of learning a new way of thinking, and to develop interest in subjects like Math),
• Choosing an appropriate programming environment (which is interesting, easy to
learn, and rich with learning metaphors), and
• Using the proper teaching methodology (in which exploratory hands-on learning
takes precedence over blackboard-based rote teaching).

References:
1. Mindstorms: Children, Computers, and Powerful Ideas by Seymour Papert (2nd
Edition) - this book discusses the idea of "learning through programming" in great
detail
2. http://el.media.mit.edu/Logo-foundation/ - web site dedicated to Logo programming
3. http://www.cs.berkeley.edu/~bh/v1-toc2.html: Computer Science Logo Style Volume
I, Second edition, by Brian Harvey - a free book on Logo programming
4. Learning to Program with Alice, by Wanda Dann, Steve Cooper and Randy Pausch
5. http://www.alice.org - foundation dedicated to the ALICE programming environment
6. http://www.spark-institute.com - organization dedicated to helping children learn
through programming.

You might also like