[LINK] What programming language for schools?

Gordon Keith gordonkeith at acslink.net.au
Tue Mar 15 14:17:59 EST 2005


On Mon, 14 Mar 2005 00:08, Stephen Loosley wrote:
> Am wondering about Link ideas/comments regarding
> programming language teaching in Australian schools.

Some comments from my experience.

I have primarily worked as a java/C/C++ programmer for the last ten years. I 
have experience with a number of languages such as pascal, lisp, modula 2 
from my uni days (early 80's). My first programming language was APL.

I have a daughter who has just started computer science in year 12 in 
Tasmania, her first programming experience. They are learning java and doing 
their assignments as Applets (It must be 8 years since I last wrote an 
Applet, and nearly as long since I used plain vanilla awt).

The machine we have at home for doing homework on is a PII 400MHz with 256MB 
RAM linux box. (I work on computers, I don't spend money on them).

So mine is probably an atypical situation.

Java strikes me as reasonably good learning language as it:
* is OO,
* is cross platform, 
* has a reasonably well documented API, 
* is strongly typed,
* protects the early learner from some of the messier aspects of memory 
allocation and pointer manipulation, (ie uses garbage collection)
* is used in the real world,
* has the ability to generate documentation from comments embedded in the code

My daughter likes to be a bit creative and java makes it relatively easy to 
add little extras, the "fun" element. For example her first assignment was a 
"Hello World" applet. With a little bit of help she was able to write "hello 
world" on a blue circle representing the earth with a sun and moon in the 
picture. The ability to easily add random colors, fonts and numbers to her 
second assignment also made the exercises enjoyable challenges rather than 
just hack work.

The ability to browse the api documentation to find ways to add the extras 
allows the interested student to explore more. 

Most of the java source is written in java and available for downloading and 
browsing. You can investigate how something is done in the core libraries and 
hopefully be exposed to good coding practiced. 

The API documentation is available as a HTML pages generated by the javadoc 
tool from the comments embedded in the source code. The same tool is used to 
generate documentation from the students code, so encouraging good 
documentation practices.

The Uni of Tas also uses Java as its main computer science language, so it 
makes some sense to use the same in high schools (although I learnt basic in 
high school and pascal in uni).

I'd agree with most the comments others have made. An OO language for a first 
language is a good idea. A scripting language is probably also good. Java 
applet have to be embedded in web pages so the student is exposed to little 
html as well. Don't know if that's why applets are taught instead of java 
applications.

C/C++ is a bit too messy wrt memory allocation and pointer funnies. Java is 
fairly similar to C in syntax so if you learn java it is straightforward to 
read C. Java is well supported by IDE's, if you like that sort of thing but 
can be written with any text editor (the KDE editor Kate provides syntax 
highlighting for Java but is basically just a text editor).

Java provides the data structures, typing and basic programming  that I learnt 
from pascal in my uni days. Although Pascal's "if exp then statement" is 
probably nicer that Java's C-like "if (exp) { statement }" for the novice 
programmer (though that might just be my bias). 

I don't know perl, python or ruby so I can't compare them with java.

Pascal isn't OO, so I think java is better. Delphi isn't cross platform.

Anything visual isn't going to teach programming at all, at least not in the 
sense of computer science. If you just want to be able to create programs 
then visual X might be OK, depends on the aims of the course. Again the 
visuals tend to be platform specific. (Platform specific means less students 
will be able to do their work at home.)

HTML and CSS shouldn't left totally out of consideration, depending on course 
objectives. They aren't programming languages as such, but good html (xml) 
skills could be more useful than visual basic skills.

Just my 2c.

Regards
Gordon


More information about the Link mailing list