Author Topic: Java damaging to students?  (Read 3772 times)

0 Members and 1 Guest are viewing this topic.

Offline Kosh

  • A year behind what's funny
  • 210
Java damaging to students?
http://developers.slashdot.org/developers/08/01/08/0348239.shtml


Any thoughts from the programmers amoung us?
"The reason for this is that the original Fortran got so convoluted and extensive (10's of millions of lines of code) that no-one can actually figure out how it works, there's a massive project going on to decode the original Fortran and write a more modern system, but until then, the UK communication network is actually relying heavily on 35 year old Fortran that nobody understands." - Flipside

Brain I/O error
Replace and press any key

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: Java damaging to students?
I didn't read the full article (only the slashdot summary and a quick scan of the article) but I didn't find anything I disagree with. They're not saying Java is bad, they're saying Java ONLY is bad. And I agree with them. Learning only Java means that certain fundamental rules of programming are missed out.

Java teaches a lot of important skills (Learning OO is much easier in Java for instance as is learning multi-threading) but that very ease means that there are lots of things that are fundamental to programming in other languages that the student will leave university not knowing. Turning out graduates of a programming course who don't know what a pointer is isn't anything to be proud of.

Java needs to be taught alongside the other languages. Not as an alternative to them.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline blackhole

  • Still not over the rainbow
  • 29
  • Destiny can suck it
    • Black Sphere Studios
Re: Java damaging to students?
I just hate Java, period. But thats me :P

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: Java damaging to students?
Java is the devil.
but I'm biased, as are these guys (who both happen to be on the Ada board)
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 
Re: Java damaging to students?
They teach Java only at my IT department as well. It is stupid. I wish I had the ability to choose which language I get.

 

Offline Hippo

  • Darth water-horse
  • 211
  • Grazing.
    • All Hands to War
Re: Java damaging to students?
Quote
Students found it hard to write programs that did not have a graphic interface, had no feeling for the relationship between the source program and what the hardware would actually do, and (most damaging) did not understand the semantics of pointers at all, which made the use of C in systems programming very challenging.

Agree. I learned C++ first, and despise Java.
VBB Survivor -- 387 Posts -- July 3 2001 - April 12 2002
VWBB Survivor -- 100 Posts -- July 10 2002 - July 10 2004

AHTW

 

Offline Turey

  • Installer dude
  • 211
  • The diminutive form of Turambar.
    • FreeSpace Open Installer Homepage
Re: Java damaging to students?
I don't mind Java.

Anyway, at my University, CSC101 is C/C++, while CSC102 and 103 are both Java. Not sure about the upper classes though.
Creator of the FreeSpace Open Installer.
"Calm. The ****. Down." -Taristin
why would an SCP error be considered as news? :wtf: *smacks Cobra*It's a feature.

 

Offline CP5670

  • Dr. Evil
  • Global Moderator
  • 212
Re: Java damaging to students?
The CS departments at many American universities started using Java exclusively for their intro level courses a few years ago, ever since the College Board switched the AP exams to it. I had to learn it to satisfy a requirement, even though I don't have much use for it in applied math and would have done something else if I had a choice. (although I ended up learning other stuff later on anyway)

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Re: Java damaging to students?
This article really rubs me the wrong way, and the more I read it the more uncomfortable I become.

As far as I know, Ada is a relatively obscure language. I've heard of it before, but mostly for its programming concepts (and lest that suggest it's in any way superior to another language, I've also heard of Java, C, C++, D, Lisp, Fortran, Pascal, Basic, Assembly, Lua, Ruby, and so on and so forth for their programming concepts.)

From the very start the article has issues. The three items for instance:

Quote
Mathematics requirements in CS programs are shrinking.

CS continues to depend less and less on raw mathematics as it becomes more possible to abstract things to the point where you can rely on previously written code rather than on raw mathematics. You don't have to actually write the graphics engine, for instance, if you want to program a 3D game. That cuts down a huge amount on the math that you actually need to know. You don't need to figure out how to distort a texture based on mathematical formula - you just feed the coordinates and orientation to the video card and it does the work for you.

