[Edu-sig] re: Draft of a funding request

Michael McLay 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 
popularity contest. 

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 mailing list