On 9/06/2011, at 11:53 PM, Rebecca Yates wrote:
> 
> "The aim of the program is to give the participants a strong grounding in how 
> computers work, how networks and the Internet works, and how to write 
> software using the Java programming language and a variety of other software 
> tools.
> 
> The participants will understand how quality software is developed, how to 
> find information to help them solve problems, and hopefully they will learn 
> that programming is a fun and rewarding activity."
> 
> This is because they're having trouble hiring good graduates, so they are 
> hoping to nurture a few of their own. Does PPIG have any advice for them?

Yes.  Don't teach Java.

Java has some seriously strange syntax which can only be justified historically.
Suppose you want to start with printing the sum of 3 and 4.
Compare

        public class SumOfThreeAndFour {
            public static void main(String[] args) {
                System.out.println(3+4);
            }
        }

with

        print 3+4;


We have an introductory paper (COMP 160 : www.cs.otago.ac.nz/comp160) that
uses Java.  That page has a link to http://norvig.com/21-days.html, which
the Annadale Technology people would benefit from reading.
We have an introductory paper (COMP 150 : the web material is locked up in
Blackboard, sorry) that uses Python.  I'm not involved with either paper,
but the HOD, who runs COMP 150, has been very happy with the results, and
it is now recommended as "suitable ... as preparation for .. COMP 160".
That is, before learning _Java_, it pays to learn something about
_programming_, and that's definitely easier using Python than using Java.

Python is certainly good enough to do serious Internet programming and
graphics.

There seems to be something about Java that rots the mind; students seem
to have real trouble producing "quality software" in it.  There are some
amazing power tools (like JML checkers) that you can plug into Eclipse,
-but- you have to be a pretty good programmer to get any benefit from them.
Eclipse seems to be mainly useful for helping people write vast amounts of
code that would not be necessary in a higher level language.

If Annadale insist on sticking with Java, they should look at the BlueJ
environment and then look at DrJava, environments designed for beginners.
I must say that I find the plain old interactive text interface of Python
more supportive than BlueJ...

Disclaimer:  I am not a Python programmer, but I have colleagues and
have supervised students who are.  I've found their code easy to read,
even though I couldn't (yet) have written it.







-- 
The Open University is incorporated by Royal Charter (RC 000391), an exempt 
charity in England & Wales and a charity registered in Scotland (SC 038302).

Reply via email to