Python taught in schools?

Alex Martelli aleax at mac.com
Sun Jun 25 18:23:07 CEST 2006


MilkmanDan <digitalsubjunctive at gmail.com> wrote:

> I'll be a college freshman this fall, attending Florida Institute of
> Tech studying electrical engineering.
> 
> I was considering taking some classes in programming and computer
> science, and I happened to notice that everything taught is using C++.
> After further research, it seems to me that C++ seems to be the
> dominating language in universities.

Must be a weird local phenomenon -- my impression (based on
non-scientific but widespread observations) is that _Java_ has come to
dominate the programming-language scene in universities.

One such observation struck me intensely last year, for example, as Tim
O'Reilly was showing (at Euro OSCON 2005) his rich graphical environment
for looking at book sales (by category, time, etc etc): Java book sales
display an obvious, strong "cyclic" seasonality with a yearly cycle, in
a perfect correlation with the times at which students would be likely
to buy books.  No other language whose book-sales data Tim displayed had
anything like that obvious an effect (C, C++, Basic, Perl, Python, Ruby,
...); funny enough, Tim himself, while obviously "seeing" the
seasonality (the UK-sales diagram in particular looked almost like a
sine wave!-), hadn't thought of the "student purchases" explanation.

For some reason, the effect, while obvious already in US data, was even
more pronounced in UK data; perhaps UK universities have less flexible
timing &c for courses (I don't know much about UK universities -- I do
know, however, that in Italy for example summer courses for undergrads
are rare to non-existent, while I see there's quite an offer of those in
the US).

Many others have remarked on Java's ascendancy as a language in
universities in many different contexts.  Joel Spolski, for example, has
bemoaned that ascendancy's effect on how well he can evaluate a new grad
in a hiring interview: when undegrads typically learned C or Lisp, he
says, he had sure-fire ways to probe if a candidate "has what it takes"
to be a top programmer, by asking hard questions respectively on
pointers and on recursion; with "everybody" learning Java, he's lost
that chance, because a candidate may never have seen pointers and be
quite unfamiliar with recursion (supported in Java, of course, but
hardly the staple it is in Lisp!-), so poor performance on such
questions does not really indicate much:-).

Paul Graham, a paladin of Lisp, created quite a stir by stating that
you're likely to get better programmers if you look for ones experienced
in Python rather than ones experienced in Java; in the midst of the
resulting flamefest, he clarified that the issue is not so much about
the specific nature of the languages (although, like many Lisp'ers, he
finds Python a lesser evil than Java, technically) -- rather, he says
that a programmer who's only experienced in Java may have merely
"fallen" into it because that's what universities teach and he or she
had no motivation to "look elsewhere" and thus probably no deep passion
for programming, while somebody experienced in Python (which is not as
widely taught) must have taked that path by choice, evidencing a real
passion for programming (by looking around and choosing reasonably well
-- of course, for Graham, only Lisp would be the "perfect" choice;-).

A similar line of reasoning has been used to explain the empirical
findings of Software Development magazine's yearly survey on
programmers' salaries, which, for years, has shown Python programmers at
the top of the heap and Visual Basic programmers at the bottom (I do not
recall where Java programmers place, but I think it's closer to the
bottom than to the top): VB programmers, goes the reasoning, are closer
to have "stumbled" into it and to have no real experience of other
languages, while Python programmers typically have strong experience in
more languages and use Python _by choice_ -- so, again (the reasoning
goes), it's not so much about the languages "per se", but the sociology
and psychology around them.  ((in terms of the emerging economics
discipline of "asymmetric information markets", this would make Python
expertise a "signal" of a strong programmer in a way that VB or to a
lesser extent Java would not)).


> By comparison, our local community college teaches a few classes in VB,
> Java, Javascript, C++, and for some reason, PASCAL.

Interestingly, Mission College (Santa Clara, CA) offers C (I know
because my wife's been studying there to accumulate some credits while
Stanford considered her application -- it's now been accepted, so she'll
be starting Symbolic Systems there in the fall); Bologna University (I
know the details because of the recent study there of my son [Financial
Economics], daughter [Telecom Engineering] and daughter's boyfriend
[started with Civil Engineering, switched to Political Science] offers:
a first course in C, and a second one in Java, for Telecom; Fortran, for
Civil engineers (all of these are mandatory for these majors); no
mandatory programming for either economics or political scientists, but
the suggested optional courses are respectively focused on Advanced
Excel (with some VBA for advanced macros) and SPSS (a well-known package
for statistics, rather than a "real" programming language).

> I'm certianly not against any of this, but out of curiousity does
> anyone know of a school that teaches Python?

A brief Google search (discarding the flurry of news about Burmese
pythons in the Everglades...;-) shows for example that the UWF (for a
GIS certificate) requires among others a "UWF Programming Course
(Java/SQL/Python/etc.)" for 3 semester hours; UMD's page on professor
Einstein's course "Introduction to programming in the physical
sciences", entirely focusing on Python, has among the recommended
"references" an entry for "Advanced topics from U. Central Florida
python class" (which is unfortunately a dead link); the Course Syllabus
page for the graduate course "Simulation Analysis of Forest Ecosystems"
at ufl.edu includes three Python programming books (and none on other
languages); "University of Florida" is also listed at
<http://wiki.python.org/moin/SchoolsUsingPython> but with no usable link
or details.  So, yes, Python _is_ used in some Florida universities, but
it sure looks like it just occupies some minor niches.

To get some indication of the popularity of languages in universities,
let's try some google searches and see the number of million hits...:

python programming      66.9 M
java programming                219 M
c++ programming         98.9 M

and

python university               11.9 M
java university         110 M
c++ university          26 M

so, besides the general indication of relative popularity of the three
languages, we can't fail to notice: *OVER HALF* of the java hits also
mention university, as compared to *JUST ABOVE 1/4* for C++ and *JUST
ABOVE 1/5* for Python -- a rough but interesting confirmation that Java
dominates University uses far more than other fields...


Alex



More information about the Python-list mailing list