I'm currently a student at Sydney Uni (having a second go at a BSc after 20
years). As far as I understand, they ditched Blue as of this year for Java
as a first language. I believe they are still using the Blue environment
(a variant called BlueJ, which I think someone else mentioned).
In terms of teaching people their first programming language, I think Java
is a good idea, simply because most people who've decided to learn
programming have probably heard of it, and it provides pretty much the same
facilities as, say, C++, while holding your hand tightly and is something
that they can potentially actually use when they get out into the workforce
(unlike Blue). Of course, market value shouldn't necessarily be the main
criterion, but everything else being equal, it's worth considering.
I can't imagine what it must be like to write C++ code in a first
programming course and spend hours trying to track down some silly typo
that's causing a memory scribble which is trashing your program. I don't
think that is a very encouraging introduction for most people :-).
If you did want to go with C++, the one point I would make is that it
should be taught using the STL from day one. This allows people to write
reasonably non-trivial programs without having to know every feature of
C++. There's an excellent book available now, by Andrew Koenig and Barbra
Moo, called Accelerated C++ that takes this approach and does an excellent
job of it.
While it's very likely that not one person in your course will have heard
of Python, they are likely to get into it very quickly, because it is
designed to be straightforward to write ... AND read (unlike perl ... yes,
you can write readable perl, but most people just don't seem to
bother). It provides the same kinds of data structures as perl, so people
can write serious programs almost from the start.
I think it's already been mentioned that Tk access is available from
Python, so you can give people a nice experience by letting them do some
basic GUI programming, a la the suggestion from the chap who said his first
language was VB, without using (or paying for) proprietary licences.
Of course, if you wanted to go way out to left field, you could try
teaching Ruby :-). Or, as my C++ lecturer suggested, Befunge ... of
course, that's not a serious suggestion!
Also, I note from the course page that you get into regular expressions ,
shell scripting and revision control. That's a good idea for people who
are going to work in a UNIX environment. The earlier people pick up those
skills, the easier life is for them later on, since it makes their everyday
experience more manageable.
Of course, you should be summarily executed for mentioning emacs to them :-).
-------------------
Harry Ohlsen
--
SLUG - Sydney Linux User Group Mailing List - http://slug.org.au/
More Info: http://slug.org.au/lists/listinfo/slug