Google Code In Task Ideas
Clone this wiki locally
This page lists detailed descriptions of tasks for Parrot Foundation in Google Code-In 2010.
What is Google Code-in?
Following on from the success of the Google Summer of Code™ program, Google is holding a contest for pre-university students (e.g., high school and secondary school students 13-18) called Google Code-In with the aim of encouraging young people to participate in open source. We will work with open source organizations, each of whom will provide a list of tasks to be completed by student contestants. Tasks can be anything a project needs help with, from bug fixes to writing documentation to user experience research.
What are the goals of this contest?
Google Code-in (GCI) is intended to help students who may have wanted to get involved in open source but didn't know where to start. By working through the tasks suggested by organizations, contestants will be given the opportunity to engage with the open source community and get involved. The participating open source projects gain the benefit of additional contributions to their project, often in important areas that may get overlooked for whatever reason.
It is Google's not so secret hope that the student contestants of today will be long-term contributors to these and other open source projects in the future.
Tasks will typically fall into the following categories:
- Code: Tasks related to writing or refactoring code
- Documentation: Tasks related to creating/editing documents
- Outreach: Tasks related to community management and outreach/marketing
- Quality Assurance: Tasks related to testing and ensuring code is of high quality
- Research: Tasks related to studying a problem and recommending solutions
- Training: Tasks related to helping others learn more
- Translation: Tasks related to localization
- User Interface: Tasks related to user experience research or user interface design and interaction
How to Write a Task
Please order the tasks in increasing difficulty, from 'easy', to 'medium', to 'difficult'
- Give it a descriptive title.
- Explain any acronyms or slang that an outsider would not know.
- List potential mentors and give both a recommended and an optional background.
- Also give an estimate for roughly how long this task should take.
- Provide as many links and background information as possible.
Title: Name of the app/area and a short description of what the task entails
Category: [see Task Categories above]
Difficulty: (easy, medium, difficult)
Estimated time: A "day" range of how long you think the task will take to complete.
Task description: Consists of:
* An initial sentence or two that describes what the task entails and why a student would want to spend their time on it (emphasize importance to project, transferable skills...). * Several sentences/bullets that provide more detail into the task: What approach should students use? What level of detail are you looking for? * A sentence about the expected deliverables.
Benefits: A short explanation of why this task is useful for the project. This should help motivate the students too.
Requirements: A small list of skill requirements. This helps the students know if they might be able to complete the task, for example e.g. Git, programming languages, etc.
Extra: (optional) A description of some extra action that the student can do if he's enjoying the task.
Links: A list of links that should help the student start on this task.
Potential Mentor: The person we should list as the "owner" of the task, who will monitor student submissions and give the final sign-off. This should be either you or someone who you've talked to about taking this on.
- Will "Coke" Coleda
This must include at least 5 tasks in all of the 8 categories sorted by difficulty level.
- Add Rosella as a git submodule to parrot-libgit2
- Remove the new_s and new_s_i opcodes (http://trac.parrot.org/parrot/ticket/2111)
- Move Complex PMC to dynpmc
- Refactor Parrot_mmd_sort_candidates (http://trac.parrot.org/parrot/ticket/907)
- Handle library load paths with '.' in the name (http://trac.parrot.org/parrot/ticket/850)
- Remove dead dump-related code from compilers/imcc/debug.c
- Implement a clone of the ls utility (with -a flag) using Rosella FileSystem
- Remove FileHandle.puts method (http://trac.parrot.org/parrot/ticket/2113)
- Remove unused IMCC metadata directives (http://trac.parrot.org/parrot/ticket/2168)
- Fix plan(0) in Test::More/Test::Builder (https://github.com/parrot/parrot/issues/188)
- Finish the Dancer code behind (https://github.com/letolabs/app-parrot-create)
- Implement new features/write new tests for https://github.com/letolabs/parrot-libgit2 (large amount of potential work, can become 10-20 tasks)
- Write bindings to the NaCL cryptography library http://nacl.cace-project.eu/box.html
- Document how to open tickets (on trac and on github) via email (http://trac.parrot.org/parrot/ticket/2108)
- Move at least 2 chapters of Parrot Book to parrot.github.com
- Copy Squaak tutorial to parrot.github.org (https://github.com/parrot/squaak-tutorial/tree/master/doc)
- Add 5 complete code examples to the Winxed tutorial (http://whiteknight.github.com/Rosella/winxed/index.html)
- Document NaCL cryptography bindings with Github Pages
- Rewrite ResizableIntegerArray tests in PIR or better (http://trac.parrot.org/parrot/ticket/1089)
- Add 10 tests for Plumage (https://github.com/parrot/plumage)
- Add 10 tests for Jaesop Stage 0 runtime (https://github.com/Whiteknight/jaesop)
- Increase test coverage of src/embed/bytecode.c to at least 90%
- Increase test coverage of src/pmc/packfileview.pmc to at least 90%
- Determine why -t4 flag does not work as expected (https://github.com/parrot/parrot/issues/183)
- Research concurrency-friendly garbage collection algorithms and suggest an algorithm for Parrot to pursue
- Research the garbage collection algorithms in the new Go programming language.
- Research concurrency-related libraries for locking, data synchronization, and atomic operations
- Research atomic operation built-ins for common compilers (msvc, gcc/g++, llvm/clang, icc)
- Design a promotional poster for the Parrot project
- Design a promotional sticker for the Parrot project
- Give a talk about the Winxed programmign language at a local tech user group
- Record a screencast that shows how to download a Parrot release from Github, unzip it, configure and compile it, and write a simple "Hello World" program in Winxed.
Title: Create graphics for App::Parrot::Create webapp
Category: User Interface
Estimated time: 3 days
Create an attractive logo for a Parrot website which will be a web interface that makes it simple to create new programming languages with Parrot. The image should be friendly and exciting.
Benefits: Currently we have a script to generate new languages, but it is not possible to create new languages via a web browser, which will significantly reduce the barriers for creating a language.
Potential Mentor: dukeleto