3 ms·
Please show me this mythical world where there is no confusion and no huge overlap between computer science and software engineering, a magical place where you
by fao_ 9y ago
Please show me this mythical world where there is no confusion and no huge overlap between computer science and software engineering, a magical place where you can have one without the other, and where they have no bearing on each other.
The two are as intertwined as they can be, you cannot perform software engineering without practicing some part of computer science, and you cannot perform computer science in truth, without practicing some part of software engineering.
Anyway, in the case of Therac-25 it was a concurrency error, so in other words, both a CS mistake, and a programming mistake.
- Alex3917 9y agoWhile it may not be possible to have programming without CS, it's certainly possible to have CS without programming. And if you're going to school for CS, you're there to learn math, not software engineering. Many (most?) people who study CS have no intention of writing software or becoming developers.
- arbie 9y ago> Many (most?) people who study CS have no intention of writing software or becoming developers. Quite the opposite, since most schools offer CS degrees but not Software Engineering degrees. Most students in CS are there to learn to become software developers, not to learn theoretical (i e., computational) science.
- alphaalpha101 9y agoThey're called CS programmes, but they're definitely seng programmes in reality.
- fao_ 9y ago> it's certainly possible to have CS without programming. You realise that the many disciplines of CS would not exist without the real life requirements of actual computers? Indeed, Knuth has written on a tangential topic to this: http://www.paulgraham.com/knuth.html http://www.paulgraham.com/knuth.html Yes, CS builds upon some areas of Mathematics, such as Mathematical Logic, but you must remember that CS was born out of the wish to develop new algorithms for certain tasks, and to develop frameworks for expressing and formalizing properties of existing software algorithms. Computer Science may not be practiced very heavily in the field, but many of the results in CS come directly from needs of the engineering field, and vice versa. Think Big O Notation, which attempts to find a theoretical solution to the practical problem of "Which of these two approaches is faster". Or bounds checking algorithms / Hindley-Milner type systems (e.g. Algorithm W, etc.), which are practical implementations of theoretical work, both of which were answers to the question "How can I find specific errors in this program code before they occur at runtime".