Mark Guzdial at ACM (Association of Computing Machinery) writes:
I have three reasons for thinking that learning CS is different than learning other STEM disciplines.
- Our infrastructure for teaching CS is younger, smaller, and weaker;
- We don't realize how hard learning to program is;
- CS is so valuable that it changes the affective components of learning.
The author makes compelling arguments to support the claims, ending with:
We are increasingly finding that the emotional component of learning computing (e.g., motivation, feeling of belonging, self-efficacy) is among the most critical variables. When you put more and more students in a high-pressure, competitive setting, and some of whom feel "like" the teacher and some don't, you get emotional complexity that is unlike any other STEM discipline. Not mathematics, any of the sciences, or any of the engineering disciplines are facing growing numbers of majors and non-majors at the same time. That makes learning CS different and harder.
(Score: 2) by Justin Case on Wednesday January 10 2018, @09:34PM (11 children)
Science "builds and organizes knowledge in the form of testable explanations and predictions about the universe" (Wikipedia).
Is "computer science" a science? Does it follow the scientific method? I suppose P=NP counts as a potentially falsifiable hypothesis.
(Score: 5, Informative) by Thexalon on Wednesday January 10 2018, @09:46PM
Computer science is, strictly speaking, a branch of applied mathematics, and uses the techniques and standards of mathematics. That said, computer science also can be tested out via experiment. This leads to Donald Knuth's classic line: "Beware of bugs in the above code; I have only proved it correct, not tried it."
Computer programming is to computer science as construction is to the study of engineering.
The only thing that stops a bad guy with a compiler is a good guy with a compiler.
(Score: 1, Informative) by Anonymous Coward on Wednesday January 10 2018, @09:52PM
Computer Science is a science.
Programming (which is often confused for CS) not so much.
(Score: 2) by DannyB on Wednesday January 10 2018, @09:53PM (6 children)
You should also mention software developers who use the term "Engineers".
First, Engineers get certified in their skill.
Second, the piles of crap that most developers write is not worthy of the term.
To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
(Score: 1) by Crash on Wednesday January 10 2018, @09:58PM (3 children)
Sounds like the typical Slashdot mantra that disparages all web-developers.
Color me surprised when I visited Hacker News to see there were actual professionals that could discuss the web on a professional level.
(Score: 2) by Wootery on Thursday January 11 2018, @01:25PM (1 child)
No, DannyB was quite clear: the piles of crap that most developers write is not worthy of the term. Quite right too.
(Score: 2) by DannyB on Thursday January 11 2018, @08:16PM
That sentence also included but was not limited to web developers.
To transfer files: right-click on file, pick Copy. Unplug mouse, plug mouse into other computer. Right-click, paste.
(Score: 2) by tangomargarine on Thursday January 11 2018, @04:04PM
Parent never said anything about webdevs. Is somebody a bit insecure in their profession?
Not all web developers, just the ones who design shit interfaces. And bloat stuff up. But obviously that applies to desktop things like Microsoft Office as well.
"Is that really true?" "I just spent the last hour telling you to think for yourself! Didn't you hear anything I said?"
(Score: 2, Touché) by Anonymous Coward on Wednesday January 10 2018, @10:00PM
Some "engineers" need a dictionary, not certification!
(Score: 0) by Anonymous Coward on Thursday January 11 2018, @04:10AM
Does driving a train really take that much skill? Isn't driving a car more difficult? I guess if you still had to watch pressure valves and keep the fires fed properly, but are such old trains still used?
There are tons of software certifications, but I agree with your dung heaps.
(Score: 4, Interesting) by TheRaven on Thursday January 11 2018, @09:27AM
In systems research, at least, it tries hard to. You observe a problem (network has low throughput, distributed system fails due to this cause, whatever) and hypothesise the root cause. Then you construct an experiment that addresses what you hypothesise the root cause to be and measure whether that affects the issue.
The big problem is not that we don't follow the scientific method, it's that a lot of people conducting this kind of research lack even a basic understanding of statistics. You can win the best paper award at CGO, for example, with no error bars on your graphs. The better papers have error bars but use a completely inappropriate method to calculate them (e.g. standard deviation without looking at distribution at all, or Student's T-Test when they know that it's not a normal distribution).
Even when they get the statistics right, they don't look at other sources of error. For example, you can have a widely cited paper describing a 5% speedup from the compiler, except the variation from random changes to linking are around ±20%, so your entire measurement is in the noise and you've presented no evidence that your change does anything other than perturb code layout. This is starting to change, but slowly.
sudo mod me up
(Score: 3, Informative) by Wootery on Thursday January 11 2018, @01:23PM
Kinda. It's a famously bad choice of term. At best it's as bad as saying 'telescope science' to mean astronomy.
Some of what a computer science undergrad learns, really does count as science. Much of it is arguable more engineering, though. Networking technologies and databases, for instance.