|Deletions are marked like this.||Additions are marked like this.|
|Line 1:||Line 1:|
|This page coordinates the [http://code.google.com/soc/ Google Summer of Code] projects involving Python and mentored by the Python Software Foundation (PSF).||Summer of Code programs help students get stipends to work on open source projects during summer time.|
|Line 3:||Line 3:|
|The 2008 PSF SoC coordinator is JamesTauber (jtauber at jtauber dot com). Contact him if you have any questions.||= Current programs =|
|Line 5:||Line 5:|
|= Prospective Students =|| * ~+'''Google Summer of Code 2017: [[SummerOfCode/2017]] <-- Current students and mentors go here!'''+~
* ~+'''Google Summer of Code 2018: [[SummerOfCode/2018]] <-- Prospective students and mentors for next year go here!'''+~
|Line 7:||Line 8:|
|If you are a student interested in working on core Python development or on a project that helps the Python community, we'd love to have you apply to the Python Software Foundation for this year's Google Summer of Code.
You should join the [http://mail.python.org/mailman/listinfo/soc2008-general soc2008-general] mailing list and take a look at the Project Ideas section below. If any interest you, feel free to contact the proposer for details. You can also discuss your own project ideas with the people mentioned or talk about them on the soc2008-general mailing list.
Students should read ["/Expectations"] to understand what is expected of them.
= Prospective Mentors =
Prospective mentors should join both the [http://mail.python.org/mailman/listinfo/soc2008-general soc2008-general] and [http://mail.python.org/mailman/listinfo/soc2008-mentors soc2008-mentors] lists. Once you've been approved for the soc2008-mentors mailing list, you should introduce yourself and what project areas you can help mentor. Contact JamesTauber if you have any questions.
= Project Ideas =
* CodingProjectIdeas/PythonCore (not necessarily all suitable for GSoC)
* CodingProjectIdeas/StandardLibrary (not necessarily all suitable for GSoC)
* [http://scipy.org/scipy/scipy/wiki/SummerofCodeIdeas NumPy/SciPy project ideas]
* [http://wiki.python.org/jython/SummerOfCode/PotentialProjects Jython Potential Projects]
* [http://www.pygame.org/wiki/gsoc2008ideas Pygame Potential Projects]
* [http://www.pysoy.org/wiki/SummerOfCode/2008/Ideas PySoy Ideas] (3D Engine)
* Have a look at the suggestions for Crunchy [http://code.google.com/p/crunchy/wiki/SummerOfCodeIdeas]. Email André Roberge (andre.roberge at gmail dot com) for discussions of potential ideas.
* [http://www.drproject.org/DrProject DrProject] 3.0 will be released at [http://us.pycon.org/2008/about/ PyCon] in March; several projects that would help it would also be useful to the Python community as a whole. Contact: GregWilson ([mailto:firstname.lastname@example.org email@example.com]).
* A Jabber/XMPP server (not client) in Python 3.0. Work was started at the University of Toronto by Dmitri Vassilenko (under the supervision of David Janes), but much more is needed.
Also see [http://wiki.jabber.org/index.php/Summer_of_Code_2008 Jabber's SOC page] (under Servers/PJS)
* A ''continuous documentation'' system that:
* automatically rebuilds a project's Pydoc/Javadoc/whatever every time source code is checked in;
* integrates the result seamlessly into the project's web site in wiki format; and
* takes edits to those wiki pages and puts them back into the source code in Pydoc/Javadoc/whatever format. This tool would ''not'' be specific to Dr``Project: if architected properly, it could be dropped into any web-based software project portal.
* (Many) enhancements to [http://www.sqlalchemy.org SqlAlchemy], an object/relational mapping tool for Python.
* The [http://code.google.com/p/pygraphics/ PyGraphics] project is modifying an entry-level multimedia library originally developed by Mark Guzdial for a "CS-1 in Jython" course to work with CPython (and specifically, to run multithreaded with Python 3.0). A robust, full-featured version of this library would make Python much more appealing as a first language for university courses. Contact: Paul Gries ([mailto:firstname.lastname@example.org email@example.com]).
* The [http://bioinfo.mbi.ucla.edu/pygr pygr] bioinformatics project could use some software engineering love to bring it up to date in a variety of ways. Chris Lee (pygr author) and Titus Brown are working on a possible task list for one GSoC student.
* [http://code.google.com/p/sympy/wiki/GSoC2008 SymPy project ideas] (Python library for symbolic mathematics)
* [http://molviz.cs.toronto.edu/molviz MolViz] is a project to incorporate head tracking input into an existing Molecular Visualization program, [http://pymol.sourceforge.net/ PyMol]. This is accomplished through a plugin written in Python to control the molecule's position using the existing [http://www.pymolwiki.org/index.php/Main_Page PyMol API]. Related projects that would benefit the PSF could include:
* Improving the existing [http://www.pymolwiki.org/index.php/ImmersiveViz PyMol plugin] for more precise control of the environment.
* Developing new input drivers for the Wiimote form of control. This would require some bluetooth hacking.
* Writing other forms of input in Python, such as fisheye head tracking, IR webcam tracking, etc (refer to the end of this [[http://www.youtube.com/watch?v=ncShaY4VSac video]] for a better description).
* [http://www.freewisdom.org/projects/python-markdown/ Python Markdown] is a Python implementation of [http://daringfireball.net/projects/markdown/ Markdown]. It is pretty mature but can benefit from some work. I ([http://takhteyev.org Yuri], the main author) can serve as a mentor. The things to be done:
* An enhanced test suite
* More decomposition
* Performance tweaking
* Version 2.0, shooting for a better balance between structural parsing and regexp substitutions.
* [http://code.google.com/p/carcode carcode] is an educational project for developing a beginner-oriented API for controlling an animated car. The idea is a sort of extension of turtle graphics to a car, and the idea is to use it to help kids (and adults!) learn to program by having the car autonomously perform various tasks like "parallel parking". Contact: Toby Donaldson (firstname.lastname@example.org).
* [http://parabix.costar.sfu.ca/ parabix] (contact: Toby Donaldson (email@example.com).) is high-performance text processing software based on parallel bit streams that is looking to:
* Create a Python interface to the parabix XML parser.
* Build a string library based on parallel bit streams.
* Build an interactive parallel bit stream demonstration tool. Use it to illustrate the algorithms in the high-speed [http://u8u16.costar.sfu.ca UTF-8 to UTF-16 transcoder].
* The [http://nltk.org NLTK] project has developed a substantial suite of Python modules, data and documentation for natural language processing (NLP), with users ranging from complete novices to experienced researchers and developers. Our [http://nltk.org/projects.html NLTK projects page] has a long list of suggestions for tasks involving a combination of NLP and programming. Contact: Ewan Klein (ewan.klein at gmail dot com).
* The [http://cython.org Cython] project is a C compiler for Python used for wrapping C libraries and writing (fast) C extension classes. There are [http://wiki.cython.org/enhancements many interesting projects ideas] for anyone who is interested in the Python language, compilers, and language design.
* The [http://www.tinypy.org tinypy] project is a miniature python compiler + virtual machine similar to lua. There are some [http://www.philhassey.com/blog/tinypy-ideas/ cool projects] available. With your help tinypy could be used as a python sandbox, in embedded systems, or to aid game development.
* Python ISAPI extension for IIS. Similar to [http://pyisapie.sourceforge.net/ PyISAPIe] (a pity he didn't make it to GSoC). Serving web pages in-process (as opposed to FastCGI/CGI) is definitely a good idea.
* Python plugin for Web-CAT:
* Web-CAT (http://web-cat.cs.vt.edu/) is a plug-in-based web application that supports automated testing and grading of programming assignments that is presently used by over 30 universities and colleges in the United States and elsewhere. The Web-CAT Grader supports traditional models of automated program grading, and also supports grading of assignments where students do their own testing.
* Web-CAT currently supports programming assignments written in Java and C++. The aim of this project is to provide equivalent support for Python to make life easier for instructors who want to adopt it as an instruction language. The major challenge is security: since student code is executed on the Web-CAT server, steps must be taken to prevent malicious operation, denial of service (accidental or deliberate), and so on. Web-CAT does this for Java and C++ using a custom class loader and linkage against shadow libraries; equivalent techniques will have to be implemented and tested for Python. Contact: Karen Reid (firstname.lastname@example.org)
= Other Python-Related Organizations =
The organizations for 2008 have not yet been announced by Google but last year other organizations beside PSF who did Python-related work included: Zope, Plone, wxPython, Django, Bazaar, SCons, Thousand Parsec, Kamaelia and !MoinMoin. I will update this list with links once Google has announced the list of organizations for 2008.
If you are applying as an organization and have projects involving Python, please contact JamesTauber so we can work more closely together.
* [http://www.bbc.co.uk/rd BBC Research's] projects are largely based around [http://kamaelia.sourceforge.net/SummerOfCode2008 Kamaelia] - which is entirely written in python. We'd very interested in hearing in your ideas in addition to the ones on [http://kamaelia.sourceforge.net/SummerOfCode2008 our ideas page] . It is likely that we would be interested in mentoring projects which end up on this page as well, if they involve integration into Kamaelia (eg cython or pyrex work). Short intro: [http://kamaelia.sourceforge.net/SummerOfCode2008 Kamaelia] is a general purpose component framework aimed at making concurrency easy to work with. It includes [http://kamaelia.sourceforge.net/Docs/Axon/Axon.Component.html co-operative] (generator based), [http://kamaelia.sourceforge.net/Docs/Axon/Axon.ThreadedComponent.html threaded] and [http://yeoldeclue.com/cgi-bin/blog/blog.cgi?rm=viewpost&nodeid=1205626569 multiprocess] models. See our [http://kamaelia.sourceforge.net/Components Components] page & [http://kamaelia.sourceforge.net/Cookbook cookbook] page for a quick overview of stuff it can do. Contact Michael Sparks (org admin - ms at cerenity dot org / michael dot sparks at bbc dot co dot uk) for more details. We're also interested in people who would like to be mentors.
= Previous years =
|= Archive of previous years =
* ESA Summer of Code 2014: http://sophia.estec.esa.int/socis/
Summer of Code programs help students get stipends to work on open source projects during summer time.
Google Summer of Code 2017: SummerOfCode/2017 <-- Current students and mentors go here!
Google Summer of Code 2018: SummerOfCode/2018 <-- Prospective students and mentors for next year go here!