Differences between revisions 20 and 66 (spanning 46 versions)
Revision 20 as of 2008-03-15 09:04:52
Size: 7634
Editor: 72-255-42-120
Comment: added more verbage to encourage student interaction at this stage; added NLTK
Revision 66 as of 2009-03-13 18:31:18
Size: 15209
Editor: DavidGoodger
Comment:
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). This page coordinates the [[http://code.google.com/soc/|Google Summer of Code]] projects involving Python and mentored by the Python Software Foundation (PSF).
Line 9: Line 9:
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. 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. Some of us also hang out on #gsoc-python on freenode.
Line 11: Line 11:
Students should read ["/Expectations"] to understand what is expected of them. Students should read [[/Expectations]] to understand what is expected of them.
Line 15: Line 15:
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. 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.
Line 21: Line 21:
 * [http://scipy.org/scipy/scipy/wiki/SummerofCodeIdeas NumPy/SciPy project ideas]
 * [http://wiki.python.org/jython/SummerOfCode/PotentialProjects Jython Potential Projects]
 * 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:gvwilson@cs.toronto.edu gvwilson@cs.toronto.edu]).
   * 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: GregWilson ([mailto:gvwilson@cs.toronto.edu gvwilson@cs.toronto.edu]).
 * A ''rever
sible debugger'' is one that records just enough of a program's history to allow the user to step backwards in time, e.g., to put a breakpoint at a fault, then go back and see how the program got there. The aim of this project would be to prototype a reversible debugger for Python 3000. Contact: GregWilson ([mailto:gvwilson@cs.toronto.edu gvwilson@cs.toronto.edu]).
 * 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.
 * [[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é Ro
berge (andre.roberge at gmail dot com) for discussions of potential ideas.

 * [[http://wiki.sagemath.org/gsoc08notebook|The Sage Notebook]]

 * [[http://code.google.com/p/hotwire-shell/wiki/SummerOf
Code2008|The Hotwire Hypershell]]

* 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 [[mailto:davidjanes@blogmatrix.com|David Janes]]), but much more is needed.  [[mailto:bwinton@latte.ca|Blake Winton]] is also interested in mentoring this one. Also see [[http://wiki.jabber.org/index.php/Summer_of_Code_2008|Jabber's SOC page]] (under Servers/PJS)
 * [[http://www.drproject.org/DrProject|DrProject]] 3.0 was released at [[http://us.pycon.org/2008/about/|PyCon]] in March, and now has users in several countries. Contact GregWilson ([[mailto:gvwilson@cs.toronto.edu|gvwilson@cs.toronto.edu]]) for more information about the following:
   * Porting some widely-used [[http://trac-hacks.org/|Trac plugins]] to [[http://www.drproject.org/DrProject|DrProject]].
   * Upgrading from Kid to [[http://genshi.edgewall.org/|Genshi]]
   * Fixing bugs (yes, we still have some)
   * Rewriting parts of the administration interface (which was built by an SoC student in 2006) to improve workflow and add functionality
   * Finishing off the RPC interface to allow client-side scripting (very useful when administering multiple projects).
* A ''continuous documentation'' system. (This idea is also up on the [[http://www.scons.org/wiki/GSoC2008|SCons]] page.) It would:
   * 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. If architected properly, this 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:pgries@cs.toronto.edu|pgries@cs.toronto.edu]]).
 * The [[http://bioinfo.mbi.ucla.edu/pygr|pygr]] bioinformatics project could use some software engineering lo
ve 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 some GSoC students; see http://cartwheel.idyll.org/wiki/PygrGsoc2008Projects.
 * [[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]]. Contact: [[http://www.haz.ca/|Christian Muise]] (christian (dot) muise (at) gmail (dot) com) 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.
Line 39: Line 52:
   * 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:
   * 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:
Line 45: Line 58:
 * [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 (tjd@sfu.ca).
 * [http://parabix.costar.sfu.ca/ parabix] (contact: Toby Donaldson (tjd@sfu.ca).) 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://ntlk.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).
 * [[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 (tjd@sfu.ca).
 * [[http://parabix.costar.sfu.ca/|parabix]] (contact: Toby Donaldson tjd@sfu.ca) is high-performance text processing software based on parallel bit streams that is looking to create a Python interface to the parabix XML parser.
 * 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 (reid@cs.toronto.edu)
 * [[http://supervisord.org|Supervisor]] is a process controller for UNIX-like operating systems (Linux, BSD, Solaris, Mac OSX). A GSoC participant might have fun improving the web interface (adding mechanisms for managing groups, supporting operations against both stderr and stdout logs), and there is also a requirement that we allow processes to be "attached to" from within supervisorctl. Contact: Chris McDonough (chrism@plope.com)
 * [[http://clonedigger.sourceforge.net|Clone Digger]] is the tool for finding software clones in Python and Java programs. It works on the abstract syntax tree level and handles variety of clone types. There exist some tasks including automatic refactoring of found clones and integration into Eclipse IDE. GSOC student will gain experience in the static code analysis, development of algorithms and implementing them in Python. See [[http://clonedigger.sourceforge.net/google_summer_of_code.html|project ideas]].
 * [[http://www.canorus.org|Canorus]] is a music score editor application offering a python scripting interface via swig. We are researching several interface related problems and want to solve them via the python swig interface. The main idea is to improve the existing [[https://canorus.berlios.de/wiki/index.php/CLI|Python CLI (Command Line interface)]]. Details about our project ideas and contact can be found on the [[https://canorus.berlios.de/wiki/index.php/GSoC_PSF_2008|Canorus GSoC PSF 2008 page]].
 * [[http://codespeak.net/pypy|PyPy]], the Python-in-Python interpreter and virtual machine, has a [[http://codespeak.net/pypy/dist/pypy/doc/project-ideas.html|list of project ideas]] too.
 * Implement library for branch coverage reporting. This project would involve diving into the guts of python and enabling finer grain tracing than the current line tracing. Once that is done there is a whole slew of cool tools that can be built on top. You could pick and choose. A new improved line/branch reporting tool. Flow graph calculation, basis path calculation, structured testing reporting, as well as visualization for the above tools. Interested students should contact Matt Harrison (matthewharrison (at) gmail).
 * Implement a preprocessor (or post-processor) for Python's C code so that the builtin help() function can display the signature of functions written in C. This would replace the manually maintained function signatures currently required in the docstrings of extension modules.
Line 54: Line 76:
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 and !MoinMoin. I will update this list with links once Google has announced the list of organizations for 2008. The following other organizations in GSoC 2008 are known to offer Python-related projects:
   * [[http://code.google.com/soc/2008/bbc/about.html|BBC Research]] is accepting highly general [[http://kamaelia.sourceforge.net/SummerOfCode|Kamaelia]] based project proposals. [[http://kamaelia.sourceforge.net/SummerOfCode|Kamaelia]] is a python based component framework making concurrency fun, easy & useful to work with (yes, including multicore). The nature of [[http://kamaelia.sourceforge.net/SummerOfCode|Kamaelia]] being a component system means that almost any project which is ambitious, interesting and fun would grow the [[http://kamaelia.sourceforge.net/SummerOfCode2008|component set]] in interesting and useful (to all) directions, so we have a fairly wide ranging set of [[http://kamaelia.sourceforge.net/SummerOfCode2008|ideas]] this summer. We've got [[http://kamaelia.sourceforge.net/SummerOfCode2008|ideas up]] from building video conferencing tools, through video editting/annotation, through XMPP developments, through to visualising social networks in 3D derived from SQL databases, through P2P 3D MUDs and all the way back to tools for helping children to learn to read and write using gesture recognition and speech synthesis. Then at the other end of the spectrum, we have some very specific targetted pieces of projects instead which will directly support the project in interesting ways. [[http://kamaelia.sourceforge.net/SummerOfCode|Kamaelia]] is designed to be [[http://kamaelia.sourceforge.net/MiniAxon/|new developer friendly]] . If you have a general project idea that doesn't fit with the PSF it may well fit with us (as long as it will be developed as kamaelia components).
   * [[http://code.google.com/soc/2008/django/about.html|Django]]
   * [[http://code.google.com/soc/2008/hg/about.html|Mercurial]]
   * [[http://code.google.com/soc/2008/moin/about.html|MoinMoin]]
   * [[http://code.google.com/soc/2008/olpc/about.html|One Laptop Per Child]]
   * [[http://code.google.com/soc/2008/plone/about.html|Plone]]
   * [[http://code.google.com/soc/2008/scons/about.html|SCons]] ([[http://scons.org/wiki/GSoC2008|ideas]]) is an improved, cross-platform, extensible replacement for the classic `make` utility, emphasizing reliable builds (MD5 checksums, automatic dependency analysis, global view of dependencies). It is implemented in Python and uses Python as its "description language," providing greater flexibility for solving build problems. As a small project, we tend to have fewer proposals, so your chances of being accepted are better than with larger projects which often have multiple proposals for an idea.
   * [[http://code.google.com/soc/2008/parsec/about.html|Thousand Parsec]]
   * [[http://code.google.com/soc/2008/turbogears/about.html|TurboGears]]
   * [[http://code.google.com/soc/2008/wxpython/about.html|wxPython]]
   * [[http://code.google.com/soc/2008/zope/about.html|Zope]]
Line 56: Line 89:
If you are applying as an organization and have projects involving Python, please contact JamesTauber so we can work more closely together.
If you are an organization with projects involving Python, please contact JamesTauber so we can work more closely together.
Line 60: Line 95:
 * ["SummerOfCode/2005"]
 * ["SummerOfCode/2006"]
 * ["SummerOfCode/2007"]
 * [[SummerOfCode/2005]]
 * [[SummerOfCode/2006]]
 * [[SummerOfCode/2007]]

This page coordinates the Google Summer of Code projects involving Python and mentored by the Python Software Foundation (PSF).

The 2008 PSF SoC coordinator is JamesTauber (jtauber at jtauber dot com). Contact him if you have any questions.

Prospective Students

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 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. Some of us also hang out on #gsoc-python on freenode.

Students should read /Expectations to understand what is expected of them.

Prospective Mentors

Prospective mentors should join both the soc2008-general and 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)

  • NumPy/SciPy project ideas

  • Jython Potential Projects

  • Pygame Potential Projects

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

  • The Sage Notebook

  • The Hotwire Hypershell

  • 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. Blake Winton is also interested in mentoring this one. Also see Jabber's SOC page (under Servers/PJS)

  • DrProject 3.0 was released at PyCon in March, and now has users in several countries. Contact GregWilson (gvwilson@cs.toronto.edu) for more information about the following:

    • Porting some widely-used Trac plugins to DrProject.

    • Upgrading from Kid to Genshi

    • Fixing bugs (yes, we still have some)
    • Rewriting parts of the administration interface (which was built by an SoC student in 2006) to improve workflow and add functionality
    • Finishing off the RPC interface to allow client-side scripting (very useful when administering multiple projects).
  • A continuous documentation system. (This idea is also up on the SCons page.) It would:

    • 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. If architected properly, this could be dropped into any web-based software project portal.
  • (Many) enhancements to SqlAlchemy, an object/relational mapping tool for Python.

  • The 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 (pgries@cs.toronto.edu).

  • The 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 some GSoC students; see http://cartwheel.idyll.org/wiki/PygrGsoc2008Projects.

  • SymPy project ideas (Python library for symbolic mathematics)

  • MolViz is a project to incorporate head tracking input into an existing Molecular Visualization program, PyMol. This is accomplished through a plugin written in Python to control the molecule's position using the existing PyMol API. Contact: Christian Muise (christian (dot) muise (at) gmail (dot) com) Related projects that would benefit the PSF could include:

    • Improving the existing 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 video] for a better description).

  • Python Markdown is a Python implementation of Markdown. It is pretty mature but can benefit from some work. I (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.
  • 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 (tjd@sfu.ca).

  • parabix (contact: Toby Donaldson tjd@sfu.ca) is high-performance text processing software based on parallel bit streams that is looking to create a Python interface to the parabix XML parser.

  • The 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 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 Cython project is a C compiler for Python used for wrapping C libraries and writing (fast) C extension classes. There are many interesting projects ideas for anyone who is interested in the Python language, compilers, and language design.

  • The tinypy project is a miniature python compiler + virtual machine similar to lua. There are some 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 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 (reid@cs.toronto.edu)

  • Supervisor is a process controller for UNIX-like operating systems (Linux, BSD, Solaris, Mac OSX). A GSoC participant might have fun improving the web interface (adding mechanisms for managing groups, supporting operations against both stderr and stdout logs), and there is also a requirement that we allow processes to be "attached to" from within supervisorctl. Contact: Chris McDonough (chrism@plope.com)

  • Clone Digger is the tool for finding software clones in Python and Java programs. It works on the abstract syntax tree level and handles variety of clone types. There exist some tasks including automatic refactoring of found clones and integration into Eclipse IDE. GSOC student will gain experience in the static code analysis, development of algorithms and implementing them in Python. See project ideas.

  • Canorus is a music score editor application offering a python scripting interface via swig. We are researching several interface related problems and want to solve them via the python swig interface. The main idea is to improve the existing Python CLI (Command Line interface). Details about our project ideas and contact can be found on the Canorus GSoC PSF 2008 page.

  • PyPy, the Python-in-Python interpreter and virtual machine, has a list of project ideas too.

  • Implement library for branch coverage reporting. This project would involve diving into the guts of python and enabling finer grain tracing than the current line tracing. Once that is done there is a whole slew of cool tools that can be built on top. You could pick and choose. A new improved line/branch reporting tool. Flow graph calculation, basis path calculation, structured testing reporting, as well as visualization for the above tools. Interested students should contact Matt Harrison (matthewharrison (at) gmail).
  • Implement a preprocessor (or post-processor) for Python's C code so that the builtin help() function can display the signature of functions written in C. This would replace the manually maintained function signatures currently required in the docstrings of extension modules.

Other Python-Related Organizations

The following other organizations in GSoC 2008 are known to offer Python-related projects:

  • BBC Research is accepting highly general Kamaelia based project proposals. Kamaelia is a python based component framework making concurrency fun, easy & useful to work with (yes, including multicore). The nature of Kamaelia being a component system means that almost any project which is ambitious, interesting and fun would grow the component set in interesting and useful (to all) directions, so we have a fairly wide ranging set of ideas this summer. We've got ideas up from building video conferencing tools, through video editting/annotation, through XMPP developments, through to visualising social networks in 3D derived from SQL databases, through P2P 3D MUDs and all the way back to tools for helping children to learn to read and write using gesture recognition and speech synthesis. Then at the other end of the spectrum, we have some very specific targetted pieces of projects instead which will directly support the project in interesting ways. Kamaelia is designed to be new developer friendly . If you have a general project idea that doesn't fit with the PSF it may well fit with us (as long as it will be developed as kamaelia components).

  • Django

  • Mercurial

  • MoinMoin

  • One Laptop Per Child

  • Plone

  • SCons (ideas) is an improved, cross-platform, extensible replacement for the classic make utility, emphasizing reliable builds (MD5 checksums, automatic dependency analysis, global view of dependencies). It is implemented in Python and uses Python as its "description language," providing greater flexibility for solving build problems. As a small project, we tend to have fewer proposals, so your chances of being accepted are better than with larger projects which often have multiple proposals for an idea.

  • Thousand Parsec

  • TurboGears

  • wxPython

  • Zope

If you are an organization with projects involving Python, please contact JamesTauber so we can work more closely together.

Previous years

SummerOfCode (last edited 2019-01-30 00:54:09 by TerriOda)

Unable to edit the page? See the FrontPage for instructions.