Students: See our guide on how to participate in Google Summer of Code for more information.
Project candidates
In the table below is a list of projects potential participants might contribute to in the GSoC program.
- Note 0
- These are project ideas from Sugar Labs contributors. Students, feel free to propose your ideas as well.
- Note 1
- 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 2
- Potential students, more project ideas can be found on our Features page.
Sugar Core
|
Title |
Mentor |
Project
|
|
Journal Rethink |
Sam Parkinson |
- Brief explanation
- The Sugar Journal could be rethought to add more emphasis on collaboration, or adding more organisational support for creating "projects" among other things.
- Expected results
- Working code for the journal and vague ideas (more concrete than this) defined ahead of time.
- Knowledge prerequisite
- Strong background in Python and knowledge of Gtk+.
|
|
Reflection Activity |
Sam Parkinson and Walter Bender |
- Brief explanation
- The Sugar Journal is designed to be a place of reflection. We have the basic stub of a reflection activity that attempts to encourage more reflection and as a vehicle for sharing criticism. This idea needs more thought and coding.
- Expected results
- A solid formulation of how the activity will work in the classroom and working code for the Reflection Activity.
- Knowledge prerequisite
- Strong background in Python and knowledge of Gtk+.
|
|
Git backend |
Martin Abente Lahaye and Walter Bender |
- Brief explanation
- The Sugar Journal doesn't do a great job of supporting versioning or forking. This project is to build a backend for the Journal that is based on git, which does support versioning and forking. By building on top of a git hosting site we get the added benefit of network access as well.
- Expected results
- Working code and an integration with Turtle Blocks
- Knowledge prerequisite
- Strong background in Git and scripting languages such as Python, Ruby and JavaScript.
|
|
Performance tuning on machines with limited memory |
Samuel Greenfeld and James Cameron |
- Brief explanation
- The newer Sugar builds have performance issues on some old hardware with limited memory. This is keeping some Sugar deployments from upgrading. This project is to look into the performance issues and tune Sugar for low-memory devices.
- Expected results
- build suitable for running on OLPC XO-1 hardware
- Knowledge prerequisite
|
|
Re-design collaboration with web technologies |
Martin Abente Lahaye and Walter Bender |
- Brief explanation
- Now that JavaScript has become a first class citizen in the Sugar ecosystem, we must re-design our collaboration model to allow collaboration between web activities regardless of the platform.
- Knowledge prerequisite
- JavaScript, web sockets, web services.
|
Sugar Activities
|
Title |
Mentor |
Project
|
|
Beyond Flashcards: Programming to ReadJS |
Walter Bender |
- Brief explanation
- Back in the 1980s, IBM had a literacy program, "Writing to Read". The gist was that writing was a great way to spark a child's interest in reading. What if writing code could achieve a similar result? The project is to explore how programming might be incorporated into a literacy program. Like turtle, only simple sentences instead of stacks. It would be a "whole word" approach rather than a "phonics" approach: they can take "sentences" and make paragraphs that result in animations.
- Expected results
- Working prototype
- Knowledge prerequisite
- Strong background in Python or JavaScript
|
|
Covert Record, Clock, Speak and Measure to gstreamer 1.0 |
<TBD> |
- Brief explanation
- The vast majority of Activities that use gstreamer for sound have been converted to gstreamer 1.0 because the older 0.10 is now End of Life and is no longer being developed. It also adds quite a large set of extra duplicate dependencies to Sugar distributions. There's a lot of good examples of Activities that have been converted to provide excellent examples. The gstreamer 1.0 bindings are provided by gobject-introspection so it also assists in the conversion of Activities to gtk3.
- Expected results
- As many of the above Activities converted to use gst 1.0
- Knowledge prerequisite
- Strong background in Python, gobject-introspection and gstreamer
|
|
Covert TamTam to Csound6 |
<TBD> |
- Brief explanation
- TamTam makes extensive use of CSound, other Activities like Memorize, Pippy, and TurtleBlocks also can make use of CSound bindings. With the introduction of CSound 6 to a number of distributions TamTam needs migration to use the newer version of CSound.
- Expected results
- Convert TamTam to use CSound6, possibly other Activities
- Knowledge prerequisite
- Strong background in Python, background in CSound
|
Sugar Activities (and Ports)
These are existing and new activities we'd like to see enhanced. We expect that the activities will take on new UI features and pedagogical significance.
|
Title |
Mentor |
Project
|
|
Music Blocks Challenges |
Devin Ulibarri |
- Brief explanation
- Development of the "Power Piece" concept for teaching music and programming. (Power Pieces introduce rich musical ideas that can be studied, analyzed, transformed, and re-imagined, they are ripe for open-ended explorations.)
- Expected results
- A well-documented series of activities for exploring musical and programming concepts using the Music Blocks activity as a foundation.
- Knowledge prerequisite
- Strong background in Javascript, Music Theory
|
|
Nutritional Microworld |
w/Dr. Jessica Early |
- Brief explanation
- We have the basic building blocks (Turtle Nutrition) for programming with food as a datatype. What we are missing is a collection of meaningful activities to use with the tool as exemplars. We want to develop a an open-ended, yet
relevant tool—one that invites learners to explore fundamental concepts of nutrition that are both intrinsic to music yet transcendent of a specific discipline.
- Expected results
- A well-documented series of activities for exploring nutrition that use the nutrition plugin as a basis. A series of workshops to study these ideas with children.
- Knowledge prerequisite
- Strong background in Javascript, some background in Nutrition.
|
|
Turtle Confusion/Flags JS |
Walter Bender |
- Brief explanation
- Port of Turtle Confusion and Turlte Flags.
- Expected results
- A framework for creating challenges and a few exemplars.
- Knowledge prerequisite
- Strong background in Javascript
|
Sugar Technology
Sugar is based on the Python programming language and the GTK libraries. We also support some web technologies: HTML5, CSS, and JavaScript.
|
Title |
Mentor |
Project
|
|
Unit Testing |
TBD |
Deep dive into unit tests. We have a framework but it provides scant coverage for Sugar core and almost no coverage for Sugar activities.
- Brief Description
- The goal is to develop tests for many more subsystems in Sugar core and to light a fire under the developer community to write tests for Sugar activities.
- Expected Results
- a new test suite and scads of documentation.
- Knowledge Prerequisite
- A strong background in Python.
|
Subpages