I live in Québec and I don't think our local college equivalents have the same targets American colleges have. Once you get out of CÉGEP (that's how we call them here), you should be ready to face the brave new world of finding a job. (Which, apparently, is not what most computer science students do. In my prom, there's only one person who did not continue to university.)
Still, knowing this, CÉGEP teachers tend to teach modern and immediately usable technologies, with a much smaller background on data structures and real computer science.
I'm not sure yet if this is good or not. However, our motivation for school projects all got us much, much farther than the curriculum alone would have. I'd say that the best things we had were teachers with a vision of their topic.
It's easy to vomit theory on your students and expect them to learn and remember it. My feeling however is that the classes where this was the case were the least productive ones (though maybe that's because I nearly never attended them). However, when there was a philosophy behind the class, and we were taught things because the teacher felt they were important (versus being taught X because the curriculum says we'll learn X), that was a whole new world of interesting things.
Therefore, I believe having good teachers is more important than anything else. If they didn't teach you about something, they'll probably have transferred you the reasons to teach it to yourself. That's what happened to source control, design patterns, and the .net framework: the program didn't cover any of these, but we used them all.