Sunday, September 5, 2010

Announcing - The Kojo Learning Environment

Time seems to be flying by. It's been almost two years since my last post! I need to make sure that I write (much) more frequently going forward.

I have been busy for the past many months working on a educational tool: The Kojo Learning Environment. It's finally time to announce it on my Blog!

Kojo is (hopefully) a fun and friendly graphical environment for playing with:
  • Beginner level Computer Programming - using a Logo like environment.
  • More advanced Programming - using a Processing like environment.
  • Mathematics - inside a Geometer's Sketchpad like Virtual Lab.
Kojo is also a super REPL for Scala (I use it for all my Scala REPL needs).

Check out Kojo when you get a chance, and let me know what you think.

Upcoming posts (this is just to make sure that I do write them, given that I've just announced them!):
  • Using Scala's XML literal support as a (very powerful, in my mind) web templating tool.
  • Automated web testing with Swill (a Scala based tool that I have cooked up, along the lines of Twill in Python, using HttpUnit).
Both of these items are being used in the development of the Kogics website (to power upcoming collaborative features for Kojo).

Thursday, December 18, 2008

A plunge into UI programming with Scala

Over the last couple of month, I have been working part-time on a new project: Kogics. The basic idea behind Kogics is to provide educational games and tools for kids. Even in this early stage of its life, Kogics has started to be pretty useful. I am using it to help my seven year old daughter practice her arithmetic skills. I have also been using it in evening computer-fun sessions with kids in my neighborhood in Dehradun, India. And Kogics is being used at a couple of schools in India as part of the Samvedna project.

The games on the Kogics website are written in Scala, and are deployed as applets. Yes - you heard that right: they're deployed as applets! I last wrote an applet sometime in 1996, in the early days of Java. And I have never really done anything much with Swing. But I must say that Swing programming has turned out to be surprisingly pain-free, especially with Scala adding a nice fun (and power) factor to the mix. The Java runtime, as of JRE1.6u10 onwards, has (so far) turned out to be a pretty good way to deploy rich content on the web, despite the bad rap that it has in this area. Proguard is the magic sauce that makes all of this work in an efficient fashion, with applet sizes in the 20-30k range.

To see what I have been upto, check out the following:
The Addition Game
The Subtraction Game

Feedback is welcome (especially if you have kids).

And did I mention - I'm hosting parts of Kogics on the Google App Engine (the rest of Kogics runs on Wikidot). This has made me go off and start learning Python - which is currently the only language supported by the App Engine. It's been good fun so far. More on this in future posts...

I am planning to put in a lot more interactive stuff on the Kogics website in the coming weeks and months. As my proficiency with 2D graphics, UI development, and game-programming (goes up from zero and) increases, I'm hoping to create some pretty interesting and useful games and tools. Stay tuned!