Naturally, as this becomes more and more common in the field, more and more possibilities will open up - that don't require math. Simply because the requirements are shrinking doesn't mean that the options are.

Quote
The development of programming skills in several languages is giving way to cookbook approaches using large libraries and special-purpose packages.

Though the article elaborates on this, I say good. It shows that the tools that have been developed in the past are versatile enough to be used now, and save a lot of time. You don't need to recode a windowing system; it's done. Now all you need to do is write a few lines of code and Java will do it all for you. This same kind of specialization is, AFAIK, occurring in several other fields as well.

The only downside is that when somebody decides that what they learned is not for them, or their skills become obsolete because of automation. However that does not seem to be a concern of the article, as the article repeatedly reinforces the idea that math, computer hardware, and fine-tuned "bug-free" programming ought to be the goal of software engineering programs. Coincidentally, that required curriculum would also force SE graduates to gain the skills required to work on Ada-based projects (eg aerospace and defense) which would give any companies using Ada a larger pool of employees to select from and thus they would have an easier time hiring people for less. But I digress...

Quote
The resulting set of skills is insufficient for today’s software industry (in particular for safety and security purposes) and, unfortunately, matches well what the outsourcing industry can offer. We are training easily replaceable professionals.

Are people in China or India somehow inferior to people in America? Why isn't it a surprise, then, that they can do the same things that Americans can do, and just as well? Especially when the US is around to provide education to those people, and many companies (including companies that work on defense-related products) do outsource because of the cost savings, which promotes further outsourcing and gives the people in those countries training that they would not have had easy access to otherwise.

Quote
    It [Texas A&M] did [teach Java as the first language]. Then I started teaching C++ to the electrical engineers and when the EE students started to out-program the CS students, the CS department switched to C++. [5]

It will be interesting to see how many departments follow this trend. At AdaCore, we are certainly aware of many universities that have adopted Ada as a first language because of similar concerns.

So, does Ada actually improve the situation, or make it worse? They fail to say. :p

And in addition, does that have anything to do with Ada, or does it have something to do with the fact that it's a university that takes enough of an interest in its curriculum to actually care about what it's teaching rather than blindly follow the crowd? And such a university would be more likely to attract students who are genuinely interested in programming, and actually learn on their own and do more than the minimum requirements.

Funny, I'd rather put my "safety and security" in the hands of someone who is genuinely interested in what they're doing and how well they're doing it. The person that spent their extra time learning the things that they wanted to know that college didn't require, rather than the person who got drunk through college and barely passed the requirements because they were what he needed to make a decent wage.

So if the people who want to make crappy Flash games or do art programming and have no aptitude for advanced math can't do jobs that they're poorly suited for, don't have an interest in, and could possibly jeopardize the safety of others...I'm not too concerned. :rolleyes:

But what really gets me is this:
Quote
In this day and age, the fear of terrorist cyber attacks have given a new urgency to the building of software that is not only bug free, but is also immune from malicious attack. Such high-security software relies even more extensively on formal methodologies, and our students need to be prepared for this new world.

So, don't teach Java so much...because if you do, the terrorists will win.
-C

 

Offline Kosh

  • A year behind what's funny
  • 210
Re: Java damaging to students?
I've never used Java, but I think as far as beginner languages go, I'm going to have to vote for Visual Basic. Because it's scripted so (at least in VB6) the program will nail you for making a mistake before you try to run the program, and also the single stepping feature makes debugging infinately easier. I just think that's its good for getting a general feel for programming.
"The reason for this is that the original Fortran got so convoluted and extensive (10's of millions of lines of code) that no-one can actually figure out how it works, there's a massive project going on to decode the original Fortran and write a more modern system, but until then, the UK communication network is actually relying heavily on 35 year old Fortran that nobody understands." - Flipside

