By bscarr
via regdeveloper.co.uk
Published: Jan 12 2008 / 09:56
The choice of Java as a first programming language in computer science courses is undermining good programming practice, according to two leading academics.
Comments
irbull replied ago:
I have heard the opposite from "leading academics"... I would love to know their definition of "leading"!
I should write an article about how I don't really understand some technology... Therefore I teach it poorly, and guess what, my students didn't learn a thing, so therefore it is the technologies fault! Have these "leading academics" ever written a substantial application in Java that was properly critiqued or did they just try to teach C in Java syntax.
I have heard (from leading academics) that Java is Slow, Java is only a script language used in the browser, Java is only for building GUIs, and I have heard from other (leading academics) that we should not teach compilers, OS or anything "systemy" since the majority of students will never use this. It is amazing what can get published if a "leading academic" says so.
ksh2dzone replied ago:
Indeed! (Also I think Java is not that bad. Java just is not that.)
matt_yucha@yahoo.com replied ago:
The “lack of mathematical rigor and formal techniques” indicates a defect in individual course outcomes, program outcomes as a whole, poor instruction from professors, and/or poor leadership from the department chair. One of the real benefits of academic accreditation (in my opinion) is that it forces faculty to examine these outcomes, build continuity, and produce artifacts to be validated by the accreditor.
In my opinion C/C++ and assembler are well suited for computer science because they offer a greater degree of expression (and optimization) than higher level languages such as Java. Computer science students should be steered away from code generation and VM runtime optimizations so they can learn how to do it themselves. This is why they choose to be computer scientists not software engineers. On the other hand, software engineering and MIS programs should be primarily using higher level languages like Java for OOP, design patterns, and building multi-tiered systems.
kogent replied ago:
The issues raise with Java have nothing to do with Java, as those types (non-gui, backend software) of programs are written in Java all the time.
The issues with students not being able to learn hard things... well that's a whole other argument, completely unrelated to the worth of ANY language.
noblemaster replied ago:
View from a computer science graduate: Half the professors don't know how to program, the other half doesn't know how to teach it. There are some good professors alright. The problem isn't the language, it's the teachers...
sigzero replied ago:
Did you notice anything about the credentials? I will give you a hint. They said ADA was better and some of them are in the ADA community.
,
Nick Brown replied ago:
Are you claiming that the fact they have in depth experience in programming languages is a bad thing or hurts their credibility?
jwenting replied ago:
No, but their close connection with Ada shows they are more into procedural than OO paradigms and may well have an agenda.
Nick Brown replied ago:
Of course they have an agenda. So do you, and so do I. We all have agendas. That doesn't mean they don't have valid points. To throw out the arguments of anyone involved in the subject matter and who might (god forbid) have some level of expertise because of a fear that they might have "an agenda" is just silly.
And for the record, at no point do they try to hide the fact that they are involved in Ada, in fact they specifically point that out.
Nick Brown replied ago:
Read the actual paper (available here: http://www.stsc.hill.af.mil/CrossTalk/2008/01/0801DewarSchonberg.html), not these crummy articles that try to turn a valid complaint on our educational system into a language war. They are not slamming Java, in fact they compliment it and argue that it is an important language for students to learn. They are slamming educational institutions that seem to be teaching students more how to pull something out of a library than how to actually develop an actual system.
jwenting replied ago:
If so (I can't reach the site, noticed before US military sites are poorly accessible from here), that's a good thing. It is however caused by teachers who don't understand the material they're teaching more than the language (though the easy availability of external libraries in Java makes it easy for people to use those rather than develop things themselves, a valuable comodity in business but a fatal flaw in training).
Voters For This Link (9)
Voters Against This Link (26)