CE major at UIUC here. I'm officially EE at the moment, but I will be graduating as a CE in December.
some universities have CS in their engineering college in addition to the liberal arts college, so make sure to check the differences in those programs.
CompE = CS + EE hybrid. A lot more understanding of the hardware than CS, but more coding than EE. This sets you up well to do stuff like kernel code and firmware especially well compared to CS or EE guys, but as a CompE major you can apply for the same jobs as CS or EE guys depending on which classes you take in addition to whatever niche you might fall under.
Not sure I agree with Vionce's logic. If you're not too interested in hardware/low-level programming, there's no reason to do CE over CS. There's a much higher likelihood that in CE you will take a class that you have absolutely no interest in. (IE: taking a fields and waves class or a signal processing class when you just want to focus on software.)
Jobwise, if 2 ppl are theoretically equally talented and work just as hard and happen to be just as lucky, I think the difference in CE and CS majors' compensation and job stability is very negligible, especially if you consider that CEs can get almost any job CS majors can get. CE has a higher average starting salary than CS, but not by a whole lot, and i think CS majors are a little happier on average so it balances out approximately. Overall, don't use this paragraph's information to make your decision on what you're studying.
Figure out if you're interested in low level software (OSs, drivers, firmware) and/or hardware. If so, do CE. If not, do CS. Worst comes to worst, you switch majors. If you switch from CS to CE or vice versa before 2nd semester sophomore year at my school I'm pretty sure you suffer basically no penalty in terms of being behind on curricula or having taken classes you didn't need.