Rethinking the Java Curriculum: Goodbye, HelloWorld!
Subject:   In defense of Hello World.
Date:   2002-08-25 21:36:41
From:   amuys
I run a computer based holiday camp for High School students, during which we (attempt to) teach them basic programming over the course of one week. Over the years, we have used a number of languages, Java included. In all cases helloworld proved critical.

1) As mentioned previously, it provideds a critical system environment test. You simply cannot assume that just because the environment for N-1 lab machines is correct, environment N is as well.

2) It provides an opportunity to introduce the development environment. This *must* include concepts such as editing, compiling/interpreting, and executing files etc.

3) It provides immediate feedback, and a substantial morale boost at a critical stage of the learning process (ie. the start).

4) Contary to previous comments, focusing on code modification rather then creation is a serious mistake. The critical skill the student needs to learn as soon as possible is the mental process of functional decomposition. Helloworld demonstrates a minimal complete program; even the fuzziest cognative map of the execution entry-point is infinately preferable to the impression of 'black magic happens here'.

5) It provides a natural point of comparision should you decide to use a GUI Helloworld example next. We have found this very advantagous as it substantially reduces the perceievd gap between the program the student has just written, and the programs the student has previously used. This perceived gap can be very deoralizing to some students.

Compared to the disadvantage of using a non-OO first program we find these advantages compelling. I don't see us abandoning the classic helloworld application anytime soon.