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).