Dilema in choosing elective subjects from a Computer Science syllabus

AI Thread Summary
The discussion revolves around course selection for a computer science program, focusing on required subjects like Algorithms, Data Structures, Probability, and Statistics, alongside electives. The participant expresses a lack of interest in Interactive Applications and Internet Programming, favoring Advanced Programming and considering Linear Algebra, Logic and Functional Programming, and Formal Languages and Automata for additional electives. There is a notable emphasis on the relevance of web programming and database knowledge in the job market, with some participants urging reconsideration of the initial disinterest in web-related courses due to their current demand. The conversation also touches on the layering of software engineering roles, highlighting the distinctions between different programming levels and the types of jobs available, particularly in web development and database management. Additionally, the potential career path toward Data Analysis is mentioned, with suggestions that Linear Algebra and Calculus would be beneficial for this direction. The discussion concludes with a mention of interests in computational modeling and simulation, indicating a desire to apply programming skills in scientific or economic contexts.
gunslinger
Messages
13
Reaction score
0
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 want to concentrate on so I came here for advice :)
 
Physics news on Phys.org
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.
 
jedishrfu said:
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.

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)
 
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.
 
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.
 
gunslinger said:
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.

What about computational physics or economics...?
 
I think not, since I haven't went through those courses. I don't have physics in my syllabus
 
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.
 
gunslinger said:
I think not, since I haven't went through those courses. I don't have physics in my syllabus


I was really talking about doing computer modeling and simulation. Its doing numerical integration of differential equations to solve problems in science or economics.
 

Similar threads

Back
Top