[Edu-sig] Draft of a funding request
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 , 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 .
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  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.)
Letter of Inquiry for the Kellogg Foundation
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)  project.
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 . 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.
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.
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  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
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 . 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  that are written in Python that are
not part of the standard Python distribution. The main Python language
website  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 .
an example of education specific projects at http://schooltool.org/
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