To 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.
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.