Which class to satisfy my programming intensive requirement?

Bop

2[H]4U
Joined
Oct 1, 2003
Messages
3,307
At my university I have the choice of either taking a systems programming course or a software engineering course. I'm leaning towards the software engineering course since it focuses on team programming (which I know is valuable to employers), but the other course is definitely known to be a great course at my school.

Descriptions for each:

Systems Programming:
Programming aspects of operating systems. Topics covered include implementation of storage management, resource allocation, multi-processing, scheduling, synchronization, inter-process communication, and terminal I/O. Emphasis on projects to enhance subject understanding, problem solving, and programming skills.

Software Engineering:
Software engineering principles, the role of abstraction in programming, abstract data types, modularization and module interfaces, specifications, and teamwork. Project work in contemporary concurrent and object-oriented languages.

Which would you prefer and why?
 
I am taking a class called "Principles of Operating Systems" (my last class to obtain a B.A. in computer science) right now, which is basically the System Programming class you're talking about. I would go with Software Engineering hands down, simply because of my lackluster experience with this class so far. There is very little (close to none) programming involved, everything is computer (to be more precise, OS) theory. Too much theory, not enough real-world programming exercises.

With that said, I can't say if your schools curriculum is the same for that class. I would ask around what exactly is involved.
 
my Operating Systems class was extremely interesting, topics were very similar to yours. mine has programming in C++, mostly dealing with threading and all the problems that come with it.

my Software Engineering class was pretty boring, probably b/c I could have taught it better myself, but useful. Team projects are always terrible though. If you like programming then you will end up doing all of the work while the lazy idiots in your group play WoW all day.
 
my Operating Systems class was extremely interesting, topics were very similar to yours. mine has programming in C++, mostly dealing with threading and all the problems that come with it.

my Software Engineering class was pretty boring, probably b/c I could have taught it better myself, but useful. Team projects are always terrible though. If you like programming then you will end up doing all of the work while the lazy idiots in your group play WoW all day.

Doing all the work is probably one of the best things that could happen to you. If you don't feel like telling your professor that they're being lazy then just do it. Practice makes perfect. Once that job interview comes, you'll know exactly what you're talking about. When I was in college I was really mad that I had to do most of the work. Then again...some of them ended up working at Best Buy because nobody would hire them.
 
If you want to be a professional software engineer, you should take both.
 
If you want to be a professional software engineer, you should take both.

This would be the best option, but due to scheduling I can only take one. This is my last year so I cannot take it a different semester.

I am taking a class called "Principles of Operating Systems" (my last class to obtain a B.A. in computer science) right now, which is basically the System Programming class you're talking about. I would go with Software Engineering hands down, simply because of my lackluster experience with this class so far. There is very little (close to none) programming involved, everything is computer (to be more precise, OS) theory. Too much theory, not enough real-world programming exercises.

With that said, I can't say if your schools curriculum is the same for that class. I would ask around what exactly is involved.

My school has a separate course for operating systems. In systems programming you essentially learn the nitty gritty of C and Unix based OSes. One assignment I know of is to recreate a simple version of the GNU Tar utility. It requires the most programming out of any course offered.
 
Doing all the work is probably one of the best things that could happen to you. If you don't feel like telling your professor that they're being lazy then just do it. Practice makes perfect. Once that job interview comes, you'll know exactly what you're talking about. When I was in college I was really mad that I had to do most of the work. Then again...some of them ended up working at Best Buy because nobody would hire them.

the work was pointless and taught me little.
i have plenty of great experience on my own.

working in groups in high school and college has always lead to a terrible experience with me. it's surprising how many people just don't care.
 
This would be the best option, but due to scheduling I can only take one. This is my last year so I cannot take it a different semester.
I'm sure that, with a bit of effort, you could work something out.
 
Ugh, so hard. I HATED SRS documents and all that crap in software engineering. I found operating systems quite interesting. Especially the threading part. It is a tough call OP. SE will probably give you more real world stuff, but the OS class makes you understand how things work on a deeper level.
 
