digitalmars.D - What is Computer Science?
- David B. Held (102/102) Apr 29 2007 Since many people (including me) hate deeply nested threads, I decided
- janderson (6/10) Apr 29 2007 [Snip]
-
Walter Bright
(2/11)
Apr 29 2007
There aren't any boring subjects. There are only boring people
. - janderson (12/24) Apr 29 2007 I'm not sure about that. I've had some really good speakers but if
- David B. Held (5/13) Apr 29 2007 If it's stuff you know, then you nitpick the speaker and call out
- Nicolai Waniek (16/32) Apr 30 2007 That's IMHO not always a good idea. I have an apprenticeship in software
- Alix Pexton (8/11) Apr 30 2007 In the UK at least, there are 2 types of University, basically its the n...
- Jarrett Billingsley (4/13) Apr 30 2007 That's what I end up doing a lot ... :P
Since many people (including me) hate deeply nested threads, I decided to start a new one on a slightly off-topic subject. IMO, "Computer Science" is a slight, but not complete, misnomer. On the one hand, students who take CS at a university expect to be taught Software Engineering, and that is what universities tend to teach them. On the other, the professors themselves, who actually do research, do a lot more than Software Engineering, and often tend to actually be bad at both doing and teaching SE (because they don't do it professionally, of course). Do Computer Scientists actually conduct experiments worthy of calling them scientists? Well, when I was going to school, we knew there were certain times when it was not wise to attempt to build your project on the department minicomputer because one of the professors was running his genetic algorithm to solve the Busy Beaver problem. He ran his program as often as possible and regularly wrote papers on progress he made on this and other topics in CS. Given that his hypothesis was that a certain fitness function or selection rule or crossover strategy would produce better results than what was currently known, and that the only way this could be demonstrated was by running the simulations, I would call this "experimentation" and "science" just as surely as growing something in a petri dish or smashing molecules in an accelerator. The reason most people don't associate CS with "science" is that they don't end up in the academic world, where most science is actually conducted. But if they did, they would see that all good papers involve an implementation to demonstrate (or fail to demonstrate) some new claim about how computers do or should or could behave. Whether it's about "computers" or just "software" seems like a pedantic point, especially considering that "softness" runs a continuum that is being updated every day (for instance, the kilocore architecture is really a bunch of PGAs for which the notion of "running software" is more like "reconfiguring hardware"). Agreed that much of what computer scientists do is heavily mathematical, but to call it an extension of mathematics would be like calling physics an extension of mathematics because it is heavily mathematical. While there is a field called "Mathematical Physics" which explores that realm between pure math and pure physics where it's not obvious which you are more of, it is generally recognized that math is a *tool* used by physics, and not physics itself. In the same way, CS uses math as a *tool* to make statements about computation without the math itself *being* the computation (despite the overlap in symbology). The *field* of Mathematics is about making statements about the *tool* of math, independently of any *application* of that tool. And interestingly enough, there are lots of interesting (and obscure) such things to say. Whereas, the *application* of mathematics is about making statements about *another field*, using mathematical concepts and notation. This is why CS was originally considered a form of "Applied Math". But it is no more useful to say that than to reduce physics, chemistry, and biology to "Applied Math". There is a certain strict sense in which that is probably true, but there is no practical value to it. The way you can tell is that a pure mathematician would make a lousy computer scientist because there is lots in CS that is irrelevant to pure math that such a person would not necessarily have learned and become proficient in. So it then comes down to the question of: "Do you need CS to be a software engineer?" Well, that's like asking if you need Physics to be a good mechanical engineer. And in both cases, I would say: "No, unless you want to be a *good* engineer." Plenty of people who have not studied CS make up the majority of the SE "working class". But when an SE does not understand the basics of algorithmic complexity and tends to select data structures based on whether they provide the particular method or interface they need at the moment, you begin to see the difference between CS-educated SEs and non-CS-educated SEs. If you think there are no such SEs in the world, try screening candidates for any large tech firm. Even more disappointing is that going to school and "studying" CS does not make you a CS-educated SE, as many folks prove with alarming regularity. Proficiency in a task depends on having a strong mental model of that task, and such models are built up through examples. You can acquire examples through experience, or through education; but ultimately, your neural network needs *lots* of examples to build solid models of the Software Engineering discipline. The point of education is to expose you to a regular set of examples so that your resulting model is more likely to be useful and more refined than random sampling (i.e.: the self-taught route). Of course, education does not always succeed at this task, and highly motivated individuals will tend to expose themselves to more examples than unmotivated individuals. However, if selection biases cause them to fail to consider examples that they would be exposed to in an educational setting (because they just code what's "fun"), then there is a hole in their knowledge that differs from standard education. That's a long-winded way of saying that school is good because it forces you to learn stuff that you don't really want to learn, which ultimately makes you a more well-rounded person. Learning networks learn the best when they are able to sample the largest subset of the state space. So being exposed to stuff that doesn't really interest you otherwise exposes your brain areas of the state space that help you generalize your mental models more appropriately. And when a school fails to do this, then they aren't adding any value at all. But odds are, most students judge a school by how boring their classes were, failing to recognize that some of those boring classes are exactly what they need to learn to fill in gaps in their knowledge. I can't say that I learned most of what I know from school, because I probably didn't. On the other hand, I think I learned a lot more having studied CS at school than I would have on my own, because of the whole formal-education-enforces-discipline effect. Anyway, CS is relevant to D because getting the kind of knowledge necessary to design a good language is very difficult to do by inventing *lots and lots* of languages. It's much easier to just learn the theory behind PLs and apply that to features being considered for D (and to fix features already in D). And whenever you have a theory, you have a science. ;) Dave
Apr 29 2007
David B. Held wrote: [Snip]But odds are, most students judge a school by how boring their classes were, failing to recognize that some of those boring classes are exactly what they need to learn to fill in gaps in their knowledge.[Snip] I must be the odd one out in this theory. I found the most boring classes were the ones where they were teaching stuff I already knew. -Joel
Apr 29 2007
janderson wrote:David B. Held wrote: [Snip]There aren't any boring subjects. There are only boring people <g>.But odds are, most students judge a school by how boring their classes were, failing to recognize that some of those boring classes are exactly what they need to learn to fill in gaps in their knowledge.[Snip] I must be the odd one out in this theory. I found the most boring classes were the ones where they were teaching stuff I already knew.
Apr 29 2007
Walter Bright wrote:janderson wrote:I'm not sure about that. I've had some really good speakers but if their subject is about how a C 'for' loop works, I would still fall asleep. Its like watching the same movie again. It doesn't matter how good it was the first time, I'm not one of those people who can watch it again knowing the ending. Then again, I've had some speakers that would keep my interest even if they where talking about the 91 types of saw-dust. Reminds me of hell in the "Eric" Terry Pratchett book where they found that boredom was a far more effective form of punishment then the good-old fire and brimstone. -JoelDavid B. Held wrote: [Snip]There aren't any boring subjects. There are only boring people <g>.But odds are, most students judge a school by how boring their classes were, failing to recognize that some of those boring classes are exactly what they need to learn to fill in gaps in their knowledge.[Snip] I must be the odd one out in this theory. I found the most boring classes were the ones where they were teaching stuff I already knew.
Apr 29 2007
janderson wrote:[...] I'm not sure about that. I've had some really good speakers but if their subject is about how a C 'for' loop works, I would still fall asleep. Its like watching the same movie again. It doesn't matter how good it was the first time, I'm not one of those people who can watch it again knowing the ending. [...]If it's stuff you know, then you nitpick the speaker and call out mistakes as he/she makes them. At least, that's what I did in my young-punk years... Dave
Apr 29 2007
David B. Held wrote:janderson wrote:That's IMHO not always a good idea. I have an apprenticeship in software engineering and am now studying "Informatik" (that's like CS, but you get lots more math I think and you have a minor subject, in my case it's biology because I once wanted to study micro-biology but then I would want to do some research, and that's not easy to achieve in Germany...) at the University of Ulm and when sitting in the software engineering courses I could possibly make a note each 5 minutes because the lecturer just states something wrong. Well, I could do this, but it would disturb the whole course - Therefore it's better to just not go to those lecturers, read the script of the last lessons in a few minutes and teach your fellow students how to code in your spare time :) best regards Nicolai PS: btw. my university's logo states "ulm university", but I guess it should be "university of ulm". I don't think my english is quite bad (just a bit rusty), but I don't think "ulm university" is gramatically correct.[...] I'm not sure about that. I've had some really good speakers but if their subject is about how a C 'for' loop works, I would still fall asleep. Its like watching the same movie again. It doesn't matter how good it was the first time, I'm not one of those people who can watch it again knowing the ending. [...]If it's stuff you know, then you nitpick the speaker and call out mistakes as he/she makes them. At least, that's what I did in my young-punk years... Dave
Apr 30 2007
Nicolai Waniek wrote:PS: btw. my university's logo states "ulm university", but I guess it should be "university of ulm". I don't think my english is quite bad (just a bit rusty), but I don't think "ulm university" is gramatically correct.In the UK at least, there are 2 types of University, basically its the newand the old. The old Universities, (the equivalent of Ivy League I suppose) are "X University", this includes places like Oxford and Cambridge. Then there are the new Universities which are usually "University of X". There is of course some exceptions, but in general, the place first form carries a sort of implied extra prestige. From what you said of Ulm, I don't know if you'd want to make the transposition while translating or not. A...
Apr 30 2007
"Nicolai Waniek" <no.spam thank.you> wrote in message news:f14acp$1cdi$1 digitalmars.com...Therefore it's better to just not go to those lecturers, read the script of the last lessons in a few minutes and teach your fellow students how to code in your spare time :)That's what I end up doing a lot ... :PPS: btw. my university's logo states "ulm university", but I guess it should be "university of ulm". I don't think my english is quite bad (just a bit rusty), but I don't think "ulm university" is gramatically correct.They both sound fine to me.
Apr 30 2007