Why are schools offering software development degrees as opposed to computer science? Are computer science degrees not as good for software development jobs as the software development degrees? I see companies advertise jobs that say they want a computer science degree or related. Also, some companies won't accept any less than a computer science or computer engineering degree. I've never seen one company say that they want to hire someone with a software development degree. I know that "software development" is related, but what I think these companies mean by "or related" is math, physics, engineering, etc...
My favorite description of computer science comes from Hal Abelson:
"[Computer science] is not really about computers -- and it's not about computers in the same sense that physics is not really about particle accelerators, and biology is not about microscopes and Petri dishes...and geometry isn't really about using surveying instruments. Now the reason that we think computer science is about computers is pretty much the same reason that the Egyptians thought geometry was about surveying instruments: when some field is just getting started and you don't really understand it very well, it's very easy to confuse the essence of what you're doing with the tools that you use."
In other words, computer science is about computation, procedural knowledge about how we can methodically calculate and operate on information.
Software development is the application of computer science concepts and resultant technologies to build software systems.
Another analogy that I like is this:
Chemistry => computer science
Chemical engineering => software development
There is widespread confusion and lack of clarity in education when it comes to "computer science".
Formally, computer science is the rigourous study of information theory and other abstract notions; it would be better called "computing science". You're not likely to do any computer science in a real job unless you're doing computing research, though an understanding of some of the fundamentals is useful: in particular, some of the less rigourous parts of computer science may be seen to include algorithms and data structures, an understanding of which is almost always a job requirement.
However, the "computer science" course offered in many universities is often in fact a software development/engineering/programming course, with very little theory and instead a focus on actually creating computer software. I posit that these courses are misnamed but it's so widespread as to be unavoidable.
In a University that offers both Computer Science and Software Engineering courses, I recommend taking the latter if you want to become a professional software developer. That being said, it's impossible to predict what some arbitrary company is really asking for on their job description. You'd really have to ask them, or just wing it.
In a University that offers only a Computer Science course, read its syllabus as you will probably find that it's really a Software Engineering course anyway, or is a mix of both disciplines and will still be useful to you in all likelihood.
Some universities offer courses for software development as a specialization to computer science, while others offer it as a separate degree. There is not really much of a difference concerning the final result. Even when it is a separate degree, it would certainly count as "computer science or related", and most probably even as "not (...) any less than computer science or computer engineering" - after all, that is what it is, just with a different name. Even when a job ad says they only want computer science graduates, that doesn't mean people whose major was called cybernetics, games engineering, information technologies, or any of the other imaginative names universities introduce for one reason or another are excluded.
Coming back to whether software development is a specialization of the main CS degree or a separate degree, the main differences are:
- from the university's point of view: Specializations are often more modular in that students may choose only a subset of the classes in the specialization offered, and also take classes from other specializations. Professors from the respective topics might feel certain specializations deserve some more focused attention, in the form of a compulsory set of classes for anyone who chooses that specialization, or also by requiring specialized projects that couldn't be embedded into the normal CS major, and thus make it a separate degree.
- from the students' point of view: While studying, chances are classes for a separate degree concerning a subtopic like software development are more efficiently connected to each other, as prerequisites can be expected more reliably. A single CS degree with specialization classes, on the other hand, gives students more flexibility to mix topics. After studying, a dedicated major for a specific subtopic might sound a bit more convincing when conveying in an interview that the student is knowledgeable about the subtopic than just saying "I was in a generic CS major and also attended some classes on subtopic X".
There is no right or wrong answer in a way if you are asking with concerns about financial viability.
Software development and computer science are extremely broad subjects.
Try to upscale the resolution of what you intend to do. Do you want to develop videogames?
Do you want to work on AI or research into new ways of machine learning?
Do you want to develop video-editing software?
I could go on.
However I think it will be useful if you base the decision you want to make off of what you actually want to do first, and once you know the answer to that, you can research both fields, talk to people who study it, or professionals in the field, and from a well-rounded and properly informed position make your choice.