To add to this, Canadian Universities also have co-op programs.
You don't have to have an engineering degree to get a co-op job. The student gets paid well over minimum wage (and learns on the job) and the employers get financial incentives from the gov't to hire students. Its win-win for both the student and the employer.
Software Engineering at Canadian universities does not contain a dramatically different level of vocational training (with the exception of Waterloo).
Co-op programs are optional, and take place in the summer or in a gap year. The affiliation of companies hosting co-ops is loose, and the schools charge large fees for participating in these programs (with the exception of Waterloo).
Speaking from personal experience, results may vary.
You don't have to have an engineering degree to get a co-op job. The student gets paid well over minimum wage (and learns on the job) and the employers get financial incentives from the gov't to hire students. Its win-win for both the student and the employer.