views:

160

answers:

7

College students pursuing their engineering in computer science are not being exposed much to the present day programming languages. The only understanding they have about these languages is from the coaching the take from private institutes. Do you guys think that present day programming languages should be a part of the engineering curriculum and professionals should be teaching them to students, rather than academic people with no technical background teaching them ?

+5  A: 

Where would these professionals come from? I know that if I had to prepare to give courses at college/university, then I would not have the time to learn what it takes to stay at the top of my game. School isn't about learning the latest and greatest, because development tends to be somewhat faddish and what's hot today could prove to be tomorrow's turkey. It's more about equipping the student with the tools to learn what it takes to become a professional. You can really never be taught it, rather you can be equipped to learn it.

spender
what you said is true !
Bootcamp
+3  A: 

This question starts with an incorrect premise. Colleges do present modern programming languages to their students, and often languages that are advanced beyond the stuff used in industry.

In addition, you need to learn about some old-fashioned languages in order to understand machine architecture better, because without this understanding, you will not be able to write good performing programs in any language.

College is not a job-training institute. If you wanted job training then you should not have entered college.

Michael Dillon
As an example of what you describe in the first sentence, a friend of mine is learning Spec# now...
Martinho Fernandes
A: 

I think that little to no relevance should be given to the teaching of programming languages. Any decent programmer should be able to learn a new language in a couple of days.

Languages come and go. It's the things that remain that should be given emphasis.

Martinho Fernandes
A: 

False alternative. Why do you think that academics have no techncial background?

What do you call a modern programming language? Java? Javascript? Ruby?

djna
Majority of the academic people do not have professional backgrounds. They have been into teaching majorly. My query is that are they able to teach the modern languages they way they should be taught ? So that students have a strong base to learn more and learn quickly when they are in their job ?
Bootcamp
Ruby has been around since 1993, Java and JavaScript since 1995. But recently (especially Ruby and JavaScript) they saw a large growth. I agree that clarification on the meaning of "modern programming language".
Martinho Fernandes
@djna it's a false dilemma/dichotomy http://en.wikipedia.org/wiki/False_dilemma
wds
Ruby is post-modern (it steals bits from the modern languages - lisp and smalltalk and arranges them its own way)
Pete Kirkham
@Pete: I like your definition of "modern", but I think it clashes with a lot of people.
Martinho Fernandes
@wds Are you academic or technical? That's a false alternative in my understanding of http://www.philosophicalsociety.com/Logical%20Fallacies.htm#false-alternatives
djna
+1  A: 

Once you understand core programming concepts then the language used is just another tool. That said I don't see how teaching students the latest programming languages is beneficial, especially with how quickly they are changing.

To me a solid understanding of the concepts and methods used to write good quality programs is far more useful. Once you understand this then learning a programming language is easy and just a case of learning the appropriate syntax required for what you are trying to achieve.

Programming into a language, not in a language - As Steve McConnell put it.

Pace
A: 

In my opinion, the important thing when it comes to choosing languages to use in a computer science education is not whether the languages are modern or not, but rather whether the students get to try a wide enough variety of languages and paradigms to be able to embrace new languages and tools quickly.

For starters, a good mix of languages and paradigms in a computer science education might look something like:

  • A functional language such as Lisp or Haskell
  • A statically typed imperative language, such as C, Delphi or Ada
  • An object-oriented language, like Java or C#
  • A dynamically typed multi-paradigm language like Python or Ruby

This list is by no means complete, but would give a good foundation for adopting whatever new languages one might come across as a professional programmer.

Pär Wieslander
A: 

Do you guys think that present day programming languages should be a part of the engineering curriculum

Yes, and no.

Everybody knows that software engineers may have to learn a new languages on the job. It's not hard to agree that students need to learn algorithms and programming patterns. Students should learn a at least a few different types of languages, but also be forced to program in a language that isn't spoon-fed to them. Universities can expose students to the 'modern' languages by giving students assignments in those languages.

The question "what language should xyz university teach" has been asked numerous times. My better question - Why aren't universities teaching a course in programming languages. That is, history of languages, how languages are designed and evolve, why one type of language is better for certain problems.

David Diepenbrock

related questions