In January 2009, Bryan Berry proposed an "opinionated" activity framework that would make it easier to create interactive educational materials. Berry, the technology director for Open Learning Exchange (OLE) Nepal, found the One Laptop Per Child (OLPC) PyGTK activity framework lacking and saw a need to accelerate development by lowering the barrier of entry to creating learning activities. The result is Karma, an open source JavaScript library and framework that builds on standard Web technologies.
Rather than emphasizing integration with Sugar, Berry suggested embracing the most widely used development tools popular in developing countries, namely Web development tools, rather than platform-specific tools like PyGTK or other toolkits popular with educational projects. Berry also decided to avoid proprietary technologies like Flash that are widely used in creating educational content.
As a result, the Karma framework is based on JavaScript, HTML5, and
SVG. This means that Karma only requires an HTML5-capable browser like
Firefox or Google Chrome for users. Developers only need a text editor and Web browser to get started, and free tools like Inkscape to create graphics. Having Git also helps, as the framework is hosted on Gitorious. Eventually, the project should also support storing a student's work via Sugar's Journal and provide collaboration through the Telepathy real-time messaging framework.
The other consideration is resource constraints. Since Karma is being targeted at OLPC machines, the activities have to run on low-power machines. OLPC XO-1 laptops come with AMD Geode 433MHz (yes, MHz) CPUs with only 256MB of RAM. The lessons should run within a screen resolution of 1024x768, minus browser UI, and can feature images in JPG, PNG, or SVG. Developers can also include sound in Ogg Vorbis, but video is not yet supported (though it is on the roadmap).
Karma and lessons are being worked on by SugarLabs and OLE Nepal. OLE Nepal is currently in the second phase of an OLPC pilot test, which has rolled out OLPC machines to 26 schools over six districts. As part of the pilot, OLE Nepal had written 60 lessons in Squeak (an open source version of Smalltalk) which are now being converted to Karma. The lessons are aimed at kids in elementary school, and include math, vocabulary, and geography lessons. According to the most recent meeting notes the group has managed to convert all but 12 of the 60 lessons from Squeak to Karma.
Code from the Karma project is under the MIT license. Lessons and content are licensed under the Creative Commons Attribution Share Alike license, which allows sharing and remixing of content so long as attribution requirements are met and requires distributors to pass along remixes under the same license.
The most recent release came out in early January. The release debuted the Karma API that covers working with audio, images, and the canvas, and a bundle for the XO. For those interested in seeing the fruits of Karma without a code checkout and without an XO at their disposal, the project has several demos on the front page of the Karma site that run just fine in a standard browser.
The Karma web site is a bit disorganized; it spreads out information
between the main page and
sub-pages hosted on the Karma
Education blog, SugarLabs
on Gitorious, and discussions on Google Groups. Once the project is farther
along, some work on making it easier to get the tools and create a setup
without scouring so many different pages will be a real help to developers.
The best way to get started currently is to do a quick Git checkout of the mainline Karma repository and follow Berry's tutorials. For developers familiar with JavaScript and Web development, it shouldn't be difficult at all to start developing lessons. For educators who aren't familiar with Web development, it will be a bit more difficult, though probably easier than PyGTK or other development frameworks.
The roadmap has
0.3 being released around March 31st. This release is slated to have full
i18n support, several lessons that have been translated into three
languages each, the Chakra browsing layout — which is a template for
designing lessons — and a Narwhal build script that will create a bundle with all of the lessons under the Chakra layout.
Want to help move the project forward? The Karma team is actively seeking developers to help out. Discussions are hosted on the Karma.js Google Group, and the developers hang out on Freenode in #sugar and #olenepal, though #olenepal was empty when we checked earlier this week.
The Karma project seems to be on a good track for providing an interactive educational framework. A standard bundle for educational materials that runs in any W3C-compliant browser should be useful not only for students in developing countries using OLPCs, but also suitable for educational use around the world.
(
Log in to post comments)