2 ms·
Right so there's currently a mismatch between higher education and industry. Ideally Computer Science is a branch of Applied Mathematics primarily concerned wit
by nradov 1y ago
Right so there's currently a mismatch between higher education and industry. Ideally Computer Science is a branch of Applied Mathematics primarily concerned with the theory of computation. But due to demand from students who want to get industry jobs instead of doing research, many schools have "polluted" their CS majors with more practical programming courses. This confuses the issue and doesn't do anyone any good.
A better approach would be to have separate majors targeted towards students who want industry careers. I would suggest two separate tracks: Software Engineering which would take a disciplined, analytical approach and Software Development which would treat software construction for like a fine art, akin to sculpture or music performance.
- AnimalMuppet 1y agoTo me, Computer Science is about the theory of computation, and the analysis of algorithms, and to some degree about the design of computer programming languages. Software Engineering is about the efficient[1] production[2] of larger-scale programs that adequately meet the need[3]. Software Development as a separate topic... maybe, for some things like games and UI. I don't really see it as a separate field, though. [1] "Efficient" is actually a lie, but the sentence was already long enough as it is. I really should have said "somewhat less inefficient". You can never make it efficient. (The fundamental problem is that brain-to-brain transfer of technical information is slow, inefficient, and lossy.) But if you don't control the inefficiency, it's going to destroy your project. [2] Production and maintenance. Larger-scale software also tends to be longer lasting; if you don't build something maintainable, you fail. [3] This does not mean bug-free! But it means that the amount and severity of the bugs do not destroy the usefulness of the software.