• Advertisement
Sign in to follow this  

Being taught "old" languages at College a problem?

This topic is 4182 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hullo, In disagreeance with my recent post on UTD, I've ruled it out of my list, and am now looking at three college's here in Texas. The first one and my goal, being Texas A&M. My only concern, is their computer science program. A list and description of the courses can be found here. It looks like a good course, covers what should be covered. However, instead of the other two colleges in my radar using Java and a little of C++, A&M uses "old" or "outdated" languages. Those languages being, Pascal, C, FORTRAN, Ada, and Lisp. I understand the importance is learning the concepts, and once that is down, it is fairly easy to learn new languages, although takes some time to master it. Now, I can understand that. Java, C++, Python, Ruby, C#, etc. I can see that. But Pascal, C, FORTRAN, Ada, Lisp? My concern is, is that first of all, I will not have time during College like I do during High School to learn C++. For every program I make in Java at school, I make the same thing in C++ at home. Second, I fear that the difference between C++, and OOP to Pascal, C, FORTRAN, Ada, and Lisp are going to hold be back after College. Third and lastly, if their using "outdated" languages, are the courses themselves going to be fairly "outdated"?

Share this post


Link to post
Share on other sites
Advertisement
It looks like most of it is done in C. 111 claims to be in Pascal. But then 206, 211, Software Engineering, and others use C or Java.

Any program is going to give you a lot of exposure to older languages, since understanding those will help you to understand modern languages which descended from them.

Share this post


Link to post
Share on other sites
I went to Ohio State University and found this to be a problem. First language they teach you is Java, then they take you through a downward spiral through all these older languages. Now you also have to understand they are preparing you for a job in real life. That means a job at nationwide or other companies who still use alot of these "outdated" languages. And often the professor is just as outdated with my expierence. But that doesnt mean the prof doesnt know the language or how to program, they often do. I went through alot of these classes often failing my final exam(and the program) until I had to go back in and explain how my solution worked. We had to write our final exams in pencil and have them compile 100% with the program working at 100% of the objective. While mine did it wasnt the way the prof expected it to be written. Regardless I did pass with an A after explaining how it worked. This was when I was beginning programming, so maybe at OSU this is something to be said for being outdated.

Also at OSU they liked to teach team programming, so this generally meant that you were paired with one other person and it was easier to tell the other teammate to sit out and let you do all the programming. Much easier than teaching the other person how to program. Which is really what they are pushing for, in my idea.

Good luck picking and note that there arent many places where you wont run into this, so try to pick the best that fits u.

GL,
Brad

Share this post


Link to post
Share on other sites
Universities are institutions reluctant to change and reluctant to co-option. They aren't interested in teaching the "flavor of the month". Even though many teach Java, it seems to me that they would be reluctant to teach C# due to it's proprietary nature. I suppose that contradiction can be accounted for in the different reputations between Sun and Microsoft - and that cross platform execution was a major goal of Java.

Believe it or not, some businesses still use Pascal and C. Iirc, Python was written in C. At any rate, knowing an old language can be a boon. A few years ago one of my uncles landed a job because he knew COBOL.

Share this post


Link to post
Share on other sites
Actually that's a good mix of languages to learn in college (IMO). This will give you the foundation you need to learn the syntax of a variety of the languages that are found in industry. At the end of the day, the languages you spent time on in your classes should have no affect on your ability to get a good job. What's important is when you do go to interview for a C++ job, you can answer all the hard C++ questions given to you by the people interviewing you. Most modern programming languages are pretty easy to learn (couple of weeks) if you're substantially familiar with several other ones.


Now, if COBOL and RPG/II were on that list, I'd probably start running.

Share this post


Link to post
Share on other sites
i learned more about programming from C, ASM, and LISP than I ever did from java. the point is to learn algorithms, programming techniques, and how things work in your computer. its not about how to use specific languages.

learn the concepts then you can program in any language with moderate adeptness.

