Thread: What programming languages are CS students exposed to nowadays?

  1. #1
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413

    What programming languages are CS students exposed to nowadays?

    Thread title says it all. Kind of a split from the following thread: Why new programming students aren't fairing well.

    For those of you that don't know, I'm a mechanical engineering student, so I'm unaware of the different languages CS students are exposed to nowadays. I'd imagine Java, C/C++, Javascript, hopefully some form of assembly.

    As an ME student, we're required to take one programming class, which when I took it was a very intro level C course. Before that it was typically either Pascal or FORTRAN. At Ohio State, we use MATLAB heavily in the undergrad curriculum and FORTRAN/C/C++/Java for graduate work. Mainly FORTRAN.
    Last edited by Epy; 12-05-2011 at 03:34 PM.

  2. #2
    Registered User
    Join Date
    Nov 2010
    Location
    Long Beach, CA
    Posts
    5,909
    It varies a bit, but one good way to find out is to go to some major university websites and look for their academic catalog. It's usually available online, and it should list all the courses offered for each department, along with short descriptions including languages used. Based on my very limited and non-scientific survey of my experiences* and discussions with other programmers, C++ and Java are the big ones, with almost everybody taking at least one quarter/semester of C. Assembly is not required at all schools, it depends somewhat on the department's focus. My undergrad was at a school where the CS department was part of the engineering department, so we had mandatory assembly, CPU design and basic EE classes. Some schools don't require any of that, and focus purely on high-level languages and concepts, but offer lower-level stuff as an elective. Most schools have some sort of language "survey" course where you cover the basics of functional languages like Haskell, Scheme or LISP, and some more esoteric languages, but at a very superficial level. Some AI classes will be in LISP, so it's not uncommon to learn a bit of that. Many schools offer classes that focus on e-commerce, web design and the like. That means you can get exposed to PHP, Python or Ruby, and JavaScript, but I'm not aware of any place where those latter 3 languages form the core of instruction. At my undergrad school, the ME and Aerospace people took a class in FORTRAN. EE people took a class in C. Some are more IT oriented (sys admin, net admin, DBA, etc) than programming oriented.

    * I finished my bachelor's about 10 years ago, so thing have probably changed a bit.

  3. #3
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    I'm taking some courses in January in the hopes that this will help get me in the "beyond web-dev" interview door; I have a previous (non-CS) degree, so it is not such a big deal for me to register and take undergrad courses. Based on the schools I looked at (Ryerson, York, Athabasca, Seneca), I'd say the top 3 languages, WRT to qualifying pre-reqs (ie, what languages are used in the upper level courses; I'm going for "software engineer" type stuff) are in order:

    1) Java
    2) C
    3) C++

    #1 seemed to be far and away the hands down favorite (so guess who's learning some Java soon )
    Last edited by MK27; 12-05-2011 at 05:17 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  4. #4
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,659
    Perhaps it's because everyone is too focussed on "which language" to actually learn anything about the wider issues of Software development - Wikipedia, the free encyclopedia

    You might know how to write "hello world" sized programs in a dozen different languages, but if you can't design a decent sized program, then you're pretty much screwed when it comes to doing a job in the real world (where "google my question" no longer works).

    If you can't design a program, then your only strategy is "infinite monkeys", where you type furiously and try as many program variants as possible in the hope that one of them gets close to what appears to be the answer.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  5. #5
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by MK27 View Post
    1) Java
    2) C
    3) C++
    You didn't take that straight from the TIOBE index, did you? haha

  6. #6
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Quote Originally Posted by Salem View Post
    Perhaps it's because everyone is too focussed on "which language" to actually learn anything about the wider issues of Software development - Wikipedia, the free encyclopedia

    You might know how to write "hello world" sized programs in a dozen different languages, but if you can't design a decent sized program, then you're pretty much screwed when it comes to doing a job in the real world (where "google my question" no longer works).

    If you can't design a program, then your only strategy is "infinite monkeys", where you type furiously and try as many program variants as possible in the hope that one of them gets close to what appears to be the answer.
    You kind of sound like my boss, he's "famous" for saying things like "Once you know one language, you know them all." To an extent, it's true, as in you need to know how to actually program as opposed to knowing a lot of languages or say knowing a few really well.

    What prompted me to ask was seeing in the other thread about how CS students are exposed to MATLAB at a particular school. Knowing a handful of the numerically-aligned languages, I can almost say with a certainty that it'd be more beneficial for those students to learn Fortran instead. Fortran is array-oriented just like MATLAB, but is compiled, faster, and much more portable. MATLAB is for script-kiddie wannabe programmers in engineering fields.

    Also, along the lines of what you said about being screwed in the real world, this is why such interpreted languages shouldn't really be touched, IMO. They're great for learning and making really quick scripts, but it becomes a crutch. I have fallen victim to this crutch, using Python scripts to do some things that should've probably been written in C or C++.

  7. #7
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    Quote Originally Posted by Epy
    Also, along the lines of what you said about being screwed in the real world, this is why such interpreted languages shouldn't really be touched, IMO. They're great for learning and making really quick scripts, but it becomes a crutch. I have fallen victim to this crutch, using Python scripts to do some things that should've probably been written in C or C++.
    Heh, I think you're just over-reacting to the times when you have chosen (or were forced to use) a wrong tool for the job, and it happened to be an "interpreted language". It is certainly is possible to "design a decent sized program" and implement it in an "interpreted language" for real world requirements.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  8. #8
    &TH of undefined behavior Fordy's Avatar
    Join Date
    Aug 2001
    Posts
    5,793
    Quote Originally Posted by Epy View Post
    Also, along the lines of what you said about being screwed in the real world, this is why such interpreted languages shouldn't really be touched, IMO. They're great for learning and making really quick scripts, but it becomes a crutch. I have fallen victim to this crutch, using Python scripts to do some things that should've probably been written in C or C++.
    Don't dis' the python, man! I use it more than pretty much anything.

  9. #9
    Make Fortran great again
    Join Date
    Sep 2009
    Posts
    1,413
    Haha, I use it more than I should for sure. What laserlight said makes me feel better about using it in some cases. It's just so easy to spit out a program in no time at all. I'm at least comforted in knowing that it's all just list processing and string operations, things I know how to do for sure in a real language like C.

  10. #10
    spurious conceit MK27's Avatar
    Join Date
    Jul 2008
    Location
    segmentation fault
    Posts
    8,300
    Quote Originally Posted by Epy View Post
    You didn't take that straight from the TIOBE index, did you? haha
    No, but I guess there is an obvious relationship between the two. It seems to me that the common default is java -- like most schools make it impossible to complete the curriculum without it -- then some schools had groups of C++ courses, whereas others were more C, but in the lower level courses, C is regarded as more fundamental.

    I don't really care much what language I end up working in (as long as it is procedural or object oriented, because that's all I know), I'm more concerned about the nature of the work.

    WRT interpreted languages, I'm gonna go out on a limb and say that I think the big thing in favour of compiled languages, commercially, has little to do with performance -- it's that the source can remain closed. That's the difference between working for a software company proper and working in-house as a programmer at corporation X -- in the later case, you are not distributing anything, and (anecdotally from people I've know) in that situation high productivity interpreted languages may often be the preference.

    So, most likely, use of python etc. is only going to keep increasing, as more and more stuff becomes server based (since such code is not public anyway), and industry, finance, etc become even more (internal) software oriented.
    Last edited by MK27; 12-06-2011 at 02:46 PM.
    C programming resources:
    GNU C Function and Macro Index -- glibc reference manual
    The C Book -- nice online learner guide
    Current ISO draft standard
    CCAN -- new CPAN like open source library repository
    3 (different) GNU debugger tutorials: #1 -- #2 -- #3
    cpwiki -- our wiki on sourceforge

  11. #11
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    At my school, MATLAB is a major component in some engineering courses (control systems mostly), but not taught in CS at all.

    In CS they learn Java and C++. All other languages (functional, SQL, assembly, etc) are optional/electives. In engineering we do the reverse, and start with assembly, C, then basic C++, which has some interesting effects - for example, for some people with no prior programming experience, they actually find assembly easier than C, because assembly is syntactically very simple.

  12. #12
    Internet Superhero
    Join Date
    Sep 2006
    Location
    Denmark
    Posts
    964
    I'm a CS student here in Copenhagen, so far we've been through Standard ML and Java, the next course is webprogramming and databases so i suspect it's going to be PHP and MySQL, next year there is a course on operating systems which will be mostly C and assembly, other than that there aren't really any courses which focus on particular languages, the rest of them are mostly about language-independent concepts such as multiprogramming or algorithms and data structures.
    How I need a drink, alcoholic in nature, after the heavy lectures involving quantum mechanics.

  13. #13
    Registered User carrotcake1029's Avatar
    Join Date
    Apr 2008
    Posts
    404
    Quote Originally Posted by cyberfish View Post
    At my school, MATLAB is a major component in some engineering courses (control systems mostly), but not taught in CS at all.

    In CS they learn Java and C++. All other languages (functional, SQL, assembly, etc) are optional/electives. In engineering we do the reverse, and start with assembly, C, then basic C++, which has some interesting effects - for example, for some people with no prior programming experience, they actually find assembly easier than C, because assembly is syntactically very simple.
    You actually learn some assembly as an undergrad? I'm graduating this semester with a Bachelors in Mechanical Engineering and the most we've ever done is get to C (and hardly that, just basic file I/O). The funny thing though is that since engineers generally tend to hate programming, this has made me somewhat more marketable since I actually enjoy it.

  14. #14
    Registered User
    Join Date
    Dec 2006
    Location
    Canada
    Posts
    3,229
    You actually learn some assembly as an undergrad? I'm graduating this semester with a Bachelors in Mechanical Engineering and the most we've ever done is get to C (and hardly that, just basic file I/O). The funny thing though is that since engineers generally tend to hate programming, this has made me somewhat more marketable since I actually enjoy it.
    Ah, only for electrical and computer engineers.

    We learned 8051 assembly, and I believe assembly for the Nios FPGA soft core.

    In mech, only mechatronics people learn assembly (Motorola 68K, also using a soft core).

    I find it strange that most engineers hate programming, too. I love programming, and have been taking extra computer science courses (just for fun). Makes looking for a job easier, too. Outside of the silicon valley, interesting electrical engineering jobs are fairly hard to find, whereas programming jobs are more uniformly spread out. I couldn't find one for internship last summer locally, and I didn't want to relocate, so I just took a game developer job, which was probably the funnest job I'm ever going to have in my life.

  15. #15
    Banned
    Join Date
    Aug 2010
    Location
    Ontario Canada
    Posts
    9,547
    Quote Originally Posted by carrotcake1029 View Post
    You actually learn some assembly as an undergrad? I'm graduating this semester with a Bachelors in Mechanical Engineering and the most we've ever done is get to C (and hardly that, just basic file I/O). The funny thing though is that since engineers generally tend to hate programming, this has made me somewhat more marketable since I actually enjoy it.
    Yep, 30 years in electronics and programming was always the most interesting part of the job. Probably the biggest challenge was rewriting the Z-80 ASM code for a cash register. Diagnostics were always a hoot... "testing to the point of destruction" yeeeha!... but the best of it was the early work I did on business systems. Man those accountants are picky picky picky... Getting them to smile was the best part of my week.

    Given the choice between going 100% electronic design and the position I had directing service operations, I decided to stay where I was so I could play with software some more.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Why new programming students aren't fairing well.
    By Tclausex in forum C Programming
    Replies: 30
    Last Post: 12-05-2011, 07:29 PM
  2. Total newb to programming here... Question about the many programming languages. Ty!
    By tsubotakid1 in forum A Brief History of Cprogramming.com
    Replies: 11
    Last Post: 10-05-2003, 10:32 AM
  3. Sprint Exposed: News
    By RoD in forum A Brief History of Cprogramming.com
    Replies: 1
    Last Post: 12-29-2002, 02:17 AM
  4. Any Computeach International Students/ex students??
    By stevey in forum A Brief History of Cprogramming.com
    Replies: 0
    Last Post: 03-26-2002, 04:12 PM