Skip to main content
GameDev.net gamedev.net
🔒 Locked

Computer Science appreciation thread, or, "What's wrong with computer science ?"

Started by jfclavette Jun 3, 2005 at 11:10 AM 102 replies 18.8k views
Original Post
jfclavette
jfclavette
Something has been itching me for quite some time on these boards. Why are everyone looking down on computer science ? Am I the only one enroled in such a program that enjoy it ? Am I the only one who is learning stuff ? I always seem to hear that "Computer Science is easy" and that I "should learn it on my own." Sure, computer science is easy, and you can learn it on your own. However, it's the same for any freaking degree out there (with the notable exception of degrees that encompass some kind of accreditation necessary to work in that field, like law schools around here.) I for one, pretty much enjoy my classes. It helps me formalize some of the stuff I learnt on my own, and *gasp* sometimes I learn something totally new (hint: you can test out of classes and take higher level ones). Plus, it gives you double the time to work on it on your own. You are not limited by your degree. I'm curious to learn the cause of this general animosity toward computer science.
I teleported home one night; With Ron and Sid and Meg; Ron stole Meggie's heart away; And I got Sydney's leg. <> I'm blogging, emo style
twix
twix
It's probably because many CS programs are complete trash, even if yours is good. That's what I gather, at least; I'm not actually enrolled in many CS programs. [wink]

But maybe since the people here are pretty much all nerds, CS just conflicts with our idea of what you should be doing in college. Since a lot of us have to pay substantial sums of money to go there, it's a nice comfort to know that you'd be studying something you'd have a very hard time learning independently, without access to the great faculty and resources you're paying so much for.

Also, a lot of people (employers included) want CS to be a sort of certification for programmers, when it's really not supposed to be about programming at all. You could come out of a CS degree with virtually zero practical skills, and there would technically be nothing wrong with that. It's a bit annoying, I suppose, that the skills you're looking to learn from your degree mostly come from things like your own projects and internships.

This is just a distillation of what I've heard CS people complain about. Personally, I'm still thinking about what I'll major in. [grin]
capn_midnight
capn_midnight
Quote:
Original post by twix
Also, a lot of people (employers included) want CS to be a sort of certification for programmers, when it's really not supposed to be about programming at all. You could come out of a CS degree with virtually zero practical skills, and there would technically be nothing wrong with that. It's a bit annoying, I suppose, that the skills you're looking to learn from your degree mostly come from things like your own projects and internships.
that's like saying you could come out of an apprenticeship with a master carpenter not knowing how to swing a hammer.

jfclavette
jfclavette
Quote:
Original post by twix
It's probably because many CS programs are complete trash, even if yours is good. That's what I gather, at least; I'm not actually enrolled in many CS programs. [wink]

But maybe since the people here are pretty much all nerds, CS just conflicts with our idea of what you should be doing in college. Since a lot of us have to pay substantial sums of money to go there, it's a nice comfort to know that you'd be studying something you'd have a very hard time learning independently, without access to the great faculty and resources you're paying so much for.

Also, a lot of people (employers included) want CS to be a sort of certification for programmers, when it's really not supposed to be about programming at all. You could come out of a CS degree with virtually zero practical skills, and there would technically be nothing wrong with that. It's a bit annoying, I suppose, that the skills you're looking to learn from your degree mostly come from things like your own projects and internships.


Oh you're right. I often forget that not everyone has to pay only around 1300USD/year to study. Being a canadian commie ain't easy. [grin]
I teleported home one night; With Ron and Sid and Meg; Ron stole Meggie's heart away; And I got Sydney's leg. <> I'm blogging, emo style
Luckless
Luckless
I'm heading into my second year of CS at a rather small university. (Well, all depends on my mark for calc. Might go off and take welding or something instead)

The first year is mostly just basic stuff, and is more to cull the heard, and get rid of the people that just can't understand the basics, second year better get into more details. I don't expect to come out of there a master coder or something, I expect to come out with a general idea of what I'm doing and able to pick up just about any language in no time.

I'm not kidding myself, I expect to be doing most of the work myself. Thats what university is all about, you're not going there to have your hand held.
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
twix
twix
Quote:
Original post by capn_midnight
that's like saying you could come out of an apprenticeship with a master carpenter not knowing how to swing a hammer.

