Which Computer Science classes are a must?

Hey CC,

I am finally ready to begin on all of my computer classes working on finishing my bachelor’s degree. I have to 7 classes which are the CS major requirement and then I am doing the computer science emphasis with this program so I need to pick 8 more classes from the link I listed below to complete the 24 course hours for that section, each class is 3 credits.

My question is which of these classes are going to be best for me in regards to getting a job with my major once I graduate? I don’t want to waste my time on un-needed courses and keep focus on the most relevant to progress my career in the future. I am currently not at a computer related job so leaving my current career once I finish my degree is important.

Thanks for any suggestions and guidance I can receive on this.

http://catalog.lakeland.edu/preview_program.php?catoid=4&poid=282&hl=%22computer+science%22&returnto=search

You probably want to include at least these (though the first four seem to be what many other schools cover in fewer courses at the frosh/soph level):

CPS 313 - Advanced Programming
CPS 314 - Programming Languages
CPS 315 - Object-Oriented Programming I
CPS 316 - Object-Oriented Programming II
CPS 323 - Computer Architecture
CPS 325 - Networking and Telecommunications
CPS 420 - Operating Systems

It does look like your school does not offer an algorithms and complexity course, which would help you understand how to write computer programs that scale to large inputs. It also looks like the department has an ITish flavor, which may be less technical than those departments that emphasize the science in computer science.

I mostly agree with ucbalumnus’ list. The exception might be to replace Programming Languages with Mobile Application Development. People with knowledge of mobile development are in huge demand, and I don’t see that dropping for awhile.

Note that there are only 7 courses in the list in reply #1. If mobile development is important and covers topics distinct from the other courses, consider making that the 8th course.

I would add that I also think “Programming Languages” should take precedence over “Mobile development”.
Programming Languages at a college level should cover common paradigms of most programming languages and allow one’s fluidity between languages to excel. Mobile development is more specific, and while very relevant and useful, there are TONS of online tutorials and guidance available for that, while the understanding of programming languages at a college level is not as accessible.

If Lakeland’s Programming Languages class was anything like the similar class I took, it will be theoretical and geared towards students wanting to go to graduate school. On the other hand, there is demand right now for mobile developers. Since jtotheother wanted a job after graduation, I’d think it would be better to start learning it now, rather than spending a few months after graduation learning it.

Or, as ucbalumnus noted, jtotheother can take both.

I am not convinced that someone needs to take a specific course in mobile development if s/he knows the more usual advanced CS topics like operating systems, algorithms, user interfaces, graphics, networking, etc., which are as applicable to mobile platforms and operating systems as they are to other platforms and operating systems. It would not be surprising if most writers of mobile applications never took such a course. On the other hand, the OP’s school’s CS department’s offerings are not exactly extensive, so the mobile development course there may be a way to touch on a few of the topics that are otherwise absent from the offerings.

Programming languages is not always present in a CS department’s offerings. But when it is present, it may be because the CS department’s other courses are all in one or a few similar languages, so the course is present to show students various different programming languages and paradigms that they may encounter in industry or academia. In CS departments where it is not present, its content may be effectively embedded in other courses as the various CS courses use different kinds of programming languages.

Yes, both of the above can easily be part of the eight elective courses.

Hi again,

Thanks everyone for the great replies! I appreciate you all taking the time to explain the reasons behind taking the classes that you have posted.

The only question I had was would the two security classes being offered be worth anything, or are these programming classes more important while pursing my bachelor’s degree?

Knowledge about computer security is definitely useful, but the two courses at your school are more from an IT point of view, rather than the point of view of someone writing software with security in mind (in terms of being careful with how you use user-controllable inputs, checking buffer boundaries, using cryptography correctly, etc.).

Thanks for the information! I appreciate your guidance as I don’t want to take any courses which would be a waste of time when there are more important classes to take.