We were required to take a breadth of courses first year that helped create a well rounded foundation to my studies in software which I value greatly.
I can tell many people in the field have never looked past the technicals to think about how computer science connects to the world at large and it's a shame because there is a lot to learn and much wisdom to be gained by taking a holistic view.
Some of my favorite courses were sociology, anthropology, chemistry, physics, biology (I did switch majors) not to mention classics and astronomy.. They gave me a very rich insight into the philosophy of thought outside of software and I've always applied my learnings to corporacy and professionalism.
Not all universities are like this and graduates while technically proficient graduate wholly unprepared for the realities of social programming because let's face it software is a social medium in the truest sense of the word and university work with its emphasis on solo work i.e. individual performance and occasional groups (which are invariably one person pulling all the others' weight or someone bossing everyone until they give in) as well as emphasizing marks as the primary metric serves very little utility in preparing people for the real world and even co-op programs serve only to reinforce the stereotypes rather than disrupt them.