Brain I/O error
Replace and press any key

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Re: Java damaging to students?
Visual C++ catches certain errors at compile-time and will let you step through programs when debugging. Java does the former, but it doesn't do the latter, although I think there are compilers out there which do provide such functionality.

I've used text editors with the default Java compiler for all my programs, and I haven't found the lack of a debugger a real practical limitation. Then again most of what I've used Java for is GUI-centered so it's rather easy to debug.
-C

 

Offline Bobboau

  • Just a MODern kinda guy
    Just MODerately cool
    And MODest too
  • 213
Re: Java damaging to students?
wait, Java doesn't have a debuger!?:wtf:
Bobboau, bringing you products that work... in theory
learn to use PCS
creator of the ProXimus Procedural Texture and Effect Generator
My latest build of PCS2, get it while it's hot!
PCS 2.0.3


DEUTERONOMY 22:11
Thou shalt not wear a garment of diverse sorts, [as] of woollen and linen together

 

Offline WMCoolmon

  • Purveyor of space crack
  • 213
Re: Java damaging to students?
No, it does, but I personally haven't used it.
-C

 

Offline Kosh

  • A year behind what's funny
  • 210
Re: Java damaging to students?
Quote
Visual C++ catches certain errors at compile-time

Yeah, but often it isn't as specific. No doing something right here might cause a slew of errors somewhere else, and also sometimes the compiler itself would cause problems.

I do recall in my university C class that the people who never took programming before in their life had a hell of a time trying to get a handle on it, much more so than people starting with VB.
"The reason for this is that the original Fortran got so convoluted and extensive (10's of millions of lines of code) that no-one can actually figure out how it works, there's a massive project going on to decode the original Fortran and write a more modern system, but until then, the UK communication network is actually relying heavily on 35 year old Fortran that nobody understands." - Flipside

Brain I/O error
Replace and press any key

 

Offline Davros

  • 29
Re: Java damaging to students?
I think the best language for beginners is
wait for it
microsoft quick pascal - the davros edition
why?
well the great thin about it was the error messages were stored as plain text
so they could be changed
and if youve ever seen a compiler error they an be pretty cryptic
mine were much better
eg: "unexpected end of line" was changed to "youve missed out a ' you tosser"
it also included such classics as "something very bad has just happened" and "im afraid i cant do that dave"

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: Java damaging to students?
I wouldn't mind seeing the missing semi-colon error in VC replaced with a simple Doh!
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 
Re: Java damaging to students?
...

I completely agree with you. The whole article smacks of elitism and has very much the opposite view of my professors, who always said that increasing complexity in modern applications ABSOLUTELY NECESSITATES using and/or modifying existing libraries because of time constraints. Today's world (especially on the web) runs on frameworks and you'd be stupid to build your own lower-level libraries unless you were going for performance, which isn't a priority for the vast majority of software. I was taught Java at university and it hasn't done me any harm. The only great divides I've encountered between Java and C are in typing, memory management and object referencing and they don't require great intellects to get to grips with if you've got the willpower to make the mistakes and learn from them. I haven't had any great difficulties in making the transition.

And believe it or not, C++ is becoming less relevant in the web-connected world. The number of graduate development positions for traditional offline, platform-restricted applications is dwarfed by the number of companies crying out for those familiar with ASP.net and PHP, and they are far more 'forgiving' languages than Java. What's the point in teaching an unnecessarily complex language that comparatively few graduates will use in their careers?

Quote
As founders of a company that specializes in Ada programming tools for mission-critical systems, we find it harder to recruit qualified applicants who have the right foundational skills.

That says it all really. 90%+ of graduates will never have to write Ada code.

 

Offline karajorma

  • King Louie - Jungle VIP
  • Administrator
  • 214
    • Karajorma's Freespace FAQ
Re: Java damaging to students?
I don't see any harm in teaching other languages though. I think having an understanding of memory leaks and pointers isn't a bad thing for a CS graduate to have.

