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

Reply via email to