Report on Summer Camp (or, why we should all go to school)
Report on Summer Camp (or, why we should all go to school)
2007-05-03T12:31:00
About thirty or so kids attended a summer camp organized by the Swathanthra Software User's Group, Malappuram.
The camp was at the `Tharakan School' at Angadippuram, a 100 year old aided school. Students were taught
basic electronics, computer interfacing using Phoenix and elementary Python programming by a group of
"GNU" volunteers for three days starting from April 29. On the last day (May 1st)
of the camp, each student gave his/her feedback and suggestions for improvement. Next, I was asked
to give my feedback. I told the kids that I teach engineering college students - but
I would love to stop that and start teaching school kids! There was loud applause and the students were
all very happy. Yes, I did speak the truth - as a teacher, mentoring these kids for a period of 3 days
gave me far more satisfaction than teaching engineering students for maybe over 9 years. These kids
were genuinely excited about learning new things and they could pick up concepts very fast. My experience
with them makes me believe that the best way to make the Free Software movement succesful in
our country is to take it to the schools - that's were it will really make a difference.
`Angadippuram' (the place where the school is situated) is just about 2 hours journey by train from
Trichur - you have to get down at Shornur and catch the Palghat-Nilambur passenger. We were under
the impression that we would be getting down at a small, village-like place. The impression did not
last long - Angadippuram is a very `modern' town which seems to be the hub of lots of commercial
activities. We reached the school just in time to start the day's programme.
Tharakan school seems to be the oldest in Angadippuram - it's an aided school and as such, operates
under lots of constraints. But the computer lab was fairly well equipped. We were happy to see all
the machines booting into Debian GNU/Linux! About thirty students (there were a few students from other
schools also) sat expectantly - some of them no doubt thinking whether it would be worthwhile sitting
through a `camp' during the summer vacation when they could as well enjoy playing outside!
Hiran started off with an introduction to GNU/Linux. By the time he finished, he had become a hit
with the students - he was their `GNUettan' (Hiran has some other GNUish names too). Hiran asked them
to explain the difference between Windows and GNU/Linux and pat came the reply - GNU/Linux is free
software! But then, Windows too is "free software", isn't it, I intervened. The kids were quick to point
out that with Windows, you don't have certain `freedoms', like the freedom to copy! Another kid jumped
up and asked Hiran to explain the meaning of a `kernel'. Hiran did his best to clarify things. We realized
that we were *not* talking to clueless `software engineers' from Bangalore but to a bunch of really
smart kids!
We were planning to demonstrate some interesting GNU/Linux tools like GIMP, OpenOffice etc - but it turned
out that most of the kids have had some exposure to these things during the past year. So we had a problem
at hand - what do we `demonstrate'? It was then that Sreejith told me why not show them the commandline.
We asked the students to open a terminal and showed them some simple commands like date, echo etc. One
interesting thing which I noticed was that experimentation was something which came naturally to kids
(a few more years of `education' will succesfully wipe out this skill) - nobody had to tell them to try
out `time' once they had seen `date' or try typing commands in upper case - they were trying it out on
their own!
Sreejith had another interesting idea - he asked me to show the kids the `setleds' command (you can use this
command to put the keyboard LED's on/off) - I did so, and they loved it! Now, Sreejith (as well as the rest
of us) were getting even more excited than the kids - he had another crazy idea - why not teach these kids
shell scripting? Write a `while' loop and show them some `blinking LED's'? We went for it and very soon
the kids were experimenting with different blinking patterns all on their own!! They were not bothered
by the fact that they did not clearly understand the concept of a `shell' or the idea of how a condition
gets evaluated - they had seen an example, understood one or two things about it and were ready to find
out things on their own. It is this skill that a good education system should develop and enhance to its
fullest potential.
The GNU/Linux introduction session soon came to end (well, as you have seen, there was little to `introduce')! It
was now time to get the students involved with some basic electronics experiments. Sreejith had downloaded some
cool videos of the Asimo Humanoid Robot - we started playing them
on one of the PC's. Sreejith then started explaining the intricacies involved in engineering a robot like
Asimo. The idea was to get the students prepared to appreciate the concepts which they will be learning during
the rest of the summer camp. Sreejith told the students how the robot learns about its environment by using
`sensors' - how the sensory data is fed into a `computer' and how the computer runs some `software' which
controls the motion of the robot. There was one stunning video which showed Asimo holding the hand of a girl
and walking with her like an obedient little child! When the girl slowed down, Asimo also slowed down - in fact,
Asimo kept pace with her perfectly!
I had taken along with me Ajith's RoboSapien.
It was great fun watching Robo walk, turn and dance!
The basic electronics session was fully hands-on. We did not try to `teach' anything.
We made the students do experiments and draw conclusions on their own. I had taken along a bag full of components,
a few breadboards and three digital multimeters. Thanks to the efforts of Sreejith's sister, a local
electronics shop sponsored a `kit' for each student (a few led's, resistors, a battery holder, a switch,
diodes, transistors). The students were split up into six batches. We handed over batteries and multimeters
and asked the students to measure the `voltage' of the batteries. We showed them how to use a breadboard and
wire up a simple circuit with a battery, an LED and a series resistor. The students changed the value of the
resistor and observed the variation in brightness of the LED and inferred ohm's law directly from experiment. They
found out resistance by reading colour codes and verified the values by checking with the multimeter. Most of the
time, we tried to make them infer/guess as much as they can. Thus, we showed them an LDR, told them that it
is a `light dependent resistor' and asked them to find out how it worked. Within a few seconds, we saw one
fellow reading the resistance of the device after covering it up with his hand and once again, after removing
his hand! Similarly, when we demonstrated a potentiometer and asked them to guess where it might be used,
they were quick to come up with suggestions like `fan regulator'! By the time the first days session finished,
the students were introduced to a few imporant basic components and their working.
The second day's morning session introduced the students to a few more components including the 7805 voltage regulator
and the LM35 temperature sensor. Series/Parallel networks were also experimented with. The afternoon session
was an introduction to Python. Things went off smoothly till the `for' loop was introduced. The kids had
some trouble understanding how it worked. I had asked them to sum up an array using a for loop. But eventually
almost all of them got it right. The afternoon session ended with an introduction to the binary number
system (which was essential for them to write Phoenix code).
The third day's session began with an introduction to Phoenix. Because of time limitation, I thought I would
concentrate only on the digital inputs/outputs. The kids had very little difficulty mapping the abstract
idea of binary numbers to something physical - like voltages coming out of the digital output pins. I just
called write_outputs with different numbers as arguments and asked one of the students to measure the voltage
on the digital output pins. Two or three such demonstrations and the idea was clear! I connected an LED to
one of the digital output pins to light it up - but there was no effect. This was used as an opportunity for
troubleshooting. The kids came out with all the different possibilities - maybe, the LED is not working, the
resistance is too high, the LED is connected in reverse ....
The star attraction of the camp was, however, Sreejith's Phoenix powered battlejeep. Sreejith hacked the
remote control unit of a toy jeep to accept 4 bit commands from the phoenix digital output pins. Just
connect the remote to the phoenix box and execute `write_outputs(1)' and the jeep starts moving forward
very fast. Similarly, write some other numbers and the jeep starts moving in reverse and turning left,
right etc. We gave a small project to the students (and also a small prize to the team with the best
project). We asked them to develop a sequence of commands to make the jeep move in some interesting manner. One
team developed a sequence for an "H", another for an "8" and so on. The teams were asked to `formally'
present their ideas. During his team's presentation, one fellow showed how to control the average speed
of the jeep by sending variable length on-off sequences; he has `discovered' PWM!
The camp ended with a small presentation on using Phoenix for physics experiments (it's original
purpose). This was basically meant for the two Physics teachers present in the audience. These
two school teachers had sat through all the sessions doing experiments along with the kids. The kind
of enthusiasm they have shown makes me believe that everything is not lost yet. We need many many more
such teachers.
Many times during the camp, I had asked the students
what they wanted to be in the future. A few boys responded by telling me that they wanted
to become Software engineers, electronics engineers etc. There was no response from the girls.
But when it was time to give us feedback, one girl came up and told us that she had no definite
career plans - but if she gets a chance to study further, she will become an engineer!
Yet another girl told us that she will become a teacher! If it was this summer camp with GNU/Linux,
Phoenix and Python which motivated such a response, then we should indeed be happy!
Update: Check out Hiran's report
Pramode C.E
Sun Nov 9 05:46:31 2008
Thanks for the feedback, Appu!
Appu Sajeev
Sun Nov 2 16:14:33 2008
Kool sir,,,,,really nice to see this sort of a teaching method...i wish if our electronics labs were like this...Over time ec lab has become nothing short of a nightmare ,to be frank....for many a time,we dont get the expected outputs and stuff like that,we are forced to do some crap without really knowing what we are doing and what is their applications and stuff [for eg. before teaching abt voltage followers and op-amps,we had to do and experiments about voltage followers,inverting and non-inverting amplifiers and stuff like that using 741 Ic] .... Good that you are following the right method