[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