Other Articles‎ > ‎

Fun at Programming Puzzleland!

Sharing an Addiction – the Python Challenge

Since I am currently in the learning profession (aren't we all), a topic of intense interest to me is, well, learning. For the last two months, I have been addicted to the Python challenge (www.pythonchallenge.com). I have learnt a lot in the process or improved my understanding of what I thought I knew. I still have a long way to go as I am only half way through the 33 levels available today. I am just one of the over 200,000 programmers who have at least tasted its fruit.

The site is a series of programming puzzles. Though the solutions are geared towards Python, the puzzles can be solved without resorting to Python. The concept is brilliant and the execution is excellent.

It is very tempting to discuss some of the levels and the frustrations of trying to solve the puzzles when the mind goes off in a wrong track but that would be a spoiler. It would have been very difficult to bring the mind on the right track without the fascinating hints forum. At times interacting with friends can help. I was stuck at level 0 until my son gave me a hint which made me realise that I was overlooking the obvious!

Solutions are available; however, to reduce the temptation of peeking, you can see the solution only after you have solved the puzzle. It is exciting to learn alternate scripts for achieving the same goal, including perl one liners. Incidentally, the perl one liners make me love Python even more.

The concept of each level is simple. The result of each level is a word which is a part of the url of the next level. Each level, often, incorporates ideas introduced in earlier levels.

What fascinates me is that why am I unable to work equally intensely on several other application areas which I feel I should learn. It is all the more fascinating when I consider the pained or bored look on the students' faces in classes at times. I reconcile myself that if Amitabh Bacchan can't prevent me from being bored occasionally in a 3 hour movie, what hope do I have in 45 hours of lectures.

May be this site holds the key for all future learning. The role of the teachers would be to create the puzzles and give hints. And the student gets his degree once he has solved a series of puzzles for each of the 48 or so subjects! For any person who has gone through such a program, the difference between copy and deep copy will be as clear as daylight.

And now for something completely different – is that Math?

Seymour Papert, creator of the LOGO programming language, raises the following analogy. Lots of students have a problem with a foreign language. Yet, we never say that the student has no head for, say, French. We know that if she were born or brought up in France, she would have been perfectly at home in French. So, why do we insist on saying that a student has no head for mathematics? Our problem is that we have not been able to create a mathland.

An attempt to solve this problem is a venture called Squeakland (www.squeakland.org) by Alan Kay, of the Smalltalk fame, and collaborators. Squeak (www.squeak.org) is an open source implementation of Smalltalk and Squeakland is a “media authoring” tool for kids – its motto is 'come play and learn with us'.

This site may not be directly for us but definitely for our nieces and nephews, when they are first exposed to the boredom of schools and have to learn to live with Monday morning blues.

Using squeakland is as easy as using paint. A child draws using paint brushes, colours, etc. The difference is that the drawing is composed of objects and a child can program the actions of each object. This introduces animation and dynamic behaviour. E.g. in the Wallflower project, “learners will go on an excursion in which they figure out how to navigate a maze. They will then apply what they learned on their excursion to writing a script for a robot to solve a maze. This introduces the idea of algorithms and problem solving skills.”

Another project for 5th graders, helps students to understand how an ecosystem works, to see an example of the predator-prey relationship, and to examine how conditions of the ecosystem affect the different species living within it.

In another project, students could deduce the laws of gravity on the surface of the earth by examining a frame by frame position of a falling object. In this class 10 year olds could understand gravity while in a survey, some 70% of the college students in US had trouble. It isn't just the US. Try asking friends, whether a steel ball or a wooden ball will fall faster!

While at it, try Kedama. It can be used to create simulations involving 10s to 10,000s of particles (objects) that might represent atoms, ants, bacteria, or systems of human interaction and allow us to study random and/or organized behaviour. I experimented with an ants model using Netlogo (http://ccl.northwestern.edu/) and it is fascinating how the complex and seemingly intelligent, collective behaviour of ants can be understood as a system of simple interacting objects.

Please read the articles of Alan Kay, e.g. “Computers, Networks and Education” available on the site and help some youngsters get started. As the site mentions, kids develop a deep understanding of big, complex ideas by interacting with objects in Squeak. Once they understand the complex ideas, they will build a better tomorrow.