Software ideas

From OLPC
Revision as of 12:05, 28 October 2007 by Gobo Fraggle (talk | contribs) (Language)
Jump to: navigation, search
  english | 日本語 HowTo [ID# 73839]  +/-  
Projects and proposals    +/-
Content ideas Content projects
Hardware ideas Hardware projects
Software ideas Software projects

See also Category:Software ideas

This page is a brainstorming space for ideas which may eventually become Software projects. Keep in mind that the projects here are merely proposals or ideas. If you would like to add a new project idea, try to be reasonably thorough in your description.

When brainstorming, try to let your mind run free. When reading and looking for a project to start, keep in mind that we are looking for projects that encourage Playful Learning instead of Edutainment.

This section discusses whole application-classes that might be useful to have available on the OLPC laptops. That is, these are "requirements"-focussed ideas for what type of thing we want to provide. For many of the application classes there are existing PyGTK-based applications available that could be ported to Sugar (Sugarised).

Also, think about frameworks rather than just individual applications. Don't build MySpace. Instead, build a toolkit that could be used to build MySpace-like applications.

If you want to work on one of these ideas, add a section to the Software projects page describing your project (or just add your name below with contact information so that other interested people can contact you to organise into a project, or create a link to a Wiki page with more description about what you figure needs to be done):

Mathematics

  • Simple Calculations
  • Data Analysis and Visualization (as opposed to statistics)
  • Fractran interpretor in C from ADA graph language
  • Basic Calculators (e.g. GCalculator)
  • Spreadsheet software ( see request:Ban_Samkha )
    • Financial tools
    • Budgeting
    • Loan calculators
    • Accounting software
  • Higher mathematics
  • Financial Literacy
    • Cash vs. Credit
    • Banking
    • Interest and Borrowing
    • Basic Accounting
    • International Monies
  • Applied Mathematics
    • Digital Signal Processing (filters, echo, etc. in Electronic Music, voice-changer game, etc.)
    • Motion simulation (rocketry, planetary-motion)
    • Estimation through sampling (e.g. the total height of all the children, based on a sample)

Language

Science

  • Starfield explorers
  • Chemical simulators
  • Physics simulators (Newtonian)
  • Biological simulators (population simulators)
  • Genealogy software (e.g. Gramps)
  • Dynamic system simulators (e.g. ecological simulators, economic simulators)
  • Geography (mapping) software, coordinates, maps, data-overlays, GIS operations
  • Data collection tools
  • Unit conversion tools (e.g. GConvert)
  • Time-lapse photography tool
  • Photogrammetric Astronavigation (i.e. analyzing pictures of the night sky to determine the child's location)

Physical Education and Training

Art and Expression

  • Vector graphic creation (illustration)
  • Raster graphic creation (painting, sketching)
  • Collage operations (eToys?)
  • Programmatic creation (Logo or the like)
  • Video creation
    • Animation
    • Stop-motion
  • Art History Studies
  • Performance broadcast (school plays and the like)

Music

  • Voice/Ear training (e.g. Solfege)
  • Score display and creation (TamTam?)
  • Instrument tuning (e.g. guitar)
  • Viral OLPC Startup Sounds - edit short jingles and share them them with network neighbours. They could also "mutate" with each copy

Communications

  • VoIP phone
  • Conferencing system, virtual classroom, shared presentations
  • Email client (gmail-for-children?)
  • Voice-mail (voice email and standard voicemail)
  • Web-page editor (wikidpad?)
  • Televised video (streaming video viewer)
  • Blog Tool

For more school-to-school and internet-school communication, see the Internet and Radio and broadcast pages for a whole list of internet and non-internet communication methods, some of which would make good software-projects. This includes things like Sneakernet (moving files between schools and to an internet-computer on CD/DVD/Flash Drive, aided by routing software), one-way file broadcasting, etc.

Educational

  • Role-playing systems
  • Mind-mapping systems (outliners, free-form note-taking tools, e.g. Labyrinth, Gjots, )
  • A learning management system and collaborative work environment, for school servers. Moodle or similar.
  • A groupware for project development and management, for school servers. Egrouware or similar
  • A repository system for multimedia content in school servers
  • A wiki engine for school servers
  • Drill and test software (Yes, even on a constructivist machine - follow the link for discussion)
  • Software for supporting teachers' use of rubrics

Games (see also Games)

  • Game framework: Multi-player, multi-team game architecture, so kids can make up their own games.
  • Game console emulators (needs content)
  • Strategy Games
    • Turn-based
      • Go, Reversi
      • Chess (e.g. PyChess)
      • Checkers/Chinese Checkers
      • Oware
    • Real-time Strategy
    • Simulation Games
      • SimCities
      • Pioneer / Oregon Trail
      • SimBusiness - (Lemonade Tycoon, Theme Park Tycoon, etc.)
  • eToys Games
  • Puzzle Games
    • Crosswords
    • Jigsaw Puzzles
    • Word Searches
    • Word Jumbles
    • Hangman
    • Sodoku (e.g. Python Sodoku)
    • Rube Goldberg-like puzzles (e.g., The Incredible Machine)
  • Card Games
  • Tournament framework: Allow kids to easily set up and manage a tournament
  • Text-driven Adventure Games for 2nd language learning - Multi-user with pictures or 3D rooms.
  • Massively Multiplayer Online Games for 2nd language learning - involving native speakers via the internet.

Play (like games, without winners and losers)

  • Peek-a-boom
  • ESP
  • There is a literature of this kind of social team-building play. For instance, adapt ideas from No Contest by Alfie Kohn.

Technology

  • Microcontroller programmers/compilers (e.g. for irrigation systems, art installations and general automation)
  • CAD/CAM applications (e.g. PythonCAD)
  • BuddyBrowser - a safe, fun hybrid web browser/search engine/protal made especially for kids 4-10 allowing kids to surf all of their favorite kid-appropriate sites, without accidentally running in to inapporporiate material. Download at www.buddybrowser.com
  • Source-code editor with transparent native-language display.
  • Sharable interactive disassembler for Linux ELF x86, FLASH ActionScript bytecode, wireless firmware, Python *.pyc files, 8051 firmware, and other things found on the laptop. It can be the ultimate fall-back "show source" operation. Interactive disassembly is particularly well-suited to being a shared activity; as each person defines things (code or data, function name, data structures, etc.) the shared understanding becomes clearer.
  • Distributed WEP key cracking over the mesh, allowing a group of XO users to share the work of obtaining an internet connection.
  • Map making software, allowing kids to make decent maps from poor-quality measurements. For example, measuring some distances or angles around a garden or playground should allow the creation of a map. (angles alone gives you no scale of course) The software could treat the distances as springs, then try to find the least-stress deformation that allows all the numbers to work out.

PIM

  • Clock
  • Contacts
  • Scheduling
  • To-do lists
  • Personal Wiki (eg TiddlyWiki)
  • juwo (please see http://juwo.com. I shall need help porting it to Linux)

Teaching Software

eXe - an XHTML-Editor for creating E-Learnings. (You do not need any programming knowledge, an pretty easy tool: http://exelearning.org/)

Scratch - I think the OLPC team should consider the idea of including a version of Scratch in the OLPC machines. Created by the MIT, it's free, and it's an excellent and graphical way to create animations and games, to learn logic and how to program machines (specially for kids !), with no need of complicated instruction code : you make all by mouse clicks, and with a pretty interface. Try it, and you'll like it !

Indeed. The Scratch folks are porting it to OLPC. I've just now created a stub Scratch page. Good thought. :) MitchellNCharity 17:02, 4 August 2007 (EDT)

I draw your attention to vpython.org, where VPython = Python + numpy + Visual + OpenGL.

The Visual module lets even novice programmers create mouse-navigable 3D animations, by making 3D graphics a side effect of Python calculations. This can be a highly enabling environment for kids. At an upper level, currently several thousand college students are writing VPython programs every semester in an introductory physics course at various institutions that include NCSU, Purdue, and Georgia Tech (see physics course).

This is free open-source multiplatform software and runs on Linux, Windows, and Mac.

There currently is a production version based on gtk1 and numeric and a beta version based on gtk2 and numpy. Most of the user base is on Windows and Mac, so the beta version hasn't gotten a lot of testing on Linux but seems to work fine (the Windows version is buggy, which is why the beta version hasn't been promoted to being the production version). The beta version adds the capabilities of transparency, surface textures, and sophisticated lighting (spotlights, specular highlights).

Here is a complete runnable VPython program that displays a yellow brick beside a red sphere (pos is 3D position):

from visual import *

box(pos=(2,0,0), size=(2,6,1), color=color.yellow)

sphere(pos=(-2,0,0), radius=1.5, color=color.red)

Holding down the right mouse button, you can rotate the "camera" around the scene. Holding down both buttons you can zoom in and out.

The beta version being based on gtk2 and Pango does provide some internationalization, but the Python program statements currently have to be written in English. For example, the object names "box" and "sphere" and their attributes are all English words. Obviously one could recompile the C++ code to change these names.

I'm the gatekeeper for this open-source project and have contributed to its development. Bruce Sherwood 12:15, 30 September 2007 (EDT)

System Software

Cultural

  • Recipe-managing (allowing kids and parents to create and share recipes with friends and world. eg Gourmet Recipe Manager)

Social and collaborative

  • Multi-person simulations of markets, agriculture, government.
  • Yahoo Answers
  • IM, chat, Skype
  • Multi-person simulations of physics, biology, population,
  • Wiki-like group drawing tools
  • Wiki-like group music tools.

Porting Existing Software

This section explores existing applications that could be ported to the laptop in order to provide the functionality for the children. The List of PyGTK Applications is a good place to start. If you are porting an application, you'll want to contact the author and add an entry to the Software projects page describing the porting effort (and providing contact information for it).

Mathematics

  • Calc for more basic tasks, BC for more difficult ones, and SC or a GUI based spreadsheet, perhaps.
  • LaTeX, this is free and powerful typesetting system creating beautiful documents
  • Mathematica for children, for modeling and calculating

Updates

  • An update/software manager to handle updates and new software that come out after the laptop is given to the child

Software for scheduling activities

Teachers sometimes find it hard to supervise mixed-ability groups, since each child learns at a different rate. There is a commercial program called Supermemo (an abbreviation of Super-Memorization), which demonstrates a Spaced repetition technique that might be used to schedule the learning-activities for each child. An open-source program similar to this might be found/written. It could be used, for example, to remind children to review and update mind-maps to stop knowledge fading from memory, which was acquired originally through constructionist activities.

(Further discussion of this concept, and why it does not necessarily clash with constructivism, moved to Drill and test software)

Mindstorms robot simulations

Seymour Papert, the father of constructionism and a leading-light of OLPC, wrote the book 'Mindstorms: Children, Computers, and Powerful Ideas'. The 'Mindstorms' name was licensed to Lego for their range of Lego Mindstorms NXT robots, programming software, motors, controllers, etc.

It would be good to see whether the OLPC could have some software simulation of Mindstorm-type activites (building and programming robots and sensors, production-lines, light/sound-detectors, etc). Since it might infringe some Lego intellectual property rights, the OLPC project could negotiate with them to see if any part of the Mindstorms ideas can be used for free, perhaps in exchange for some more advice on advances in constructionist education and activities. It shouldn't undermine their sales much, since children in Europe and North America prefer the physical toys to on-screen simulations.

FreeDOS

I think the pseudo UNIX operating system GNU should be replaced with a fantastic DOS. FreeDOS is simple, effective, small and fast. It is also open source, just like GNU and its Linux kernal.

External links

Audio/Video edition of NGO-in-a-Box A set of Free Open-Source Video and Audio editing software-tools, documentation and tutorials for Non-Governmental Organizations and other groups for social change. They are available on CD or by download.

See also:

The "software ideas" category below contains many pages not yet indexed here.