1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Dilema in choosing elective subjects from a Computer Science syllabus

  1. Aug 14, 2014 #1
    Hi all.

    Obligatory subjects are:
    • Algorithms and Data Structures
    • Probability and Statistics
    • Computer Networks

    Electives are:
    • Formal languages and Automata
    • Advanced Programming (Java mainly. generic programming etc. etc.)
    • Logic and functional programming(Prolog and Lisp)
    • Interactive applications
    • Internet programming
    • Calculus 3
    • Linear Algebra

    Now, Interactive apps. and Internet prog. are subject I have little or no interest for, so that narrows the list. Advanced prog. is what I will definitely take, but I'm contemplating between Linear Algebra, Logic and Functional prog. and Formal languages and Automata.

    I can choose one more. It's my third semester and I still don't know which areas of comp. sci. I wanna concentrate on so I came here for advice :)
  2. jcsd
  3. Aug 14, 2014 #2


    Staff: Mentor

    I don't see anything here on database programming perhaps it's embedded in another course but that is definitely something that is useful to know.

    Of the three you mention I would order them as formal languages and automata useful for complex programming where a state machine is needed, then logic and functional programming useful when working with the more modern languages like groovy or Scala or any language with closures.

    I am surprised by your disinterest in web programming, it's the job du jour now and definitely useful. In particular Service Oriented Architecture and web services, mobile apps... I would reconsider your disinterest and take them.
  4. Aug 15, 2014 #3
    I'm not at all surprised in his disinterest in web programming. Gimme some C,C++,even hardware level coding, some GPU computing coding, etc. then you are talking!

    That said, sadly for jobs, it seems to be all web programming or databases. blech. but yeah that is the where the jobs seem to more often be (and the money when you talk databases)
  5. Aug 15, 2014 #4


    Staff: Mentor

    There is a kind of layering that has happened in software engineering:

    level 0: device driver programming for new hardware
    level 1: libraries for the new hardware
    level 2: platform specific middleware, communications networking...
    level 3: platform specific apps
    level 4: platform specific java abstraction layer
    level 5: JVM cross platform languages compilers, runtimes, libraries
    level 6: JVM cross platform apps
    level 7: web services and servers
    level 8: web client apps
    level 9: mobile device internet apps

    Programmers tend to fall into one of these levels. They also tend to become either program/library maintainers or application programmers. Most software companies are looking for maintainers that can learn the base code and extend it as needed. Later you might get to write new stuff.

    Also for OO style programmers there's a division between library class programmers and application programmers in that its harder to design a good class library than it is a program.
  6. Aug 15, 2014 #5
    Yeah, no particular interest in web development. Also, I have databases as an obligatory subject in another semester.

    And I think I'm going to become a Data Analyst, looking from my interest in subjects, but I'm not 100% sure.
  7. Aug 15, 2014 #6


    Staff: Mentor

    What about computational physics or economics...?
  8. Aug 15, 2014 #7
    I think not, since I haven't went through those courses. I don't have physics in my syllabus
  9. Aug 15, 2014 #8
    I vote for advanced programming out of the ones you are interested in. Java seems to be a big one on the job market these days. But I agree with jedishrfu about reconsidering your disinterest.

    Formal languages and Automata is really fun stuff, though. Not terribly practical, but fun. If you are into mathematical sorts of things, that is.

    If you are interested in data analysis, I'm pretty sure linear algebra would be a good course to have, since it comes up a bit in statistics. Calc 3 would probably be good, too. But those are only good if you go towards something more on the mathematical side.
  10. Aug 15, 2014 #9


    Staff: Mentor

    I was really talking about doing computer modeling and simulation. Its doing numerical integration of differential equations to solve problems in science or economics.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook