23 Jan, 2010, Lyanic wrote in the 21st comment:
Votes: 0
I'm also surprised that Algorithms is a graduate level course in that program. I have the same surprise with there only being four math courses, including Discrete (though I did notice that the Calculus courses were 5 credit hours each), as well. And I may have overlooked this, or it may not be obvious, but was there any course with Client/Server focus at the undergraduate level in there? Overall, it looks like a pretty good program, though. I'd say it's about 80% of an exact match to what the program at my University required, given that you swap the Software Engineering courses for AI courses to account for difference in specialization.
23 Jan, 2010, David Haley wrote in the 22nd comment:
Votes: 0
Lyanic said:
And I may have overlooked this, or it may not be obvious, but was there any course with Client/Server focus at the undergraduate level in there?

I was under the impression that that's what "Communication networks" was about (among other things). I'm not entirely sure why there should be an entire course focusing on just this, though, although I suppose a networking course would implicitly cover client/server among many other things.
23 Jan, 2010, Lyanic wrote in the 23rd comment:
Votes: 0
David Haley said:
Lyanic said:
And I may have overlooked this, or it may not be obvious, but was there any course with Client/Server focus at the undergraduate level in there?

I was under the impression that that's what "Communication networks" was about (among other things). I'm not entirely sure why there should be an entire course focusing on just this, though, although I suppose a networking course would implicitly cover client/server among many other things.

