While working on a Additional Qualification in Computer Programming I created a set of lesson plans about programming Conway's Game of Life. These were aimed at a Grade 12 programming class that was learning about arrays but hadn't yet learned how to create their own classes and objects.
Writing code to create visual output and dynamic systems is a powerful way to learn about programming. Students see the results of their work. But what language would help students to learn most easily?
See the code:
Processing is a great open source tool for creating visual programs. But it's Java syntax and data structures and it's lack of a interactive interpreter really makes me miss Python. Python on the other hand is a great language for learning programming and handling data but falls shorts in the area of graphics libraries (though this is changing).
For the lesson plan project I decided to create Conway's Game of Life in both Processing and Python to see how the two compared. For the Python code I utilized Jython, a version of the Python interpreter written in Java. From Jython it is possible to import Processing libraries and then write Python that executes in Processing.
In the end I found that this mode of programming in Python left a lot to be desired. Bugs were harder to trace and using the interpreter was a bit more difficult. But the Python code certainly felt more natural and simpler. Processing on the hand was able to run far faster and it was much easier to use external libraries such as P5 to create some controls to adjust various parameters.
In the end I feel they are both great tools for the classroom. I will be keeping my eyes on any efforts of marrying the two systems.
UPDATE: I did a quick translation into PyProcessing - a Processing like implementation written in Python and using Pyglet. It worked very nicely and ran about as quickly (highly unscientific testing here) as the Jython version. Something felt more comfy too - this was Python, the real deal.