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.
By comparison, our local community college teaches a few classes in VB,
I'm certianly not against any of this, but out of curiousity does
anyone know of a school that teaches Python?
University of Maryland
"I have the students learn Python in our undergraduate and graduate
Semantic Web courses. Why? Because basically there's nothing else with
the flexibility and as many web libraries," said Prof. James A.
There are many. Wartburg College <URL:
http://mcsp.wartburg.edu/zelle/python/ > is an example. <URL:
http://www.python.org/community/sigs/current/edu-sig/ > likely
will interest you.
I'll gratuitously add that, even though I'm personally fond of
C++, I think teaching it as is done in colleges and high schools
(!) amounts to child abuse. It's wildly inappropriate.
> I'll gratuitously add that, even though I'm personally fond of
> C++, I think teaching it as is done in colleges and high schools
> (!) amounts to child abuse. It's wildly inappropriate.
C++ programming requires you to
massively invest your thinking
first into the setup of your
build environment (can only be
beaten by Java here).
This is where the real abuse
starts. Plain C++-baby-style
(with some structs and cin/cout)
is just fun, despite the required
'variable prototyping' (which is
not that bad for a beginner).
> 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
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,
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
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...
Actually, I think Java is the most commonly used language in the CS1,
although C++ may be more popular at engineering institutions.
>> By comparison, our local community college teaches a few classes
>> in VB,
>> I'm certianly not against any of this, but out of curiousity does
>> anyone know of a school that teaches Python?
See the following for a list compiled from responses on the python-
Well that Professor has shown his ignorance to the world but not for
choosing Python. : )
>... let's try some google searches and see the number of million hits...:
But how reliable are those estimates of numbers of hits, anyway? More
than once I've got a page showing something like "Results 1 - 10 of
about 36 hits", only to find that there were no more pages after the
second one. If it could get estimates so wrong with such small numbers,
how can you trust the large ones?
>C++ programming requires you to massively invest your thinking
>first into the setup of your build environment ...
I don't understand why. It's easy enough to build small programs with a
single g++ command.
If you read what it says at the bottom of the last page of results (this
example from a claimed 90 hits, but only 27 visible):
> In order to show you the most relevant results, we have omitted some
> entries very similar to the 27 already displayed. If you like, you can
> repeat the search with the omitted results included.
Google's hit count includes all the pages which by default it filters out.
In particular it only returns you two pages from each site in the initial
results (grouped together and with the second one indented). If you repeat
the search with filtering turned off then you should find that a small
count of hits is pretty accurate).
Think about beeing a young guy with a
windows pc at home.
To make sense of your 45 min C++
class, you need to practice the
stuff at home for sure, I'd guess.
Now go ahead! What would you do?
Download "The C++" from the Internet,
click on setup and start? Right ;-)
If your experience in the matter dates from a few months ago (and most
of us may have done Google searches for years, contributing to form our
impressions) it may perhaps not be all that applicable any more,
according to rumors from early this year (e.g.
<http://www.eweek.com/article2/0,1895,1916406,00.asp>) and blogging
notes by Matt Cutts at <http://www.mattcutts.com/blog/bigdaddy/> .
If you can give examples of a query which estimates the (small) number
of results very badly, net of course of Duncan Booth's observation
regarding Google's attempts to filter out near-duplicates, I'll be glad
to look further into the matter (my group is Production Systems, just
about as far from such issues as you can imagine -- rather, we write
software to keep our clusters, networks &c smoothly running, monitor
them, and so forth -- but, of course, I do have friends over in Search
Quality and related groups... fortunately, Google has so far managed to
avoid much of the "silos syndrome"... so I'll be glad to check it out,
but I do need specific examples!-).
A while back I had the opportunity to teach a section of an
introductory computer science course in C++. They had recently
abandoned Pascal in favor of C++ as the language of choice. There
was certainly some spinup on the development environment to do,
but it wasn't too terrible.
I think the real problem with C++ is that there is a lot of
conceptual baggage to work around to get to a useful program without
having the students "unlearn" things later. Just basic things like
const (in its various forms), pointers vs. references, class basics,
headers, etc., are necessary for idiomatic C++ programming, but
they get in the way of teaching more basic concepts of program
I understand that the school switched to Java a short time later,
which is some improvement, but still has a good bit of baggage.
Now the Schemers have taken over, so they teach Scheme as the
introductory language. One thing about Scheme is that it doen't
have a lot of baggage; there is no room for it in the spec. :-)
To return to topicality for a moment, I think exposing new
students to a combination of Scheme and Python might work well,
providing different views of how to build programs, and leaving
the students with both theoretical and practical foundations on
which to build.
p.s. Then sock them with ML or Haskell to weed out the weak ones. ;-)
Then if they survive Occam, throw Java at them, so they'll
know what they are missing but can still get a job...
>Thus spoke Lawrence D'Oliveiro (on 2006-06-26 09:21):
>> In article <e7lv4a$h6k$1...@mlucom4.urz.uni-halle.de>,
>> Mirco Wahab <wa...@chemie.uni-halle.de> wrote:
>>>C++ programming requires you to massively invest your thinking
>>>first into the setup of your build environment ...
>> I don't understand why. It's easy enough to build small programs with a
>> single g++ command.
>Think about beeing a young guy with a
>windows pc at home.
>To make sense of your 45 min C++
>class, you need to practice the
>stuff at home for sure, I'd guess.
>Now go ahead! What would you do?
Download a Linux distro with a complete GCC, Emacs, GDB etc. Then go
> I understand that the school switched [from C++] to Java a short
> time later, which is some improvement, but still has a good bit of
Java started out trying to avoid most of the complexities of C++, but
ended up having to reintroduce many of them anyway.
>p.s. Then sock them with ML or Haskell to weed out the weak ones. ;-)
> Then if they survive Occam, throw Java at them, so they'll
> know what they are missing but can still get a job...
And yet, because they didn't start with Java, they'll still have the
ability to think. Which is bound to annoy PHBs out in the "real" world