Difference between revisions of "Summer of Code/2014"
Jump to navigation
Jump to search
Line 14: | Line 14: | ||
! !! Title !! Mentor !! Project | ! !! Title !! Mentor !! Project | ||
|- | |- | ||
− | !valign=top | [[File:python-logo.gif|90px|thumb| | + | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" |Port to Python3 ||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| |
;Brief explanation: There are many reasons to port Sugar to Python 3, not the least being its support for internationalization (unicode) is greatly improved over Python 2 (Very important as we have users in >100 languages). There is a good discussion of strategies [http://docs.python.org/3/howto/pyporting.html here]. The first task will be to work with the core developer team to decide on a strategy: writing Python 2/3 compatible source or a pure port. Once that decision is made, the remainder of the work will be to do the port itself. Developing a robust test suite is a must. | ;Brief explanation: There are many reasons to port Sugar to Python 3, not the least being its support for internationalization (unicode) is greatly improved over Python 2 (Very important as we have users in >100 languages). There is a good discussion of strategies [http://docs.python.org/3/howto/pyporting.html here]. The first task will be to work with the core developer team to decide on a strategy: writing Python 2/3 compatible source or a pure port. Once that decision is made, the remainder of the work will be to do the port itself. Developing a robust test suite is a must. | ||
;Expected results: Support for Python 3 in Sugar Core and a Porting Guide for Sugar Activities. | ;Expected results: Support for Python 3 in Sugar Core and a Porting Guide for Sugar Activities. | ||
;Knowledge prerequisite: Strong background in Python | ;Knowledge prerequisite: Strong background in Python | ||
|- | |- | ||
− | !valign=top | [[File:python-logo.gif|90px|thumb| | + | !valign=top | [[File:python-logo.gif|90px|thumb|center]] ||valign=top width="15%" |Activity Unit Tests||valign=top width="15%" | Walter Bender and Daniel Narvaez||align=left valign=top| |
;Brief explanation: While we have been vigilant about developing tests for most of Sugar core, we have only just begun to scratch the surface regarding test suites for Sugar activities. This project is to develop unit and UI test suites for all of the [http://download.sugarlabs.org/sources/sucrose/fructose/ "Fructose"] activities – those activities that are shipped as part of every Sugar distribution. | ;Brief explanation: While we have been vigilant about developing tests for most of Sugar core, we have only just begun to scratch the surface regarding test suites for Sugar activities. This project is to develop unit and UI test suites for all of the [http://download.sugarlabs.org/sources/sucrose/fructose/ "Fructose"] activities – those activities that are shipped as part of every Sugar distribution. | ||
;Expected results: A suite of unit and UI tests for the Fructose Activities and a Testing Guide for Sugar Activities. | ;Expected results: A suite of unit and UI tests for the Fructose Activities and a Testing Guide for Sugar Activities. | ||
;Knowledge prerequisite: Strong background in Python, GTK3 | ;Knowledge prerequisite: Strong background in Python, GTK3 | ||
|- | |- | ||
− | !valign=top | [[File:JS-logo.png|90px|thumb| | + | !valign=top | [[File:JS-logo.png|90px|thumb|center]] || valign=top |JavaScript Collaboration for Sugar || valign=top | Manuel Quiñones ||align=left valign=top| |
;Brief explanation: Sugar has promoted JavaScript/HTML5 to be a first-class development language, on par with Python. Lots of work to do to make this ready for prime time. Specific to this project is the development of a collaboration model that includes both the mechanisms for identifying potential collaborators and the mechanisms for sharing between activities. The first step is to agree upon a collaboration strategy with the developer team; then implement that strategy. | ;Brief explanation: Sugar has promoted JavaScript/HTML5 to be a first-class development language, on par with Python. Lots of work to do to make this ready for prime time. Specific to this project is the development of a collaboration model that includes both the mechanisms for identifying potential collaborators and the mechanisms for sharing between activities. The first step is to agree upon a collaboration strategy with the developer team; then implement that strategy. | ||
;Expected results: Rich, intuitive collaboration between JavaScript Activities and an update Guide for Developing Sugar Activities in JavaScript. | ;Expected results: Rich, intuitive collaboration between JavaScript Activities and an update Guide for Developing Sugar Activities in JavaScript. | ||
;Knowledge prerequisite: Strong background in JavaScript | ;Knowledge prerequisite: Strong background in JavaScript | ||
|- | |- | ||
− | !valign=top | [[File:Cordova_sugar.png|90px| | + | !valign=top | [[File:Cordova_sugar.png|90px|center|thumb]] || valign=top | Cordova/PhoneGap container for Sugar || valign=top | Lionel Laské ||align=left valign=top | |
;Brief explanation: The idea is to allow Sugar Web Activities to use device dependent features. In this objective, the project will be to transform Sugar into a Cordova/PhoneGap container and to implement major PhoneGap features. Shortly, the project is to add Sugar as new supported platform for Cordova/PhoneGap. Lists of Sugar features that could be exposed to Sugar Web Activities using Cordova/PhoneGap will be: Camera, Audio/Video capture, Accelerometer, Connection, Events, File, Globalization, Media. During the project, the student will also have to demonstrate its work by writing some sample activities using device features. Examples of activities include a Record-like activity or a Level-Tool-like activity. | ;Brief explanation: The idea is to allow Sugar Web Activities to use device dependent features. In this objective, the project will be to transform Sugar into a Cordova/PhoneGap container and to implement major PhoneGap features. Shortly, the project is to add Sugar as new supported platform for Cordova/PhoneGap. Lists of Sugar features that could be exposed to Sugar Web Activities using Cordova/PhoneGap will be: Camera, Audio/Video capture, Accelerometer, Connection, Events, File, Globalization, Media. During the project, the student will also have to demonstrate its work by writing some sample activities using device features. Examples of activities include a Record-like activity or a Level-Tool-like activity. | ||
;Expected results: Rich media and sensor support for JavaScript Activities and an update to the Guide for Developing Sugar Activities in JavaScript to reflect the new APIs. | ;Expected results: Rich media and sensor support for JavaScript Activities and an update to the Guide for Developing Sugar Activities in JavaScript to reflect the new APIs. | ||
;Knowledge prerequisite: Strong background in JavaScript | ;Knowledge prerequisite: Strong background in JavaScript | ||
|- | |- | ||
− | !valign=top | [[File:Microphone.svg|90px| | + | !valign=top | [[File:Microphone.svg|90px|center|thumb]] || valign=top | Voice Interface || valign=top | Martin Abente Lahaye ||align=left valign=top| |
;Brief explanation: Speech-recognition technologies are interaction mechanisms that, nowadays, have evolved from "alternative" to "extended". Proof of this is the proliferation of such technologies in a wide range of domains. From smartphones assistants, medical-record transcriptions, smart cars, and TV command controls to many others. In this regard, not much have been seen in the education domain. This is could be due the fact that there is still a missing glue between the speech-recognition technologies and educational content developers. This project is about filling the gap –within the Sugar Learning Platform. | ;Brief explanation: Speech-recognition technologies are interaction mechanisms that, nowadays, have evolved from "alternative" to "extended". Proof of this is the proliferation of such technologies in a wide range of domains. From smartphones assistants, medical-record transcriptions, smart cars, and TV command controls to many others. In this regard, not much have been seen in the education domain. This is could be due the fact that there is still a missing glue between the speech-recognition technologies and educational content developers. This project is about filling the gap –within the Sugar Learning Platform. | ||
;Expected results: | ;Expected results: | ||
Line 42: | Line 42: | ||
;Knowledge prerequisite: Strong background in Python; some experience with either PocketSphinx or Voxforge | ;Knowledge prerequisite: Strong background in Python; some experience with either PocketSphinx or Voxforge | ||
|- | |- | ||
− | !valign=top | [[File:Headwand.jpg|90px| | + | !valign=top | [[File:Headwand.jpg|90px|center|thumb]] || valign=top | Assistive Interface || valign=top | Andres Aguirre ||align=left valign=top | |
;Brief explanation: Alternative input devices allow individuals to control their computers through means other than a standard keyboard or pointing device. Examples include smaller or larger keyboards, eye-gaze pointing devices, and sip-and-puff systems controlled by breathing. Using a base sensor package, the goal of this project is to provide an alternative physical-sensor interface to the Sugar desktop for people with limited motor control. The project will require an intervention into both the Sugar toolkit and Sugar core to ensure that the necessary hooks for ATSPI. The first task will be to survey the Sugar suite to find holes in the UI; the second task is to develop a work plan in conjunction with the Sugar developer community; the third task is to implement that plan; finally, arrange with the mentor to deploy the results with our target audience for feedback. | ;Brief explanation: Alternative input devices allow individuals to control their computers through means other than a standard keyboard or pointing device. Examples include smaller or larger keyboards, eye-gaze pointing devices, and sip-and-puff systems controlled by breathing. Using a base sensor package, the goal of this project is to provide an alternative physical-sensor interface to the Sugar desktop for people with limited motor control. The project will require an intervention into both the Sugar toolkit and Sugar core to ensure that the necessary hooks for ATSPI. The first task will be to survey the Sugar suite to find holes in the UI; the second task is to develop a work plan in conjunction with the Sugar developer community; the third task is to implement that plan; finally, arrange with the mentor to deploy the results with our target audience for feedback. | ||
;Expected results: Expanded coverage of ATSPI throughout Sugar Core; a working prototype that can be tested in the field; an Assistive Technology Guide for Sugar Activity Developers | ;Expected results: Expanded coverage of ATSPI throughout Sugar Core; a working prototype that can be tested in the field; an Assistive Technology Guide for Sugar Activity Developers | ||
;Knowledge prerequisite: Strong background in Python, GTK3, and Atspi; some electronics background would also be useful. | ;Knowledge prerequisite: Strong background in Python, GTK3, and Atspi; some electronics background would also be useful. | ||
|- | |- | ||
− | !valign=top | [[File:Bulletin-board.jpg|90px| | + | !valign=top | [[File:Bulletin-board.jpg|90px|center|thumb]] || valign=top | Bulletin Board || valign=top | Walter Bender ||align=left valign=top | |
;Brief explanation: While it seems the prevailing notion of collaboration in the classroom is for the teacher to be able to a service such as VNC to share a desktop with a student, it is evident from computer-supported collaborative work outside of the classroom that such models provide little if any enhancements to productivity or learning. Our approach in Sugar has always been to allow our users to collaborate directly on tasks – be it writing a document together; sharing bookmarks while browsing; or sharing code snippets while programming. That said, often times, a large project involves multiple tools and multiple resources to be shared among a group. This project is to provide an uber-structure for collaboration – the Bulletin Board – where a group can share resources in a persistent manner as they work on a project together. One aspect it a shared, persistent "clipboard" of artifacts being used collectively within the project; another, illustrated on the left, is a chat channel that can be overlaid on top of activities to enable targeted discussions. | ;Brief explanation: While it seems the prevailing notion of collaboration in the classroom is for the teacher to be able to a service such as VNC to share a desktop with a student, it is evident from computer-supported collaborative work outside of the classroom that such models provide little if any enhancements to productivity or learning. Our approach in Sugar has always been to allow our users to collaborate directly on tasks – be it writing a document together; sharing bookmarks while browsing; or sharing code snippets while programming. That said, often times, a large project involves multiple tools and multiple resources to be shared among a group. This project is to provide an uber-structure for collaboration – the Bulletin Board – where a group can share resources in a persistent manner as they work on a project together. One aspect it a shared, persistent "clipboard" of artifacts being used collectively within the project; another, illustrated on the left, is a chat channel that can be overlaid on top of activities to enable targeted discussions. | ||
;Expected results: Two new Sugar toolkit services: a share, persistent clipboard; and a chat overlay onto any shared activity. | ;Expected results: Two new Sugar toolkit services: a share, persistent clipboard; and a chat overlay onto any shared activity. | ||
Line 64: | Line 64: | ||
! !! Title !! Mentor !! Project | ! !! Title !! Mentor !! Project | ||
|- | |- | ||
− | !valign=top | [[File:Turtle-3d.png|90px|thumb| | + | !valign=top | [[File:Turtle-3d.png|90px|thumb|center]] || valign=top width="15%" | Turtle Art 3D || valign=top width="15%" | Walter Bender, Antonio Battro, Horacio Reggini||align=left valign=top| |
;Brief explanation: Sugar is lacking any 3D programming environments. This project would be to develop such an environment. There is a rich program in 3D Logo developed by Horacio Reggini [http://www.horacioreggini.com.ar/?cat=13]. The specific project would be to write an extension to [[Activities/Turtle Art|Turtle Blocks]] to encompass Reggini's ideas. | ;Brief explanation: Sugar is lacking any 3D programming environments. This project would be to develop such an environment. There is a rich program in 3D Logo developed by Horacio Reggini [http://www.horacioreggini.com.ar/?cat=13]. The specific project would be to write an extension to [[Activities/Turtle Art|Turtle Blocks]] to encompass Reggini's ideas. | ||
;Expected results: A new Turtle Art plugin that adds basic 3D transforms to Turtle Blocks (e.g., setxyz, pitch, roll, yaw); camera and lighting models; surface texture mapping; and a rich set of example projects. A bonus would be a plugin for generating objects for MineCraft. | ;Expected results: A new Turtle Art plugin that adds basic 3D transforms to Turtle Blocks (e.g., setxyz, pitch, roll, yaw); camera and lighting models; surface texture mapping; and a rich set of example projects. A bonus would be a plugin for generating objects for MineCraft. | ||
;Knowledge prerequisite: Python and some 3D graphics (3D transform) experience. | ;Knowledge prerequisite: Python and some 3D graphics (3D transform) experience. | ||
|- | |- | ||
− | !valign=top | [[File:MusicKeyboard.png|90px|thumb| | + | !valign=top | [[File:MusicKeyboard.png|90px|thumb|center]] || valign=top | Music Suite || valign=top |Gonzalo Odiard ||align=left valign=top| |
;Brief explanation: Sugar's primary music offering, the TamTam suite, is woefully inadequate with touch interfaces. The goal of this project is to rewrite the suite to use the underlying mechanisms demonstrated in the touch-friendly Music Keyboard activity. | ;Brief explanation: Sugar's primary music offering, the TamTam suite, is woefully inadequate with touch interfaces. The goal of this project is to rewrite the suite to use the underlying mechanisms demonstrated in the touch-friendly Music Keyboard activity. | ||
;Expected results: Touch-friendly replacements for TamTamMini, TamTamJam, TamTamEdit, and TamTamSynthesizerLab. | ;Expected results: Touch-friendly replacements for TamTamMini, TamTamJam, TamTamEdit, and TamTamSynthesizerLab. | ||
;Knowledge prerequisite: Python and digital audio experience (CSound a real plus). | ;Knowledge prerequisite: Python and digital audio experience (CSound a real plus). | ||
|- | |- | ||
− | !valign=top | [[File:Camera.svg|90px|thumb| | + | !valign=top | [[File:Camera.svg|90px|thumb|center]] || valign=top |Video Editing Suite || valign=top |Gonzalo Odiard ||align=left valign=top| |
;Brief explanation: Sugar need a simple activity to process video. The interface should be simple and need run in a device with low computational and storage resources as the OLPC XO or Intel Classmate. Limited screen real estate must also be a consideration. | ;Brief explanation: Sugar need a simple activity to process video. The interface should be simple and need run in a device with low computational and storage resources as the OLPC XO or Intel Classmate. Limited screen real estate must also be a consideration. | ||
;Expected results: A new Sugar activity for rich media editing and an extension to the Sugar toolkit for generating video from data within existing Sugar activities such as FotoToons and Portfolio. | ;Expected results: A new Sugar activity for rich media editing and an extension to the Sugar toolkit for generating video from data within existing Sugar activities such as FotoToons and Portfolio. | ||
;Knowledge prerequisite: Strong background in Python, GTK and GStreamer. | ;Knowledge prerequisite: Strong background in Python, GTK and GStreamer. | ||
|- | |- | ||
− | !valign=top | [[File:Butia.jpg|90px| | + | !valign=top | [[File:Butia.jpg|90px|center|thumb]] || valign=top |Assistive Robots || valign=top |Alan Alguar ||align=left valign=top| |
;Brief explanation: In conjunction with the Assitive Interface project, the goal of this project is to provide a physical sensor interface to the Sugar robots suite ([http://activities.sugarlabs.org/en-US/sugar/addon/4434 Turtle Bots]) for people with limited motor control. | ;Brief explanation: In conjunction with the Assitive Interface project, the goal of this project is to provide a physical sensor interface to the Sugar robots suite ([http://activities.sugarlabs.org/en-US/sugar/addon/4434 Turtle Bots]) for people with limited motor control. | ||
;Expected results: We have access to a target population of children with special needs that would love to work with robotics. We expect an adaption of the Turtle Bots (Turtle Blocks) interface to support programming through a simple pointing device to be deployed with this population and to solicit feedback on the intervention. | ;Expected results: We have access to a target population of children with special needs that would love to work with robotics. We expect an adaption of the Turtle Bots (Turtle Blocks) interface to support programming through a simple pointing device to be deployed with this population and to solicit feedback on the intervention. | ||
;Knowledge prerequisite: Strong background in Python programming. | ;Knowledge prerequisite: Strong background in Python programming. | ||
|} | |} |
Revision as of 14:12, 19 February 2014
Students: See our guide on |how to participate in Google Summer of Code for more information.
Project candidates
In the table below is list of projects potential participants might contribute within GSoC program.
- Note
- Potential mentors, please feel free to add ideas to this list. Also, feel free to add your name to a project you'd be willing to co-mentor.
- Note
- Potential students, more project ideas can be found on our Features page.
Sugar Core
Title | Mentor | Project | |
---|---|---|---|
Port to Python3 | Walter Bender and Daniel Narvaez |
| |
Activity Unit Tests | Walter Bender and Daniel Narvaez |
| |
JavaScript Collaboration for Sugar | Manuel Quiñones |
| |
Cordova/PhoneGap container for Sugar | Lionel Laské |
| |
Voice Interface | Martin Abente Lahaye |
| |
Assistive Interface | Andres Aguirre |
| |
Bulletin Board | Walter Bender |
| |
Social Help | Martin Abente, Paul Cotton, Walter Bender |
|
Sugar Activities
Title | Mentor | Project | |
---|---|---|---|
Turtle Art 3D | Walter Bender, Antonio Battro, Horacio Reggini |
| |
Music Suite | Gonzalo Odiard |
| |
Video Editing Suite | Gonzalo Odiard |
| |
Assistive Robots | Alan Alguar |
|