It isn't so bad. I am a CECS (comp eng/comp sci) major. Sure, there are long nights/days/weeks, but it is all worth it. You get a huge feeling of satisfaction when you complete your project. You just need to stay focused, study, and actually do some homework. I am actually going for my masters in EE after I get my BS this semester. CECS is getting boring. EE guys do all the fun stuff. 🙂
<RANT>People generally whine about the math and say it is hard - don't listen to them. They are just lazy whiners who don't want to learn. All the CECS dropouts at my school complain about calc 1/2/3/DE and go to CIS and become microserfs. A friend of mine dropped out, and he does squat in his 300-400 level classes. That is unless you call learning microsoft exchange difficult. He does 0 homework compared to me and my eng. school friends (EE's, ME's, and ChE's). He knows nothing about computers, and only knows about Windows.</RANT>
EDIT:
At my school, you don't learn much programming in class. Once you get past C and OO design, the profs expect you to be able to learn languages on your own. It is pretty easy to pick up a new language once you have coded for a while. It becomes second nature.