The Waterloo CS co-op program got me down to the Valley in 1998. I wound up dropping out in 2000 to move to New York (I don't recommend this lightly, but it didn't harm my career and likely helped it due to timing).
It was a great program in that it actually tried to teach programming alongside classic CS (this was before the SoftEng degree), and forced you to get out in the real world as soon as possible. The biggest problem was that (due to the grind in years 3 and 4) most of my peers who graduated CS wound up hating computers and couldn't wait to get into management. Also, graduating tends to take 5-6 years due to the work terms. I left in 3B so didn't quite have those scars.
It was a great program in that it actually tried to teach programming alongside classic CS (this was before the SoftEng degree), and forced you to get out in the real world as soon as possible. The biggest problem was that (due to the grind in years 3 and 4) most of my peers who graduated CS wound up hating computers and couldn't wait to get into management. Also, graduating tends to take 5-6 years due to the work terms. I left in 3B so didn't quite have those scars.