LISP especially, learning how to think in a functional programming way of doing things really opens alot of doors that you'd never see if you only ever did declarative langs. if that doesn't convince you, MIT uses scheme for all its intro courses. (scheme~=lisp) you know they are at least half smart. :)

you will have time to learn other languages, plenty of time. im sure alot of your higher level courses will let you chose what language you want to work in. plus i think you will find that your university doesnt teach you to program so much, as teach you computer science.

dont go to a school because they use a specific language, go because its got a program thats held in high regard for computer science. its not about what language you speak, its all about what you say :)

Share this post


Link to post
Share on other sites
oh yea, after reading someone elses response I thought I should agree with the COBOL statement. iirc COBOL specialists are the highest paid programmers for a while. there are still TONS of legacy systems written in cobol and no one is coming out of college knowing it. so don't be intimidated by old langs, be happy :)

Share this post


Link to post
Share on other sites
Quote:
LISP especially, learning how to think in a functional programming way of doing things really opens alot of doors that you'd never see if you only ever did declarative langs. if that doesn't convince you, MIT uses scheme for all its intro courses.


Lisp is awesome. Me and some others are currently implementing a game engine based entirely on an event stack, modeled roughly after the functional programming model: You just push a GameBootstrap event on the stack to launch the game, and it might push a MainMenuEvent on the stack, which might push a LoadGameEvent on the stack, which might push a GameChapterEvent etc... There are a lot of things from those languages which can be applied to many things, beyond the obvious--programming.

Also, I think that java is favored in academia because it is in most ways a model OO language. Some are picking up on C#, but java is already there, and--as someone noted--academia resists change. I also agree with the proprietary comment.

EDIT:

Oh yeah, and C is still HUGE, unfortunately, in the "real world".

Share this post


Link to post
Share on other sites
Bah. French Classes Préparatoires teach Caml Light, Pascal and Maple.

On the other hand, teaching a functional language to people of mathematical background is easier than teaching them an imperative one, and then they can move on to other languages much easier.

I teach Caml Light, by the way, and it truly is an useless language (not used anywhere except for teaching).

Share this post


Link to post
Share on other sites
A language is an implementation detail; it should not really be used to make or break a decision about a college, except in extreme cases. Computer science is not about programming, programming just happens to be useful in that field. To that end, the actual languages you are taught (or learn on your own) are vastly less important than the concepts you are taught (or learn on your own) that can be applied across languages.

Share this post


Link to post
Share on other sites
Quote:

A few years ago one of my uncles landed a job because he knew COBOL.


As weird as it sounds, I have actually downloaded some COBOL stuff that sits on my computer and I'm tempted to start learning COBOL. I think there was a COBOL course in my school, but they dropped it a little while before I entered. In a few years there will be a shortage in COBOL programmers, and the amount of programs that need to be maintained is enormous. Of course, maintaining COBOL programs isn't exactly my ideal future job, but if it pays well it's good to have some extra weapons in your arsenal.

Share this post


Link to post
Share on other sites
If you're interested in good Computer Science universities in Texas, I will have to recommend to you the University of North Texas. They are mainly focused around C++, and they have one of the oldest game programming labs in the nation.
I graduated from there a few years ago, and I'm finding that most of the people that have gone to college at other universities didn't recieve the proper exposure to actual programming while attending. That was very surprising to me at first, but now I'm finding it to be pretty common with recent graduates.
What I hear about UTD is that they're currently moving their main focus towards Java.
The site for the game programming lab is:
http://larc.csci.unt.edu

Share this post


Link to post
Share on other sites
In general I'd say its much better to be taught "old" languages and to leave learning newer languages as an excercise for the student. The reason, in part, is that most new languages are usually designed te be cross-platform or RAD languages (like java or C#) and tend to have features that, while usefull to that end, tend to 'baby' new programmers. One example is that it is substantially easier for someone with a C/C++ background to get used to java/C# garbage collection rather than the other way around. Those who have always had a garbage collecter are likely to know little or nothing about manual memory management techniques, pooled allocators, or the cost at which their nice garbage collection system comes. Also, newer languages like Java/C# are poor choices for teaching you anything about the underlying hardware and its relationship to programming languages. A language like C, for instance, is really only one step above assembly language (while still being a very readable language), whereas java or c# is another 2-3 steps further away from the hardware.

