It seems really difficult to offer a compelling software engineering program. Computer Science has a lot of history and theory that is well suited to classrooms and professors. A software engineering program would have to be constantly (at least each semester) evolving to explore all paths for designing good software. In fact, we offer a Software Engineering degree at San Jose State University, in Silicon Valley, we should have an unfair advantage in that field. As a CS/Math major I am required to take a few SE courses. All of them have been 10-15 years dated in both execution and their definition of good software and what constitutes solid design. I'm so sick of these SE classes that I'm tempted to drop out or transfer. Engineering (not just software) is mastery of a craft, it isn't something you can learn by passing classes and getting a degree. You need to get your hands dirty, something other engineering disciplines focus on highly. For an SE program to be effective there should be one class: Software Engineering 1, the curriculum should consist of working with your peers to build awesome software. You should have to take it at least six times. The instructor can mentor the veterans and the veterans can mentor the freshmen The masterclass is to start a project that you spin up into a publicly available piece of software, then watch how you're design scales and what needs to change. Anything else is history and lies.