I'll agree with you both on their dumb insistence on reinventing the wheel. I can't understand why anyone would insist on writing their own code to do a task if there is a method already available on the user's PC for doing it. Not only is it a waste of time, effort and diskspace but it results in buggy code since the standard libraries in any language get very heavy bug testing.
Karajorma's Freespace FAQ. It's almost like asking me yourself.

[ Diaspora ] - [ Seeds Of Rebellion ] - [ Mind Games ]

 

Offline Mika

  • 28
Re: Java damaging to students?
Although programming computers is not really my main job, I thought I could tell my point of view, which would be from the applied research side.

--- BEGIN my viewpoint ---
At the moment, the problem we are facing is that there is not enough people who know how to write fast, error-free code, which doesn't strive to visual perfection.

If eyes serve me correctly, basic calculus, geometry and optimization things are pretty bizarre for people who started their studies in Computer Sciences. Here at this point, the Math indeed becomes relevant as it is not really a good idea to utilize an optimizer without knowing how it actually works. Also, low level optimization tricks seem to have been lost, there are only a handful of people who know how to do this stuff, some of them that I know of are working exactly with Ada.

As a little personal history, I started programming about 8-years-old with Sinclair ZX Spectrum, using the built-in Basic language. At this point I had no idea the actual programming should have been done at Assembly level with that machine. Later became QBasic with Dos 5.0 in a fresh 486, then Visual Basic. Later, working part-timely during studies, I had to learn Matlab, and I still use it today. During later years in University I took a look in Assembly; capability in C++ and Mathematica were required by the faculty. C++ was actually quite good surprise, Mathematica I hated. Decoding some decades old optimization routines, I also had to read some Pascal and Fortran. Fortran, luckily, does not differ too much from Matlab.

--- END of my viewpoint ---

Java is a good beginners language, but I'm against writing serious applications with it, even though it could be faster to code that way. Language reminds me of a certain software that I need to use in work, this is coded with a strange Perl derivate and partly with C or Assembly, I suppose. The macro language that controls it is somewhat close to Java, if all that what I have seen about it are correct. To tell the truth, the memory management of that software totally sucks and there are some interesting "features" that will always crash the program. User cannot even clear the memory or a single variable with the macro-language commands, since it will be automatically done (yeah, right, during the times when the processor load is high, which is about all the time?)!

The bad thing is that the company that programmed the software did not find an error in their code, even though many people have certainly reported of these bugs. So I have a sneaking suspicion that it is related to the way how the language by which it was programmed automatically clears memory, if something is deleted. Unfortunately, during processor intensive moments (most of the time), the language doesn't get the chance to check the memory reservation, ending reserving huge chunks of RAM and slowing computer down to a crawl.

In conclusion, I support the article, because there is a huge amount of people who get to learn Java and related languages without any deeper understanding of the libraries they apply. The competition of the working places in that area will be fierce. If one chooses to learn mathematical computing, then the amount of competition will be drastically less. So, you get a better chance to get a decent job if you choose the more mathematical way.

Mika
Relaxed movement is always more effective than forced movement.

 

Offline Kosh

  • A year behind what's funny
  • 210
Re: Java damaging to students?
Quote
who always said that increasing complexity in modern applications ABSOLUTELY NECESSITATES using and/or modifying existing libraries because of time constraints. Today's world (especially on the web) runs on frameworks and you'd be stupid to build your own lower-level libraries unless you were going for performance, which isn't a priority for the vast majority of software.


All true, but shouldn't they still be taught how libraries work and understand the libraries they're using? What better way to understand how a library works that to write one or two for yourself (obviously in academia and not the the Real World)?
"The reason for this is that the original Fortran got so convoluted and extensive (10's of millions of lines of code) that no-one can actually figure out how it works, there's a massive project going on to decode the original Fortran and write a more modern system, but until then, the UK communication network is actually relying heavily on 35 year old Fortran that nobody understands." - Flipside

Brain I/O error
Replace and press any key