An ever so slight diversion from Agile – Good quality programming is still the key to a successful software project. Sure, we need process, testing, stories, etc. At the end of the day, though, we still need code – the stuff that does the stuff we need.
Despite all we’ve learned about abstraction, objects, coupling, cohesion, etc. over the past many years, I am still surprisingly disappointed at the lack of engineering that goes into software that many people develop every day. Meanwhile, interest in Computer Science as a college major and a profession continues to be below levels of a few years ago. This generation of kids are computer savvy, yet few show interest in developing software. Old school teaching techniques may not be capturing the creative interest of today’s youth.
A professor from Southeast Oklahoma State University recently introduced me to Alice – a computer science learning environment developed collaboratively by Carnegie Mellon University with Electronic Arts. Students learn object oriented programming through a visual world. They select objects from a library, drop them into their world, and execute methods to cause them to behave. Clicking “Play” brings their program to life, as the objects in their world interact with one another in accordance with the student’s programmed instructions.
The user interface is pretty and user friendly, and programming is done predominantly through drag-and-drop, rather than typing. The characters and objects in this world are provided by Electronic Arts, which users of the Sims games may find familiar. This environment is perfect for visual learners, which many of us are.
Best of all, Alice is free, and there are versions for both Mac and Windows. The current release of Alice (version 2.2) uses a pseudo object oriented language. The next release (3.0) provides support for Java. Check it out at www.alice.org.