4 ms·
The University I'm at (University of Canterbury, Christchurch) is switching from Java to Python for 2010. The main reason is that we loose ~10% of the undergra
by spectre 17y ago
The University I'm at (University of Canterbury, Christchurch)
is switching from Java to Python for 2010.
The main reason is that we loose ~10% of the undergraduate enrolment explaining why hello world is:
public class Main { public static void main(String[] args) { System.out.println("Hello World"); }}
- sketerpot 17y agoI'm TAing an introductory programming class, and the reason we lose people is because programming can be hard for people to wrap their minds around. Loops are easy for you and me, but for a bewildered freshman who's never seen them before, translating a simple problem into actual looping code can seem like an insurmountable brick wall. Ever seen someone write "for" and then stare blankly at the screen for the next half hour? It's painful to watch. (I just got back from helping a bunch of freshmen try to test a number for primality. It was brutal. And we're using a language without all that "public static void main" stuff, so that's not even an issue.)
- Pistos2 17y agoWhat language is that?
- sketerpot 17y agoWe're using Matlab. I'm teaching electrical engineering students, so they're going to have to know Matlab soon anyway. It's got fairly straightforward syntax, very nice vectorized array operations, and a read-eval-print loop so you don't have to waste time compiling. It's not as pretty and pleasant as Python, but the difference isn't significant at that level.
- polyester 17y agoI'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.
- ShardPhoenix 17y agoBlueJ 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.