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: 3, Interesting) by TheRaven on Thursday January 11 2018, @11:01AM (2 children)
I hear that a lot, but you can substitute pretty much anything that isn't trivially automated for programming in the sentence, so I'm not sure that the observation is particularly valuable.
The big difference between computer science and physics is that no one actually expects to learn (or teach) all of physics in a single undergraduate degree. Everyone knows that physics is a huge subject and students are encouraged to specialise fairly early. The course aims to give you an overview of the whole field and then drill down a lot. Computer science courses, generally, still try to teach you all of computer science, but end up giving more detail than you need for an overview and less than you need to be an expert. There are enough things that people say 'you can't be a computer scientist if you don't properly understand X' that we leave specialisation too late.
There's a related problem that most of the world sees computer science as a degree that's closely tied to a particular career path. You don't do a physics degree expecting to be ready to work in a nuclear power plant or designing car engines without any further training, yet people expect to hire fresh computer science graduates that have detailed knowledge of things that have little relevance to an academic subject.
sudo mod me up
(Score: 2) by Wootery on Thursday January 11 2018, @03:41PM (1 child)
Disagree. I had to choose my optional modules. I chose some topics, and necessarily didn't study the others. I have a passable grasp of computer architecture and compilers, but know little about, say, real-time systems, or video processing. I don't how it could be otherwise. CS isn't a small field of study.
There is in practice relatively little difference between a computer science degree and a software engineering degree, sure.
(Score: 2) by TheRaven on Thursday January 11 2018, @05:05PM
When did you have to choose? In the UK, most computer science degrees only have optional components in the final year. In contrast, most places don't offer general engineering degrees, they offer electrical engineering, civil engineering, and so on. Physics and mathematics are often offered as a single degree course, but you have optional components from the first year and by the second you may be doing a completely disjoint set of courses to other people taking nominally the same degree. Two people with mathematics degrees will both know algebra, but beyond that they may have taken completely different paths. Two people with computer science degrees will almost certainly have done courses in databases, object-oriented programming, functional programming, graphics, sorting and searching algorithms, and various bits of discrete maths.
There's a lot more material that is taught to every computer science student than pretty much any other STEM subject that isn't a narrow specialism.
sudo mod me up