Google Code In Task Ideas

coke edited this page Nov 13, 2011 · 34 revisions

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.

Task Categories

Tasks will typically fall into the following categories:

  1. Code: Tasks related to writing or refactoring code
  2. Documentation: Tasks related to creating/editing documents
  3. Outreach: Tasks related to community management and outreach/marketing
  4. Quality Assurance: Tasks related to testing and ensuring code is of high quality
  5. Research: Tasks related to studying a problem and recommending solutions
  6. Training: Tasks related to helping others learn more
  7. Translation: Tasks related to localization
  8. 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.

Task Template

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.

GNOME's How To Write a Good Task

Potential Mentors

  • Will "Coke" Coleda

Proposed tasks

This must include at least 5 tasks in all of the 8 categories sorted by difficulty level.

Code

Documentation

Quality Assurance

Research

  • 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)

Outreach

  • 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
  • Give a talk about Jaesop (Javascript on Parrot) at a local tech user group

Training

  • 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.

Translation

User Interface

Title: Create graphics for App::Parrot::Create webapp

Category: User Interface

Difficulty: medium

Estimated time: 3 days

Task description:

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.

Requirements:

Extra:

Links: https://github.com/letolabs/app-parrot-create

Potential Mentor: dukeleto