[Edu-sig] Draft of a funding request

Michael McLay mmclay at comcast.net
Mon Dec 8 15:23:45 EST 2003

I've put together a funding request for the development of an educational 
distribution of Python software. I'd like to get some feedback on the 
attached letter of inquiry. This version of the request is targeting the 
Kellogg Foundation's "Philanthropy and Volunteerism" initiative [1], but I 
think it could be extended and submitted for funding from the National 
Science Foundation's  "Math and Science Partnership Program (MSP)" request 
for proposals [2]. 

The NSF proposal for MSP has a relatively short fuse. The proposals are due on 
December 16th. Please speak up if you are interested in participating on the 
NSF work. I'd like to get a list of resumes together to add to the proposal. 
I have a small business that does Python development and government 
contracting lined up to help with managing the grant reporting and funding 
management. If I get some indication of interest from the list I'll work with 
them on submitting the application. The plan is to have the small business 
work with the PSF on the project and in the process we can use this activity 
to boostrap the PSF as a funding organization.

My goal is to pursue additional funding opportunities and get related projects 
funded. If we can get enough work in place we should be able to eventually 
hire staff for PSF. As you will see from this proposal the staff would help 
organize and manage Python sprints. The staff would also work on getting 
additional funds for Python related research. I've identified over a dozen 
NSF programs which look like promising candidates for funding Python 
projects, so I think there is ample opportunity for funding. Later this week 
I will attending some workshops at the Foundation Center [3] that should help 
with identifying other potential sources of funding.

(The titles of each of the sections of the letter are from the Kellogg 
Foundation online submission form.)

[1] http://www.wkkf.org/Programming/Overview.aspx?CID=288
[2] http://www.nsf.gov/pubs/2003/nsf03605/nsf03605.htm
[3] http://www.fdncenter.org/

Letter of Inquiry for the Kellogg Foundation

Purpose Statement:

Development of a distribution of Python software for use in K-12 education and  
development of  an improved version of the Python language. The mission of 
the educational software is described in the "Computer Programming for 
Everyone" (CP4E) [1] project. 

[1] http://www.python.org/doc/essays/cp4e.html

Total Dollar Amount Requested:

$2,000,000 over three years

Project Objectives and Proposed Activities:

Python has been used very successfully to teach the fundamentals of computer 
science in high schools [2]. We believe this success is grounds for making 
Python the standard language to be used in advanced placement exams in 
computer science, as well as a foundation for developing computer literacy in 
the general population. To facilitate this goal, the Python community would 
like to develop an open source distribution of materials that can be used for 
teaching computer science (See the CP4E paper for more information on the 
overall project goals.) 

This would be a living project in which materials are added as they are 
developed. The project would create plan the release of distributions of 
Python based educational software, and supporting documentation, for teaching 
computer science to coincide with school year schedules. (The material would 
be made available through a website, but also as ISO images that could be 
downloaded and burned onto CDROMs.)  

A second component of the proposed grant would fund the development of Python 
3.0. This new revision of the Python language would add improvements to the 
language that will strengthen the language distribution and make it even 
better as a tool for teaching computer science.  

[2] http://www.oreilly.com/pub/a/oreilly/frank/elkner_0300.html

Time Schedules or Anticipated Duration of Proposed Grant:

The distributions of educational materials will be an on-going activity. 
Developing Python 3.0 is expected to take two to three years to complete.

Anticipated Outcomes:

The funding would facilitate the assemble of a comprehensive collection of 
software and educational material for use in teaching computer programming 
using Python. And it would help to expedite the development of the Python 
3.0.  The funding would be used to host a series of "sprint" workshops for 
Python experts and to fund some researchers to work part-time and possibly 
full-time on Python software development and packaging.

The "sprint" workshop development model has been successfully used to improve 
the rate at which open source software can be developed. While most of the 
work can be done via the Internet, there is a need for periodic person to 
person communications in a "sprint" setting. These meetings usually include 
presentations and demonstrations of software that is being proposed as an 
improvement or an addition to the software distributions. The dialogs that 
take place at the workshops are extremely effective at stimulating new ideas 
and energizing the community of volunteers. Unfortunately not all volunteers 
can afford to pay their way to attend sprints. The funding would help insure 
that the all the major contributors to Python are able to attend the sprints. 

A major goal of funding this activity will be to develop material that will 
make it feasible to promote Python as a viable replacement of Java as the 
standard language for Advanced Placement exams in computer science. Java was 
selected because it was widely used, not because it was particularly good as 
a tool for teaching computer science. In fact, there are a number of 
limitations of Java that make it a poor choice for teaching the full scope of 
objectives that should be taught in a modern computer science curriculum. 
Experience with using Python at the college CS1 and CS2 level [3]  indicate 
that Python would be a more effective language for quickly teaching the 
fundamentals of computer science at the undergraduate level. The referenced 
papers outline the many technical reasons for Python being a better language 
for teaching computer science. It is important to note that Python is not 
just at teaching language, such as Pascal or ABC. Python is a pragmatic and 
efficient technology that used by serious computer scientists throughout the 

[3] http://mcsp.wartburg.edu/zelle/python/python-first.html

Personnel and Financial Resources Available:
The Python community includes a world-wide assembly of world-class software 
developers. As an open source software project, like Linux, all of the source 
code is available online [4]. There are 57 persons with commit privileges to 
the Python software repository and several hundred additional contributors 
who submit software without commit access. There are also thousands of 
applications and extension modules [5] that are written in Python that are 
not part of the standard Python distribution. The main Python language 
website [6] provides a portal into the community of activity. 

The in-kind support of this community is enormous. The core language 
developers devote thousands of hours per year to the development of the 
language distribution. One measure of this effort can be found by browsing 
the email list of the core developers. There have been over 20,000 email 
messages to this list over the last two years. Browsing the content of the 
email archives reveals a devoted community of philanthropy and volunteerism. 
The proposed grant would leverage this work by enabling some of these 
volunteer to travel to meetings and by compensating some of the drudge work 
that might otherwise not be done . 

[5]http://sourceforge.net/softwaremap/trove_list.php?form_cat=178 and
an example of education specific projects at http://schooltool.org/

Sustainability Strategy:

The Python community has been working on the development of Python since 1991 
and they have received awards and industry recognition for the excellence of 
their work. Work on the development of Python is an perfect example of how 
the Internet has enabled philanthropy and volunteerism. 

The community has a very good track record for delivering results without any 
funding and the community may eventually create a 3.0 release. The resources 
of the core contributors are limited, however, and in order for some of the 
key developers to work on Python 3.0 and on the development of the 
educational distribution, some direct funding support will be required. This 
funding is primarily intended to accelerate the process. 
The funding would be of particular importance to K-12 educators. They are 
generally underpaid and have no travel budgets. Without funding it will be 
impossible for them to attend Python sprints. Ideally we could arrange for 
some of the leaders in this arena to be funded for work on a Python based 
curriculum during their summer recess. Funding the CP4E Python effort will 
enable them to devote resources to preparing polished and professional 
educational material that can be shared by all school systems throughout the 

More information about the Edu-sig mailing list