I assumed Communication Networks to be a course dealing with lower level stuff, focusing on the OSI model, TCP/IP protocols, network hardware drivers, etc. As for Client/Server, I meant something along the lines of this: ISQA 8380 Managing the Client-Server Environment. Which, by your reasoning, would be even stranger to have a full course devoted to at the graduate level (as opposed to undergraduate).
23 Jan, 2010, David Haley wrote in the 24th comment:
Votes: 0
Well, I'm not sure what exactly you mean by a focus on "client/server", nor am I sure what exactly they mean by the "client-server environment". So I don't have an opinion at this point as to whether that would be strange to have for a course, because they could mean any number of things by that term. (I suspect, given some of the other courses, that it's as much about managing the business setup, or infrastructure organization if you will, around clients and servers as it is the technical details.) That said, I'm not sure how you can really discuss networking and especially TCP/IP without discussing client/server models…

FWIW, my networking course didn't cover anything related to drivers. We did write an entire TCP/IP stack though, and run our own HTTP proxy and server, and network router, on top of it, so eh. (It was actually pretty cool to route traffic through a network with your own router. Groovy.)
23 Jan, 2010, elanthis wrote in the 25th comment:
Votes: 0
Like I said, you can't rely on the school to teach you everything. Unless you want a basic bachelor's to take 8 years of full-time study to get, every school is going to have to pick and choose what to leave untaught. You _must_ study on your own if you want to be worth anything. Some schools focus heavily on software design without much low-level coding, some focus on low-level coding without much architecture design, some focus heavily and math and others less so on math, some focus everything towards games and some focus everything towards networking/Web and some focus everything towards systems programming. You're stuck not knowing a lot of things any way you go unless you put in the time to pick it up yourself.
23 Jan, 2010, lockewarrior wrote in the 26th comment:
Votes: 0
Hey all, not sure if I'm late or what, only have a moment to post, but I thought I'd add something.

I've recently had to go through this as well, and the lack of consistency between schools and employers is can make discerning the proper track a little daunting. A programmer is somebody who writes/designs algorithms, computer code that give a computer specific sets of instructions. Computer science is just that, -science-! The study of computers, their structures, architecture, languages, mathematical structures that relate to computation, theoretical limits, etc. It is not the same as software engineering which is what most 'programmers' are doing in the field.

Engineers apply theory, design practices, and coding techniques to build software. If you want to be a programmer, developing software, a 'software engineering' degree is really what you want to find. Most universities have two programs in their CS (computer science) department, one being a Computer-Science degree, the other being a branch of engineering degrees, with different components depending on your focus (electrical engineering, software engineering, microprocessor, etc.)

Studying aesthetics or art-history, and being a painter are two VERY different things. It's the same in this case. Also, on that note, employers are more likely to higher programmers who view themselves as engineers. It's generally considered to be the appropriate term encompassing the various roles and functions of a 'programmer' in most environments.

Anyway, hope that helps a bit, and hello everyone, I'm lockewarrior.
23 Jan, 2010, David Haley wrote in the 27th comment:
Votes: 0
I firmly disagree with that statement. Getting a good CS degree is nothing like only knowing the theory and knowing nothing about practice. In fact, if you look at the best schools, they most often do not have the two tracks you mentioned, but only Computer Science. It's very hard to get a good computer science degree without knowing anything about software engineering. Furthermore, these programs are often (but not always) part of the school of engineers, and people coming out of the program do indeed consider themselves to be 'engineers'.

Most grads from good CS programs go straight into software engineering jobs.

I agree with your statement insofar as there are some people who do CS only to become theoreticians, but this isn't the common case.
23 Jan, 2010, Lyanic wrote in the 28th comment:
Votes: 0
David Haley said:
I agree with your statement insofar as there are some people who do CS only to become theoreticians

Like me!
23 Jan, 2010, lockewarrior wrote in the 29th comment:
Votes: 0
I'm sorry, but all three schools I've dealt with (MIT, University of Washington, and Western Washington University) had it broken up exactly as I described. Computer Science being a department of it's own, Engineering being a department of it's own, and both belonging to the College of Technology and Science. The difference being a Bachelors of Science in Computer Science, from the College of Arts and Sciences, or a Bachelor of Science in Computer Engineering, from the College of Engineering.

You can firmly disagree all you want, but once you're moving past a 4-year degree (which I have), it begins to have exponential impacts on your options, which of those two you got your degree in. Masters degrees will make the stretch between the two significantly wider as you begin having to fulfill different requirements. Don't get me wrong, there are all sorts of different combination classes you could take to get a 'degree', but for the purpose of marketability and consistency, what I said is more or less correct.

A lot of engineering degrees will have computer science related courses, and likewise, a computer science degree will undoubtedly have some programming courses. The pattern I've described IS the current trend though, and as years go by, it's extremely likely that the distinction between 'computer scientist' and 'software engineer' will solidify across university boards. I've studied 'computer science' and 'software engineering' at 4 different schools, the three mentioned above and Kanagawa Institute of Technology in Japan, and this is what I observed, learned firsthand, and discussed with various professors.

When you're going to school, money and time are you're two biggest resources. You want that money to go far, so I would highly suggest you consult student advisors, academic counselors, etc. and call companies. Look up some major companies in the field you would like to work in, explain your situation as a student, and ask if they have a preference to computer science/computer engineering, or certain classes. The more research you put into it, the better you can plan a degree that's going to serve you where you want to go.

Also, it's worth noting that 'computer science' and 'software engineering' aren't the only terms thrown around without much care to meaning. If you're school doesn't use CCN (common course numberings), then they may have inaccurate descriptions of classes by their name. If you don't know what Algorithms I is, ask! Figure out what the course matter is, and see how it translates to classes by a school that has definitive guidelines for naming conventions. The 'quasi-random' name of some computer class might be misleading, it could be a very 'engineering' oriented class, or a very 'science' oriented class. They really leave it up to the students to figure out, and it can be hard. Call people, write emails, seek some clarification.

Personally, I wouldn't go to a school that hasn't adopted CCN. CCN enables you to easily tell if a class will satisfy credits when transferring to another school. Having had to move my transcript between 4 schools, I know what a hassle that can be.
23 Jan, 2010, David Haley wrote in the 30th comment:
Votes: 0
Quote
MIT

At MIT, CS is part of the Department of Electrical Engineering and Computer Science, a branch of the School of Engineering. To read more, see this URL.

Quote
University of Washington

UoW puts "Computer Science and Engineering" in the College of Engineering. To read more, see this URL.

When you dig further, they provide the following information:
The UoW FAQ for CSE Prospective Students said:
What is the difference between Computer Science and Computer Engineering?

In our department, the difference between these majors is really just which courses are required. CS is a major within the UW's College of Arts and Sciences, so it has broader liberal-arts general education requirements and more flexible upper-division requirements. Computer Engineering is a major within the UW's College of Engineering, so it's requirements are more focused and include Technical Communication and either a Hardware or Software specialization.

(Unfortunately, they don't know how to write "its" correctly either. Oh well.)
In any case, this makes it apparent that the distinction has nothing to do with theory vs. practice, but that the CS from Arts and Sciences has more gen-ed requirements whereas CompEng is more focused on computer stuff in general.


I didn't bother looking at WWU, because so far two of three claims aren't saying what you said they were saying. Your claim was that it was a division between theory and practice (like art history vs. painting), and this does not seem to be the case so far.

Where I went to university (a rather well-known school in California) the only CS program was CS in the School of Engineering. They had other programs with more or less focus on mathematics (e.g., a Math-and-CS degree) or systems/hardware. It would appear that Berkeley (another rather well-known school…) has a similar split of gen-ed vs. specialization.

Quote
When you're going to school, money and time are you're two biggest resources. You want that money to go far, so I would highly suggest you consult student advisors, academic counselors, etc. and call companies. Look up some major companies in the field you would like to work in, explain your situation as a student

This I agree with completely.

Quote
and ask if they have a preference to computer science/computer engineering, or certain classes

I disagree with the first part of this, because the distinction is so fuzzy. The second part is a much better and less ambiguous question, so it's definitely one to ask.

Quote
Personally, I wouldn't go to a school that hasn't adopted CCN. CCN enables you to easily tell if a class will satisfy credits when transferring to another school. Having had to move my transcript between 4 schools, I know what a hassle that can be.

Without knowing anything at all about your personal situation, I think it's a little unusual to transfer around between four schools. But, if anybody knows that they might have to move around a bit (and therefore transfer) then yes, I would agree with this.
That said, I don't know how many of the "top schools" use "CCN" – I've never even heard of it (not that that's necessarily worth anything).
24 Jan, 2010, lockewarrior wrote in the 31st comment:
Votes: 0
Frankly, I'd say you're somewhat of a dolt, rather seeming to argue for the sake of arguing.

I'm not in the practice of defending each point that you're looking to counter. You said, "When you dig further.." I went to MIT and UW, so I dug pretty deep.

My point is, you've clearly already gone to school, and aren't the person who asked the question, i.e. the one I'm directing my responses too. I'm just trying to give a general summary of some of the things to look out for if you're a college-bound student on track to do some computer programming. When I say, "and ask if they have a preference to computer science/computer engineering" I don't mean to literally say that. I think we've established that the 'distinction is fuzzy'. I mean that you should ask whatever questions feel appropriate and are effective in determining whether or not the company is looking to hire a computer scientist, or a software engineer. Do they want software engineers with computer science backgrounds?

P.S. MIT has changed the structure of their program since I attended there. You're still left with an electrical engineering path, a computer science and engineering path, or a mixed path. So not as big a distinction there. UW however still outlines the program as I described. Sure, they don't use the words 'theory vs practice', but if you're taking 'general ed' courses, that means wider scope, shallower depth. I would say that translates into 'theory vs practice' pretty well. You practice more things, but that means less practice with each. Theoretically, you will know how to do all of them, right?
24 Jan, 2010, Kayle wrote in the 32nd comment:
Votes: 0
Mmm. Credential waving. It's fun stuff. Really it is. But it's a lot like ePeens. Completely pointless. So when you're all done measuring ePeens can we get back to the subject at hand? Thanks. I was actually enjoying this thread till all this folder waving became involved.
24 Jan, 2010, David Haley wrote in the 33rd comment:
Votes: 0
lockewarrior said:
Frankly, I'd say you're somewhat of a dolt

Classy. As to why I'm replying, well, I find that your advice (as stated so far) isn't entirely correct, and potentially rather misleading, and so, in the interest of providing the most usefulness possible, I think it's really quite reasonable to say as much and this has nothing to do with just arguing. I'm not asking you to counter my points, either; you'll do so if you feel like it I suppose. That said, if you don't feel like discussing things, it would be more polite to simply say so rather than start calling me names.

lockewarrior said:
You practice more things, but that means less practice with each. Theoretically, you will know how to do all of them, right?

General ed has nothing to do with "general CS ed" but other classes in general. It does seem that MIT has two CS tracks, but both are "CS" – it's just that one is more concentrated on CS and Engineering stuff in particular, whereas the other allows more breadth in entirely different subjects. The analogy of "art history vs. painting" is inappropriate; it really doesn't have to do with "CS theory" vs. "CS practice".

Not all schools (such as several of the top schools in the country) distinguish between "computer scientists" and "software engineers", but if they do, you should find out what exactly they mean by that. And then, sure, go find out if the companies you'd like to work for care about the distinction that the school makes. Anyhow, I think that the point has been made pretty clearly enough by now.
24 Jan, 2010, lockewarrior wrote in the 34th comment:
Votes: 0
I didn't mean 'general CS ed'. I mean, if an AA degree is 90 credits, and a BS is 180, and you take more general ed classes, that's fewer classes (credits) you're spending in programming classes.

I tried to pick a harmless name, heh. I'm not really upset or disagreeing. I think we're both trying to accomplish the same thing, and helping clarify and provide accurate information is commendable. I just feel like nitpicking over wording isn't the best way to do that.

Now, I never said anything about "top-schools". Trying to find a top-school can be a challenge of it's own. Also, I don't know how it is across the country, I haven't been to every university. I did go to MIT, then Kanagawa, then UW, and then Western, in that order, and at 4 schools, I encountered this issue.

Maybe in other parts of the country it's not the same, and maybe the school you attended had a well-structured program or used different terminology, but I know that I wasted credits(money!!!) in the Computer Science track taking classes that, in the grand-scheme of things, could have been better spent elsewhere. My only reason for posting originally was to offer some insights from my own experiences, in the hopes that someone else can avoid the pitfalls.


By no means are my own-experiences a comprehensive guide, but on the other hand, I did try to offer honest, accurate information as best I could. Cheers!
24 Jan, 2010, Lyanic wrote in the 35th comment:
Votes: 0
I'm just throwing this out here to maybe help establish consensus, but this is the hierarchy where I went to school (Mississippi State University), as it pertains to the related majors/fields being discussed:

College of Engineering

Software Engineering Computer Science Computer Engineering Electrical Engineering

AI Parallel Info. Ass. Comp. Bio.


*The above hierarchy is only for the undergraduate level. At the graduate level, Software Engineering folds into the MSCS as a 5th specialization option. I left the specializations under SE/CE/EE blank because I'm not as familiar with them.

Furthermore, I've never heard of CCN, either. However, I do know that most any of these technical programs at major universities are going to be ABET accredited, which somewhat governs the title/description of courses within the programs.
24 Jan, 2010, lockewarrior wrote in the 36th comment:
Votes: 0
Lyanic said:
However, I do know that most any of these technical programs at major universities are going to be ABET accredited, which somewhat governs the title/description of courses within the programs.


Ahh, nice, I forgot about ABET. Yeah, similar stuff. I suppose what I said about not going to a school that doesn't have CCN is a little dramatic, but if you find a school that does, it is nice. I think the computer engineering at both UW and Western are ABET, but not the CS. I'm not really sure why though, not something I have the time to look into right now.

I think CCN is a fairly new/recent initiative, btw.
24 Jan, 2010, Cratylus wrote in the 37th comment:
Votes: 0
lockewarrior said:
I'm not in the practice of defending each point that you're looking to counter. You said, "When you dig further.." I went to MIT and UW, so I dug pretty deep.


ooo lookit mister edumacated

lockewarrior said:
i.e. the one I'm directing my responses too.


lol i guess they dont teach grammer at mit
24 Jan, 2010, Davion wrote in the 38th comment:
Votes: 0
Cratylus said:
lockewarrior said:
I'm not in the practice of defending each point that you're looking to counter. You said, "When you dig further.." I went to MIT and UW, so I dug pretty deep.


ooo lookit mister edumacated

lockewarrior said:
i.e. the one I'm directing my responses too.


lol i guess they dont teach grammer at mit


Stop trying to pick a fight. Mocking people is not a good way to have a valuable discussion. Granted, neither is calling people a dolt, but at least he had a point.
24 Jan, 2010, Cratylus wrote in the 39th comment:
Votes: 0
Davion said:
Stop trying to pick a fight. Mocking people is not a good way to have a valuable discussion. Granted, neither is calling people a dolt, but at least he had a point.


Stop making halfassed guesses at what I'm up to. The dude showed up waving his dick and
it should be made clear to him that his statements are judged on their merit and not that of
his claimed transcript.

Just like yours are judged on theirs.

-Crat
http://lpmuds.net
24 Jan, 2010, Davion wrote in the 40th comment:
Votes: 0
Cratylus said:
Davion said:
Stop trying to pick a fight. Mocking people is not a good way to have a valuable discussion. Granted, neither is calling people a dolt, but at least he had a point.


Stop making halfassed guesses at what I'm up to. The dude showed up waving his dick and
it should be made clear to him that his statements are judged on their merit and not that of
his claimed transcript.

Just like yours are judged on theirs.

-Crat
http://lpmuds.net



Mmhmm. Anyways! If you have nothing else to post other then openly mocking people, don't.
20.0/58