Do you think it is a good idea to create separate degree programs for teaching the "craft" of software engineering with a reduced dose of academia?
You don't need any degree to work as a software engineer.
Also, there is a lot of software engineering degrees that are much more focused on the "engineering" part.
Engineering is more about making things work and when what you're trying to make work MUST WORK (like an airplane) then there need to be some explicit certifications and training to ensure you actually know how to make the software act safely and sanely. Other engineering applications of computers are more experimental (like devising new ways of jamming radar signals) and while they still can be life-critical (for the jet fighter pilot) they will also sometimes tolerate less formal standards as long as the application works. Other types of engineering are even less safety/life critical. So I'd divide computer engineering into degrees of criticalness which determines the level of training involved and necessary.
I have often made the comparison that Computer Science and Software Engineering have a similar relationship to Physics and Electrical Engineering. When I was studying EE, I remember that we had a course for Electrodynamics that was offered by the EE department, but the Physics department had their own version of the same topic. Engineering courses are usually more oriented towards tools and applications, and less theory.
I can totally see a Software Engineering degree (or dept) that might have courses with the same titles as those under CS but with a similar shift away from theory. For example, I would imagine a CS Algorithms course using the CLRS book while the SWE version might use something like the Algorithm Design Manual for a textbook instead.
I would see the SWE degree having CS electives and vice versa, but I would still imagine different required core courses. A CS degree might need more math pre-reqs, but I don't think SWE needs as much. I think SWE needs to cover more topics like software testing (I feel like that's almost non-existent in schools), and process management (scrum, kanban, story estimation, CI/CD), technical design and documentation, and more applied practice.
And I don't believe bootcamps are the answer here. Maybe if they were longer, but I wouldn't call them bootcamps at that point, just a trade school.
> Do you think it is a good idea to create separate degree programs for teaching the "craft" of software engineering with a reduced dose of academia?
Sometimes it's a good idea but that usually has bad outcomes in the quality of education
Instead my program favored some management and organizational stuff. I chose SE because all the courses I needed were available online and I could continue to work full time without needing to go out to a classroom 3-5 times a week.
University studies have had a weird century or so, and have become substantially about signaling. I remember over-hearing a conversation from peers about why Software Engineering as a degree doesn’t make sense, because it’s not a study-able topic, while computer science was the true path. I suspect it had more to do with gatekeeping the signal than what qualifies as a valid course of study.
i think that one of the main issues we have today is that all of the above is treated the same, and the main focus is on hiring people to write code (i.e. brick laying), and the this is done by first putting them through irrelevant coding interviews to make sure they can write code (something that a good academic education / degree will require you to do anyway, if you want to graduate). the interviews optimize for memorizing optimal solutions to problems you are unlikely to encounter in practice and which you can find in a book if you need them.
computer science / software engineering is still a young field, so there are no trade organisations yet. given the situation it is unavoidable that they will be created sooner or later.
* Edit: Not sure why this was down voted. Software development is one skill of many in software engineering. Software engineering should be an academic degree IMO
There are also IT degrees.