Karma: Difference between revisions
No edit summary |
No edit summary |
||
| Line 23: | Line 23: | ||
* Karma is the evolution of OLE Nepal's work on the EPaath suite of lessons in Nepal | * Karma is the evolution of OLE Nepal's work on the EPaath suite of lessons in Nepal | ||
* Karma is designed with pervasive and easy internationalizaton in mind and integration with moodle, particularly for monitoring student progress | * Karma is designed with pervasive and easy internationalizaton in mind and integration with moodle, particularly for monitoring student progress | ||
* Karma is pedagogically agnostic | * Karma is pedagogically agnostic. Pedagogy choices are left to the lesson author. | ||
=== What Karma Isn't === | === What Karma Isn't === | ||
| Line 32: | Line 31: | ||
* Karma is not meant as a basis for a WYSIWG programming environment like TurtleArt, EToys, or Logo | * Karma is not meant as a basis for a WYSIWG programming environment like TurtleArt, EToys, or Logo | ||
* Karma is not built to support browsers that do not support html5, such as Internet Explorer and Firefox < version 3.5 | * Karma is not built to support browsers that do not support html5, such as Internet Explorer and Firefox < version 3.5 | ||
* Karma is not intended to teach programming to children though it could be used as such | |||
=== Design Philosophy === | === Design Philosophy === | ||
A Karma lesson is composed of an xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even novice | A Karma lesson is composed of an xhtml5 document, javascript code, and css stylesheets. Karma should be very easy for inexperienced developers to understand and work with. Even non-programmers should be able to make visible changes by tweaking the code and liberal use of cut-and-paste. Complexities such as integration with pootle, local storage, and certain types of animation should be abstracted so that novice developers don't have to understand them in order to effectively use Karma. Karma strictly adheres to the Model-View-Controller Pattern and similarly to unobtrusive JavaScript. In essence. you should be able to substantially change the look and feel of a Karma lesson by modifying the CSS without having to understand the JavaScript code. | ||
=== Technical Architecture === | === Technical Architecture === | ||
* | * Run-time - Karma will work with basic functionality on any W3C standards-compliant browser that supports HTML5 tags canvas and audio. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. | ||
* Primary Programming language - Javascript (?version?) Karma depends heavily the javascript library jQuery, version 1.3. | |||
Karma will work with basic functionality on any W3C standards-compliant browser. This notably excludes Microsoft's Internet Explorer. Karma will be particularly tailored to work within Sugar's [[Browse]] activity. Longer-term we hope to extend Karma to take advantage of Sugar's collaboration features. | * i18n -- Pervasive internationalization is a critical part of Karma | ||
** Supported types of i18n | |||
Karma depends heavily the javascript library jQuery, version 1.3. Karma | *** Output of Native Digits | ||
*** Image switching per locale | |||
*** Regular text, though it is unclear how to support plural forms, grammar shifts, and gender | |||
*** Audio switching per locale | |||
** Integration with pootle | |||
* Journal, Telepathy Integration -- method to be determined | |||
* Moodle Integrationn -- method to be determined | |||
* High-Level layout of a lesson | |||
lesson_name/ | |||
index.html # valid xhtml5 -- markup only includes visual elements and links in other resources, no inline code or styling | |||
css/ # css files -- all control of presentation done in CSS | |||
karma.css # default stylesheet for Karma | |||
lesson_name.css # custom stylesheet for lesson | |||
js/ # javascript files | |||
karma.js # common javascript functions for a Karma lesson | |||
jquery.js, jquery.growl.js # utility functions from jquery | |||
lesson_name.js # javascript controlling logic for the lesson | |||
po/ # translation files | |||
ne_NP.po # example translation file for US English | |||
sp_ES.po # example translation file for traditional Spanish | |||