Dilema in choosing elective subjects from a Computer Science syllabus

  • Thread starter gunslinger
  • Start date
  • #1
13
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 wanna concentrate on so I came here for advice :)
 

Answers and Replies

  • #2
12,946
6,787
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.
 
  • #3
125
7
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)
 
  • #4
12,946
6,787
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.
 
  • #5
13
0
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.
 
  • #6
12,946
6,787
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...?
 
  • #7
13
0
I think not, since I haven't went through those courses. I don't have physics in my syllabus
 
  • #8
1,772
126
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.
 
  • #9
12,946
6,787
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.
 

Related Threads on Dilema in choosing elective subjects from a Computer Science syllabus

  • Last Post
Replies
4
Views
2K
  • Last Post
Replies
22
Views
4K
  • Last Post
Replies
4
Views
1K
  • Last Post
Replies
3
Views
2K
Replies
6
Views
5K
Replies
2
Views
2K
Replies
3
Views
589
Replies
1
Views
2K
Top