100% of 1 Students
There is a distinction between software engineering and computer science. There is a significant overlap in concepts and both also do involve computer programming. But most computer science programs are designed to teach students to think about computational problems and how to solve them. The solutions involve understanding algorithms, developing mathematical proofs to show why a given algorithmic solution is optimal, and thinking about how to solve computational problems at different scales. A fundamental part of computer science is understanding classes of problems, that is problems that can grouped together based on common features and solutions, trying to derive more efficient solutions, which in the real world can save computational resources, memory limitations, and money.
On the flip side, software engineering is actually writing code as an implementation of solution. Say you want to make a mobile app that is say the next Uber. As a software engineer you want to use existing software tools and libraries to build the application. Software engineers can conceptualize what the application design and work with other engineers to build it out. Depending on what the application is they are building, they'll often implement solutions from computer science to solve real world problems. In the Uber example, a software engineer may implement the latest matching algorithm that can match drivers to riders more efficiently.
Computer science graduates will often become software engineers and developers. The ones that have strong algorithm and data structures backgrounds are often sought by Google, Amazon, and other tech companies because they have experience solving hard computational problems.
Finally, the reason the other reason why CS programs don't often focus on teaching students full stack languages is that computer languages and tools change radically. 10 years ago the most popular language in programming was Java. Today its Python and Ruby. 10 years ago a LAMP (Linux, Apache, MySQL, and PHP) was considered full stack and today its (Node.js, JQuery, python, cloud [AWS, Heroku, etc], CSS ...etc). The point is that languages and tools evolve over time, however computational science approaches tend to stable and more universal. A solid computer scientist can pick up new languages and tools to solve problems but can rely on their fundamental computer science knowledge .
100% of 1 Students