[Edu-sig] re: Draft of a funding request
mmclay at comcast.net
Mon Dec 8 23:56:51 EST 2003
On Monday 08 December 2003 07:43 pm, Arthur wrote:
> >I've put together a funding request for the development of an educational
> >distribution of Python software.
> No surprise, I have some comments.
> The CP4E proposal referenced in yours gives a good deal of stress to the
> creation of a "programming environment". Now, IDLE exists, as do numbers
> of other Python enhanced editors and IDEs of various types. An
> embarrassment of riches. So, it seems to me, unless you or anyone else has
> some specific ideas of what of significance is yet missing, can't that
> stage be marked as essentially complete. And the proposal enhanced by in
> fact stressing that this has already been accomplished, based on the
> original DARPA grant. And that the requested funds can be assumed to be in
> furtherance of goals beyond that which was funded and completed by way of
> the CP4E funding.
> You are not saying anything contrary to this. You just aren't stressing
> that an important phase has already been funded and completed.
That's a good point. Perhaps what needs to be stressed from CP4E is that the
proposed educational distribution should promote a wide-spread computer
literacy. To support this goal the distribution should include a diverse
range of educational content. It should not be limited to computer science.
The distribution should include modules that would make Python, and computer
programming, interesting to other domains of expertise. For instance, Python
is well used in chemistry and physics, so including SciPy in the distribution
would be a natural fit for education. It is also used in graphics animation,
so does this mean Blender should be part of the distribution? It would not be
too strange for Blender to be appealing to someone in the art department.
Perhaps this is a somewhat odd thought, but Python does such a good job of
smoothing over the rough edges of many parts of computer science, it isn't
entirely unbelievable that it can also become a common thread for education,
at least in the context of the use of computers in education.
> I certainly don't know much about this kind of funding application.
> Wouldn't a much, much more detail budget in connection with the expenditure
> of funds be a necessity? Hate to say it, but I would hope so. Is it just
> that you posting up a generic draft, with those kinds of details to be
> provided, in the case of specific proposals.
For the letter of inquiry the details are not expected. If the funding
organization finds the idea interesting they will request a detailed
proposal. For the NSF grant application a more detailed proposal will be
required. I'm just asking the edu-sig if the idea for the proposal is of
interest. If it is, then I'll get to work on a more detailed proposal. I have
had a positive response from the usual suspects. My biggest concern regarding
the NSF proposal is the short fuse. I suspect proposing something this year
will be a good learning exercise, but we will have to wait for next year to
actually be considered for funding.
> I also happen to believe that - strategically, trying to go head to head
> with Java at this moment in time is unrealistically ambitious. And likely
> to backfire. No matter how correct the substance of your argument might be
> - or, better, is.
Hmm, there's no time like the present to advertise the advantages of Python.
Even if they do reject the proposal it will at least raise the level of
awareness. I equate the Python to Java situation of today to the SQL to
hierarchical database situation in the mid 1970s. SQL was was considered a
slow, resource hogging technology compared to the established database
technology. As the cost of computers dropped the advantages the higher level
abstraction of the SQL database overcame the added cost of hardware. I think
we are at that crossroads for Python today. When I start up an application
written in PyGtk it feels every bit as snappy as a C++ application. So
considering the current hardware constraints, what is the advantage of Java?
In fact, Java applications are probably a bit more sluggish starting up when
compare to Python.
> I would be stressing the many projects already using Python in math and
> science related educational environments. And targeting funds to expand and
> enhance those kinds of uses for Python. Robotics, mathematics, physics, etc
> and etc.
I agree that we need to advertise the success stories of Python.
> All ideological notions aside, this to me has to be the best strategic
> approach. Betting all on being able to convince folks that Java needs to
> be backbenched - too much on one number, IMO. A long shot.
I don't intend to bet everything on replacing Java, but I do want to raise
this interesting question. Why is Java being given such an easy ride? Java
had Sun. Python is holding its own with no such sponsorship.
Java got a free ride in the decision to select it as the standard language for
the AP exams. C++ was clearly a horrible choice as a replacement for Pascal,
but was Java the only viable alternative? There was no comparative scientific
analysis of the merits of available languages. Java was selected as a
teaching language for the same reason C++ had been selected. It was simply a
A paper was recently reference on this mailing list, or the marketing mailing
list, that was titled, "AP CS Course Content and Examination Alternatives."
As this paragraph from the paper states, pseudocode was promoted as the
appropriate language to use in teaching computer science.
In computer science as in other disciplines, a language provides a
mechanism for communication. In describing algorithms and solving problems,
any such language must be clear and unambiguous. Thus, virtually all
colleges and universities introduce a programming language in their
introductory CS1-CS2 courses. Some time ago, pseudocode was promoted at
SIGCSE Symposia and elsewhere as an appropriate alternative, but this
approach does not seem widely discussed today. Rather, colleges introduce a
specific language, so that students get direct feedback from compilers and
run-time environments, and so that precision of thinking can be sharpened
and evaluated through testing. Some have argued that this hands-on
perspective also follows from a general orientation toward practicality in
the United States; US culture places great value on practical objects that
perform tasks and solve problems.
The paper goes on to say that to be effective the teaching language must also
be executable, and since pseudocode was not executable it was better to use a
compiled language to teach computer science. (Apparently the authors were not
aware that Python has been dubbed the executable pseudocode language.) The
paper then creates a paper tiger to justify selecting Java as the best
language for teaching computer science.
The selection process for picking the AP exam language should be challenged.
The current selection should be reconsidered. The language that is used for
AP exams should be an effective tool for teaching computer science
fundamentals at the high school level. The high school course is not intended
to teach students to be production software developers. They are being taught
basic computer science concepts. Also remember that at this period in their
education the audience is being introduced to materials from a broad range of
disciplines. They will be selecting a field to study based on the classes
they take in high school. It just may be possible to capture the imagination
of high school students and make computer science appealing to a wider
audience by teaching with a language that makes programming fun.
A course that introduces computer science should teach the principles of
computer science. As small an effort as possible should be devoted to
teaching the teaching language.
> And definitely not the way to go.
> Though I certainly wish you luck, however you decide to approach it.
Thanks for the comments. They will be helpful in shaping the justification for
investing in teaching Python as a first language.
More information about the Edu-sig