There's nothing that's not applicable to the real world in a systems programming class.
 
systems programming gave me the most programming experience, but unless you plan to be a system programmer, you'll probably find that you don't use much of what you learn, nor do you retain it very well compared to more conceptual things in SE that will stay with you longer.
 
systems programming gave me the most programming experience, but unless you plan to be a system programmer, you'll probably find that you don't use much of what you learn, nor do you retain it very well compared to more conceptual things in SE that will stay with you longer.

I can't disagree with this more.

Memory management is important. So is understanding storage and file types.

Threading is important. If you don't understand it, your never going to write performant code; clock rate growth has stopped. If you're only using one core on 12-core machine, you're in a pretty hopeless state.

If you think you'll need Software Engineering, your target might be a "programmer" position at a non-technology company. At that point, you're just using some bottled engineering practice to nerf your own incompetence.
 
Find out which class has a better professor and take that one.
 
I am with the other people here in that team projects usually suck.

I've only had one or two classes where almost everybody taking the class didn't even participate in the team project.

As for the class to take, I would definitely lean towards the Systems Programming one. Understanding threading is a huge thing and something that you will definitely want to have.

This is coming from somebody who had to stumble though trying to figure it out by myself and still don't have a really good grasp on some aspects of it.

The stuff in the SE class shouldn't be that hard to pick up just by practicing programming.
 
I'd def. go with Systems Programming. I took something like that SE class and didn't feel like I were learning anything really (but I came in with ~10ys experience already)
 
I started asking some of the MS students about these classes and it seems like SP is definitely the harder of the two. I asked about multithreading and it doesn't seem like it's taught despite what the description states. I'm already learning things like memory management in a class I'm taking now.

Here's a course page with projects and info: http://www.albany.edu/~csi402/
A friend of mine said one project was to create a Unix shell.

I asked one student who took both(not at the same time) and he recommended SE. He said I'd probably end up killing myself taking both at the same time :p.

According to him, SE covers things like Maven, Java Swing, JavaScript, DBMS and a few other tidbits. I'm actually taking a class with the SP professor and my opinion is he is definitely good (He won an award I believe). The other professor is not bad either from what I hear.

Still undecided. :confused:
 
Posted Feb. 10, 2011: The deadline for complaints regarding Quiz I is 11 AM on Thursday, Feb. 17, 2011. (Graded quizzes were handed back to the students during class on Thursday, Feb. 10, 2011.)
WTF kind of school are you going to?
 
WTF kind of school are you going to?

Maybe "complaints" isn't the best wording. Probably meant that the deadline for arguing your grade was a week after it was handed back. Usually it was just for asking why you lost points or something.

Depends on your school, but both of the classes I've taken similar to those were pretty lame... systems programming (although it might have been a different course) wasn't challenging enough and software engineering was taught by some guy who used to work at Microsoft but quit ( maybe got fired? ). And it's hard to take him seriously...because he acts like he's still in college (Technically he is... he's attending the Master's program at the same school) and talks about how much he drinks and how good he is at SC2 :rolleyes: I get the point of the class but it's hard to make it interesting for people not in the industry yet.
 
Last edited:
I'm not sure what the professor meant by "complaints." I've taken one of his quizzes so far in his other class and nothing like that was posted. It'd probably make sense if we knew the context.

Reading the slides from SP makes me think that although the class is interesting, I would probably be alright without it. (I could probably say the same for SE, though) I could pick up the books and read them while I'm looking for jobs and attempt some of the projects. Then again, I am no expert. Do the projects in that course seem important to you seasoned veterans?
 
Last edited:
If you think you'll be "alright" without both classes, what will be your chosen profession? Nursing?
 
If you think you'll be "alright" without both classes, what will be your chosen profession? Nursing?

I should have phrased it as I should be alright with one and teaching myself the other. For the other (since I cannot take both) I could somehow find a way to learn some of what was covered outside of school.

EDIT: I think I will probably end up going with Systems Programming. SE may give me more practical experience, but SP will give me a strong foundation.
 
Last edited:
Back
Top