Professors Slam Java As "Damaging" To Students
Just posted on SlashDot.com is an article outlining the problems with teaching Java as a first language for CS students. I can relate to this as my uni decided to change from Ada95 to Java during the second year, this was interesting at the time, but Java had only just come out and I didn't know anything about the language at the time. I can now see it's problems. In retrospect I think my uni was just jumping on the Java bandwagon. In a way there was some foresight in this as there are now a lot of jobs in industry for Java programmers, mostly banking but even some real-time (I have no idea how well this works).
Let's face it:
- You really should have programmed before doing a CS degree anyway, but these courses do actually go through the A-level CS stuff in the first year anyway.
- Teaching Java is a bad idea as a first language as it doesn't touch on pointers and this is necessary for understanding the hardware (later courses will go into this).
- Teaching C or C++ isn't a good idea either considering it teaches really bad programming habits that are hard to get out of later on. Yes, I was a C/C++ programmer before Ada.
- If anyone is thinking about it, don't teach VB as a first language either, cos it's crap, half the time it works, type in the same program and it might just work the second time. This has been my experience!
In my CS course they tried to teach Haskell (a functional language) and PROLOG (logic) and they failed miserably. The guy teaching functional programming wasn't a lecturer, didn't like lecturing and lets face it was crap at it. He took a tape recorder into the lecture as back up just in case anyone complained about the course; which they did. The guy taking the PROLOG course was actually the head of department and was Italian, not the best English speaker in the world and didn't like teaching undergraduates. PROLOG isn't the easiest language to get to grips with, but if the lecturer can't speak English that well, he's got no chance.
Also that article mentions formal methods, they taught us discrete maths and Z, I got to the point where I could read Z (ish), but couldn't write a spec in it to save my life. Also, the formal methods used later were an extension of this but without the Z notation (just set theory really) and relating this to actual programming practice is difficult. Let's just say, I didn't really find it easy and subsequently never used it. In industry, it's unlikely students will ever use it either.
Now, unfortunately, having been out of programming for a few years after total burn out I can't say my maths is the best and I've no idea if I'll ever get back to where I was when I was at uni, so I can't say if I'll ever touch a functional language again or even formal methods. Oh well.