I kept telling myself though, that upper year would be more programming/cs and less math. Boy, was I wrong. Upper year "computer" science is as far from computers and academically possible. Before dropping out I was able to claim that in my previous 5 "CS" courses only 1 had anything to do with programming.
The professors loved their theory and academia, and while all well and good, I wanted something more applied, or real, to relate to the real world. No professor ever tried to relate some combinatorial concept to anything happening in the real world today, which made me a very depressed student.
I finally decided (after sleeping on the decision for almost a year) to drop out and pursue a "Computer Programming" course at a Canadian college. I'm currently doing some pretty rewarding (both financially and experientially) contract development work for a local company while I wait for the College classes to start in the Fall.
Dropping out may not be for everyone, but if you realize that what you're studying isn't what you want to do, it might be time to shake things up.