A CS degree isn't even analogous to an apprenticeship. If you choose your courses correctly, you could very easily let your programming skills languish and still make it out of the degree with flying colors. That's because CS isn't about programming, no matter how much people want it to be. Software Engineering is about programming.
Tron3k
Tron3k
Quote:
Original post by capn_midnight
Quote:
Original post by twix
Also, a lot of people (employers included) want CS to be a sort of certification for programmers, when it's really not supposed to be about programming at all. You could come out of a CS degree with virtually zero practical skills, and there would technically be nothing wrong with that. It's a bit annoying, I suppose, that the skills you're looking to learn from your degree mostly come from things like your own projects and internships.
that's like saying you could come out of an apprenticeship with a master carpenter not knowing how to swing a hammer.
Computer Science would be something more like, "Theory of Carpentry". [grin]
“[The clergy] believe that any portion of power confided to me, will be exerted in opposition to their schemes. And they believe rightly: for I have sworn upon the altar of God, eternal hostility against every form of tyranny over the mind of man” - Thomas Jefferson
jollyjeffers
jollyjeffers
Computer Science @ The University Of Nottingham both sucks and blows, in that way that you really can't quite comprehend.

People probably slate it a lot because it's a "Jack Of All Trades" type degree, often trying to cover anything/everything to do with computing. It's not necessarily obvious what the benefits are when you consider it that way.

I wish I did Software Engineering as my degree [headshake].

Jack
<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ |
twix
twix
You know what would be nice? If employers would narrow their programming-job hiring criteria to above all preferring Software Engineering majors, and then give all other degrees equal preference. I think that would be a much more reasonable way to get qualified software engineers than the current "CS or equivalent" system. If I can get a math degree and still be as good a programmer as any CS guy, I think that shouldn't be held against me. Let's just see how things look in four years. [grin]
Spoonbender
Spoonbender
What's with all those " appreciation thread"'s?

Anyway, I've been studying CS for 3 years now, and on the whole, I don't see what's so bad about it. Of course, I don't know how it is elsewhere, but here, at least, we do learn an awful lot. True, you could in principle learn it all on your own, but isn't that true for any degree? (Including the carpentry apprenticeship someone mentioned)

But if you try to learn it on your own, there's no way to ensure that you actually get the whole picture. An example is an acquaintance of mine who despises CS and firmly believes that he can learn anything from Google much easier.

The problem is that once he starts on a big programming project, he has no clue how best to tackle the problems he encounters. He doesn't know what a linked list or a binary tree is, so when he needs a data structure, he simply can't look over the alternatives and pick the best suited. Instead, he has to Google for a solution, copy it, and hope it's somewhat efficient.

Another example was once he tried to "optimize" a program of his, by making it store and sort a few million numbers on the HD, whereas the original version of the program had a few more loop iterations, yes, but it didn't require any HD access, and only a small amount of memory activity even.

Basically, when you try to learn on your own, there's no way to learn what you don't know, to find out exactly what you *should* know.

Anyway, as people have said, computer science is not about programming at all. That's just a tool you occasionally need to get on with the important stuff (from CS's point of view).

At my uni, we learned some programming on the first year (a course on Java, and one on ML). This taught us a bit of each language, and a lot about the OO and functional programming paradigms.

Since then, we've done a lot of programming, but never as actual programming courses. When we wrote a kernel, it was just assumed that we could pick up C++ in a week or so, given our foundation in the above languages). Because C++ itself wasn't important, it was just something we had to figure out to be able to write the kernel.

The same goes on the courses on algorithms and data structures. Sure, we occasionally had to do some programming, but it wasn't the focus of the course, just a small distraction that occasionally had to be done, in about the same way that the carpenter mentioned previously occasionally has to hammer a nail. But that doesn't mean his apprenticeship is about learning to hammer nails.

And of course most of the courses have some importance for programming (learning about algorithms is damn useful to a programmer, for example). But CS is really about all this background fluff, not about the specific tool called 'programming'.

But of course, people who sign up for CS expecting to just sit at a computer all day writing C++ are going to be disappointed, and a lot of them think CS sucks because of this. If you just want to code, there are more specialized and direct ways of learning that.

