<p>Just because you major in CS it doesn’t mean you have to be a software engineer. You can delve into the theory, or do a bit of both, whatever. </p>
<p>Trust me, when it gets to the higher-level software engineering courses, building things becomes much more fun. The programming you do in intro (especially the ‘data structures’ class where you play around with things like trees, arrays, queues) is, admittedly, quite tedious. But it does get more interesting. </p>
<p>1) First off, both ECE and CS are “abstract thought and clever problem solving” in the sense that you are given a problem and you must apply the theory in order to implement a solution. That being said, I’d imagine ECE is more applied, given that it is focused on engineering. As always, you will end up taking both theory and applied—signal processing, as opposed to CPU design, for example. But, expect to see more applied/practical courses in ECE VS more theoretical courses in CS. </p>
<p>By definition engineers are problem-solvers, and the same is true for computer scientists and software engineers (notice the word ‘engineers’ in software engineers). In my CS program, “implementing an already solved problem” is never the case. We always have new problems which need to be abstracted, thought through, and implemented using theory. So, after my long paragraph, I would say that ECE is indeed a lot of problem solving, but CS is no different in that respect. Ultimately it comes down to hardware vs software.</p>
<p>2) I’m not an ECE, but I am inclined to believe that ECE probably has the most rigorous physics requirements within all engineering disciplines. Not too sure about the math, but I do believe most ECE programs require you to take single-variable and multivariable calc, followed by introductory differential equations.</p>