Just to add what Peter said.
Yes, any decent Electrical Engineering department will force you to learn a lot mathes. By the time you’re at your junior year of EE program, you are just a few courses away towards a mathematics degree. EE are so broad, they have different focus, i.e. analog, digital, RF, antenna, electric power, control systems, signal processing etc. I was a RF/analog EE. I try to summarize the basics that ALL ee will need.
CE is diverged from EE. They would take 2 of the three fundamental EE courses (as mentioned below) generally can get away from the electromagnetics. They are more on digital logic design, state machines. They are capable of building large scale digital circuits from DMA engine to a CPU using Verilog or VHDL. In general, they are not required to get into the details of charge, current, signal. They don’t have to know analog. It requires relative less math than a EE does.
I don’t know much about CS. I guess it would be data structures, algorithms, languages, compilers, Java, .net etc.
If you like low level programming, I would suggest going for a CS with some CE electives. If you are math and physics inclined, go for a EE. All of them will learn programming even for a EE. I.e. they would need to program the DSP to process the discretized analog signals. But don’t expect the programming skills and CS foundations are as good as a typical CS grad. Some said that the worst program you can see is from a EE typing code in one hand and with a soldering iron on the other. I agree with it to some extend.
When I was interviewed for my first programming job, I was asked to write a program to add and remove entries to and from a doubly linked list, and a program to print a literal string reversely, i.e. “Hello world” to “dlrow olleH”. I barely did the first one and the second got me. After that, I just learned that these are very basic problem for a CS. Of course I was not hired.
It’s not to say that EE is useless. The rigorous quantitative study, mathematical reasoning, modeling and formulations skills are good for doing anything serious.
If you can’t decide which one to go for, I would suggest to do EE first. you can switch to other if things don’t work out. EE >CE>CS is much easier than the other way.
Summary of EE basics:
At undergrad level, the fundamental (extremely important) courses for a EE are:

Linear circuits analysis (or network theory).
It uses ordinary differential equations and elementary integral transformations to study the static (DC), dynamic (AC) and transient and steady behaviors of circuits/networks consist of resistors, capacitors, inductors, transformers, transistors, Operational Amplifiers etc.

Signals and Systems.
Study both continuous and discrete time LTI (Linear Time Invariant) systems in both time and frequency domains. Typical LTI system examples are linear feedback amplifiers, electronics filter, PID (ProportionalIntegralDifferential) controller. It uses Fourier Transforms (both continuous and discrete time), Laplace transforms, ztransforms, conformal mapping, complex analysis(calculus of complex valued functions), Cauchy Residue theorem, difference equations for discretetime systems (counterpart of differential equations in continuoustime systems). Hilbert transform is helpful to understand de/modulation part.

Elementary Engineering Electromagnetics
It’s steps further from the electrodynamic part of the calculus based physics you have already taken in your sophomore year. You use vector calculus and partial differential equations to study the electromagnetic fields and waves and the Maxwell’s Equations. Don’t forget the knowledge you’ve learned in your calculus III or you will be very miserable and easily get lost. Take a course on Partial Differential Equations for engineers and scientists prior to this class if possible. Make sure it covers boundary value problems and Fourier Analysis in detai.
Without solid understanding of these three, you can’t go deeper in more advanced topics such as Feedback Control Systems, Communication systems, Signal Processing, Antenna, Guided Wave, Computational Electromagnetics, EM simulations etc. You need all these to compute the radar crosssection of a fighter jet:) They make you a real good EE.
Good luck!
Calvin Guan
Broadcom Corp.
Connecting Everything(r)
— On Sun, 6/21/09, xxxxx@osr.com wrote:
> From: xxxxx@osr.com
> Subject: RE:[ntdev] Device driver  CS, CE or EE degree
> To: “Windows System Software Devs Interest List”
> Date: Sunday, June 21, 2009, 8:52 AM
> What what everyone says above is
> true, the chance to actually DO a lot of
> programming/engineering in school will be enhanced if that’s
> what you major in.? Also, it’ll probably be easier to
> convince a future employer that you’re a qualified software
> developer if you have a CS/CE/EE degree and you can talk
> about the project you did towards that degree.
>
> The differences in the degrees varies at lot depending on
> where you study.
>
> EE is more focus on building devices: Circuit theory
> (analog and digital), for example.? There also tends to
> be (in my experience) A LOT more math in the EE
> curriculum.? We’re talking differential equations, for
> example.? By the way, don’t let anybody tell you that
> knowing math, specifically, is important for computer
> science.? It’s not.? Having said that, the logical
> thinking involved in math is certainly good training for
> software development.? But so is anything with lots of
> deductive reasoning: Philosophy (no kidding), law, etc.
>
> The CS curriculum depends A LOT on where you study.?
> Your primary courses in this major will be various
> programming languages, data structures, etc.?
>
> If you think you might be interested in Operating Systems,
> device drivers, and/or systems internals, you should know
> that MOST universities don’t teach much of this any
> more.? Rather, the “hot topics” these days tend to be
> things like web programming, Java and SQL.? So, look
> specifically for a college with something more than one or
> two operating systems courses available to undergrads.
>
> CE?? I have no idea what they teach in this
> discipline.? Sorry, it’s been “a while” (cough cough
> mumble) since I’ve been out of school.
>
> At least as important as what and where you study will be
> you’re work experience.? Summer jobs writing code as an
> intern, workstudy or coop work is HIGHLY valued in the
> industry.? If you know what you’re doing, and the
> economy doesn’t completely suck, you can almost be
> guaranteed a job when you finish school if you intern
> someplace decent and in an area that interests you.?
> For example, Microsoft hires a bunch of summer interns, and
> kids going into their junior and senior years that are
> studying OS development can find themselves working over the
> summer on the Windows kernel team.? You should also
> know that the last person we hired at OSR started here as an
> intern (and is now a Consulting Associate).
>
> Hope some of the above helps.? Feel free to contact me
> offlist if you need any additional guidance, now or in the
> future.
>
> Peter
> OSR
>
>
> —
> NTDEV is sponsored by OSR
>
> For our schedule of WDF, WDM, debugging and other seminars
> visit:
> http://www.osr.com/seminars
>
> To unsubscribe, visit the List Server section of OSR Online
> at http://www.osronline.com/page.cfm?name=ListServer
>