In most of scandinavia, computer science is called 'datalogi', meaning something like the science of data. (Historically, the guy who founded our CS department came up with the name because he thought the name 'computer science' wasn't very accurate, and didn't have much to do with the stuff that's actually taught.)
It isn't about computers, it's about data. Manipulating, managing and generating data. Sure, computers are useful for this, but they're not required. Same goes for programming. Sure, it helps making a lot of these tasks easier, but it's not the focus of this branch of science.

Personally, I love studying CS. I've learned an awful lot, some completely new, and some just formalizing or expanding on stuff I've found out on my own. It's also thrown me into crazy projects I wouldn't have dreamed of tackling otherwise (like writing a multithreaded kernel for an Alpha CPU in 3 weeks, or a compiler written in ML, or just learning strange languages like Prolog.)

However, I'm under the impression that our particular version of CS has a lot more practical exercises and projects than is usual. I'm glad we get to try out all the stuff we learn in practice. Sure, it can get tough, and practically eliminates the free time everyone else says they have plenty of, but it's usually great fun, and it helps understanding a lot.
Being told how a kernel schedules threads or switches between processes is one thing, but having to actually implement this really drives home the point, and forces you to understand every bit of it.
kSquared
kSquared
Old Eddie D's famous quote bears repeating here:

Quote:
"Computer science is no more about computers than astronomy is about telescopes."

-- Edsger Dijkstra
- k2 "Choose a job you love, and you'll never have to work a day in your life." — Confucius"Logic will get you from A to B. Imagination will get you everywhere." — Albert Einstein"Money is the most egalitarian force in society. It confers power on whoever holds it." — Roger Starr{General Programming Forum FAQ<
jperalta
jperalta
Quote:
Original post by capn_midnight
Quote:
Original post by twix
Also, a lot of people (employers included) want CS to be a sort of certification for programmers, when it's really not supposed to be about programming at all. You could come out of a CS degree with virtually zero practical skills, and there would technically be nothing wrong with that. It's a bit annoying, I suppose, that the skills you're looking to learn from your degree mostly come from things like your own projects and internships.
that's like saying you could come out of an apprenticeship with a master carpenter not knowing how to swing a hammer.


Entirely not true. Your analogy does not fit the case. Computer science is a science, you learn theories and how they are applied. You are learning the science of, well, computing. More appropriately compared to a carpenter would be a computer programmer who learns, strictly, how to program.
nprz
nprz
My computer science program at my college seems fine. In the upper division courses the professors assume that everyone learned what they need in the lower division programming/data structures courses to make a program. With this assumption they make us program some godawful things.

I guess since my campus is so close to UC Berkeley, my Systems Programming professor wanted us to learn everything about Motes. But being a poor college (unlike Berkeley) we didn't have many Motes and just worked with simulators to program some tough algorithms.

I don't see how one can avoid programming altogether because one should be able to translate some theory into actual code.

The lower-division courses are all pretty easy; even some upper-division courses are easy. But all of my CS projects were not that easy.

Anon Mike
Anon Mike
IMHO the problem is that college/university in general is not really meant to teach "job skills". They're really meant to train people to become researchers. Research after all is what most professors *do* - the teaching is just a sideline that's necessary to ensure a new supply of researchers.

However most people don't really understand that. They expect to coast through school and end up with a good job at the end. What you really have to do is to take what you're learning in school and apply it to even more studies outside the immediate cirriculum that has a more practical / employable bent to it.
-Mike
ManaStone
ManaStone
I'm going to be graduating with a B.S. in computer science soon and I have no skills to get a decent job when I'm done. I don't even know HTML. I know a little sql, but that is it. I spend my free time learning stuff about game programming instead of things that can help me get a decent job in the future. I'm a bit worried.
-----------------------------Download my real time 3D RPG.
Luckless
Luckless
Quote:
Original post by ManaStone
I'm going to be graduating with a B.S. in computer science soon and I have no skills to get a decent job when I'm done. I don't even know HTML. I know a little sql, but that is it. I spend my free time learning stuff about game programming instead of things that can help me get a decent job in the future. I'm a bit worried.


Well, is there ANY program at a university that really gives you all the skills you need to get a job in that field? You get a toolkit to work with and then apply those to whatever job you do.

As for HTML, really, I know a little HTML and I'm in first year. All I've done is looked at source for webpages to pick up what little I have used. If you have done 4 years in a B.Sc. (BSc sounds so much better than a BS,...) you shouldn't have any problems learning HTML in a few days. If you can think about how to lay out a GUI, and you can't learn HTML, a simple markup language, then you have a LOT of problems :P
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Max_Payne
Max_Payne
At least here in computer science at McGill you get to take lots of software engineering courses (50% of the degree are courses you choose). I do find that they teach things from an overly theoretical point of view. Computer science is not much without computers after all.

What is most positive about my program is that its 3 years (vs 4 for software engineering), and I get more flexibility on the courses I choose.

Looking for a serious game project?
www.xgameproject.com
Luckless
Luckless
Max, you mean McGill in Montreal has a 3 year B.Sc.CS in only 3 years? If it wasn't for the fact that I can stay here and go to UPEI for like a tenth of the price I might consider that. (That, and my brother lives in Montreal, and I would rather he stayed farther away)
Old Username: Talroth
If your signature on a web forum takes up more space than your average post, then you are doing things wrong.
Max_Payne
Max_Payne
Quote:
Original post by Talroth
Max, you mean McGill in Montreal has a 3 year B.Sc.CS in only 3 years? If it wasn't for the fact that I can stay here and go to UPEI for like a tenth of the price I might consider that. (That, and my brother lives in Montreal, and I would rather he stayed farther away)


Its 3 years for us French Canadians. 4 years for the rest of the world. This is because our high school lasts one year longer (sort of), and it covers all the basic science courses.

Looking for a serious game project?
www.xgameproject.com

Topic Locked

This topic has been locked by a moderator. New replies are not allowed.

Sign in to reply to this topic.