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: 4, Interesting) by Entropy on Wednesday January 10 2018, @10:48PM (3 children)
Most disciplines are a mix of art, and science. We call it Computer Science, and of course there is a large science component but there is also in my opinion a larger art component than most science disciplines. This is why we teach it differently, and why we need to teach it differently. This isn't algebra where there is one correct answer, this is an art where they are tons and tons of correct answers each with their own drawback and weakness.
(Score: 2) by c0lo on Wednesday January 10 2018, @11:51PM (1 child)
Sorta like any engineering solutions?
https://www.youtube.com/watch?v=aoFiw2jMy-0 https://soylentnews.org/~MichaelDavidCrawford
(Score: 1, Interesting) by Anonymous Coward on Thursday January 11 2018, @01:36AM
This is a tangent of computer programming and engineering ("I want to make a program where you can click a button and an image of a smiling cat appears") rather than computer science ("is P = NP?" and "Is there any way to sort a list of N objects in faster than N(log N) time?").
However, taking the bait...
Compare...
Civil Engineer: "If this bridge cannot carry 20 tons of weight, then it will potentially break when if 5 trucks cross over it."
Software Engineering: "If the homepage of Google loads 0.1 second slower, then... uhh... what?"
Agreed that all engineering has trade spaces. I'd suggest that Computer Programming has fewer hard requirements and thus a much more sophisticated and harder trade-off discussions than most fields of Engineering.
It also hurts that software is so much more abstract, so harder to relate to for untrained people. Everybody can relate to "put fire onto chemical and it blows up." They'll get details wrong, but they intuitively grasp it, the advantages and risks of this effect. Few people without special training can think of "this abstract mathematical construct causes this other abstract mathematical construct to transform, which causes this secondary effect and this tertiary effect." It's part of why mandatory XKCD [xkcd.com].
(Score: 2) by fyngyrz on Thursday January 11 2018, @01:23AM
It's also an art where no tint of science need pollute the fingers flailing at the keyboard, or the corporate bottom line. As an art, I would liken many (perhaps most) of its practitioners as flingers of finger-paints at the wall.
All too often the case.