I'm at the same university, and I feel the movement away from Java for introductory programming is a step in the right direction, primarily because of this initial learning curve. The example you've given perfectly demonstrates why Java should not be used as a teaching language - just getting a simple program running, you have thrown at you classes, methods, arrays, packages, access modifiers etc; this serves as a large barrier to learning the important programming concepts.
This isn't a call to "dumb down" Computer Science - the curriculum should still be challenging, but Java is the wrong kind of challenging. Students are spending more time learning how Java works than learning how to program.
We're losing a lot of students who might otherwise love programming if they could see the beauty of it earlier on. Having students learn using a Lisp would be better (hooray for minimal syntax!), but Python is a nice compromise.
BlueJ is a pretty good solution to this since it lets you play around with objects and methods before you ever have to write public static void main etc. In fact, in "Objects First With Java", the book we used in my first Java class, the main method isn't even introduced until chapter 7.
This isn't a call to "dumb down" Computer Science - the curriculum should still be challenging, but Java is the wrong kind of challenging. Students are spending more time learning how Java works than learning how to program.
We're losing a lot of students who might otherwise love programming if they could see the beauty of it earlier on. Having students learn using a Lisp would be better (hooray for minimal syntax!), but Python is a nice compromise.