Remember, you're studying computer science, not just programming. Computer Science is, oddly enough, the Science of Computers and Computation. Many people make the mistake that its purpose is to teach you to be a programmer. Programming is only one artifact of a much broader understanding you wish to command. If you only wish to program, I'm sure there's a devry that can accomodate you, however you'd never be as good of a programmer than had you taken a full traditional CS program.

There is a good spectrum of languages you list at A&M that will broaden your horizons as a programmer or aid you in studying particular disciplines of programming (such as lisp for AI or fortran for scientific computing.) I'm actually a little disapointed to not see any functional programming languages (like ML or haskel) listed though.

As to how easy it is to pick up some of these newer language. In my last job I was able to be productive with C# on my second day, having never coded a single line of C# before and my backgound being primarily C/C++. VB.net, java/javascript, and SQL were similarly easy to pick up.

Share this post


Link to post
Share on other sites
Quote:
Original post by Ravyne
Remember, you're studying computer science, not just programming. Computer Science is, oddly enough, the Science of Computers and Computation. Many people make the mistake that its purpose is to teach you to be a programmer.


Summed up by Edsger Dijkstra: "Computer science is no more about computers than astronomy is about telescopes."

Share this post


Link to post
Share on other sites
Quote:
Original post by mikeman
Quote:

A few years ago one of my uncles landed a job because he knew COBOL.


As weird as it sounds, I have actually downloaded some COBOL stuff that sits on my computer and I'm tempted to start learning COBOL. I think there was a COBOL course in my school, but they dropped it a little while before I entered. In a few years there will be a shortage in COBOL programmers, and the amount of programs that need to be maintained is enormous. Of course, maintaining COBOL programs isn't exactly my ideal future job, but if it pays well it's good to have some extra weapons in your arsenal.


I studied it for a bit back in 1992. It sucks compared to other languages.

Share this post


Link to post
Share on other sites
Quote:
Original post by LessBread
I studied it for a bit back in 1992. It sucks compared to other languages.


Hence the reason its become an obsolete language - the value of knowing COBOL is that there are so few other programmers who do know it (and they are mostly old and retiring). As many businesses still have code written in it, and occasionally need modifications or additions made (the big one being the Y2K update), the demand for skilled COBOL programmers (ones who know it well enough to figure out and modify other peoples undocumented 20 year old COBOL code) is high. Supply and demand.

Share this post


Link to post
Share on other sites
That is an interesting mix of languages to be exposed to, though I wonder what flavour of Pascal they're teaching -- modern Delphi style maybe? If so, I don't mind it (er, the object pascal that Borland pushes), though I will admit that I am more comfortable with C++/C#/Java.

Either way, like everyone's said -- it's not the languages that are important, but the understanding of what happens internally -- of course, that's no good to you if you don't have time/motivation to self-learn different languages...but if you don't have that motivation, consider another career track because anyone that programs will tell you that self-improvement (via continuous education) is just a part of our lives :)

~Shiny

Share this post


Link to post
Share on other sites
When I was in college (only a few years ago mind you). You started with C, then went to C++. Then in order to become a computer science major, you had to pass IBM Assembler for the 360 or 370 mainframe series. I also had to take COBOL and FORTRAN. Java was an optional elective. And you thought your classes were bad.

On the positive note, COBOL is still used a lot in large business institutions such as insurance companies and banks. But as for IBM assembler...good luck in getting a job coding that (who would want to?). Some schools are just behind the times.

But I suppose the real purpose for many education institutions is to teach you how to code and think like a programmer...most high level languages can teach you that. It just takes practice.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement