And what types of courses or lessons would you introduce to help better prepare students for developing on teams within a more professional or collaborative environment?
I think the #1 thing would be to create software engineering departments. There is a lot of pressure on CS departments to focus on software engineering, when that is not the intent, desire or area of interest of many CS professors.