Tl;dr it doesn't really matter unless you want to do FPGA development/chip design or math heavy CS work (graphics, algorithm development, etc.)
At the time of writing I’m a 2B UW student and my areas of interest are IoT, computer networking, and FPGAs.
I was not sure whether I should stay in ECE or go to CS DHW. I wanted to get the best of both worlds (CS education from CS and ECE education from ECE).
I was advised it’s almost impossible to get into CS courses from engineering (especially the popular ones), but CS DHW allows me to take digital hardware courses from ECE, so I decided to try it out.
I transferred between my 2A and 2B term on the condition I could come back to ECE within the add/drop period (thank you Doug Harder).
I switched from Computer Engineering to CS at end of 2A. The calculus courses (MATH 117/119) and ECE 150/250 matched up with CS requirements. Courses like ECE 108, 204, 205 were taken as math electives. Other courses (ECE 105, 106, 109) were taken as non-math electives.
Graduation is not delayed if you take a slightly heavier course load than typical CS.
|CS||Digital Hardware Option|
|The Big Three: CS 444 (Compilers),
CS 488 (Graphics), CS 452 (Trains)
|Embedded Systems: ECE 224, ECE 423|
|Object Oriented Software Development:
|FPGAs: ECE 124, ECE 327|
|Algorithms: CS 341||Computer Architecture: ECE 222, ECE 429|
CS has more emphasis on "pure" math (MATH 135, STAT 230, even CS 245).
Engineering teaches physics and circuits. Math is more “applied” (ECE 204, 205, 207).
From conversations with CS friends and half a week of actually taking CS courses, there’s more emphasis on assignments/projects than in engineering. Assignments are long. You have to be careful with self-regulating in CS. CS courses for “CS” topics go further in depth than their ECE counterparts.
Engineering classes have lab components, CS/math courses usually don’t. Engineering has more class hours but lighter assignments. Engineering courses for "Engineering" topics go further in depth than their CS counterparts.
I have an academic interest in learning in advanced CS topics, but I don’t think I’m going in those fields (graphics, compiler development, algorithmic trading, etc.)
Maybe it’s because I’ve been “institutionalized” as an engineering student, but I prefer more class time and less time spent on huge assignments.
The reason a lot of SEs transfer to CS is because they graduate on time with a reduced course load. If you transfer from ECE (especially if you want to take an option like DHW), course load doesn't reduce that much if you want to graduate on time.
From talking with collegues during my work terms, CS grads working on FPGAs or chip design are a rarity. They’ve also commented that at traditional hardware companies (Apple, AMD, Intel, etc.), an engineering degree does have a bit of an edge in the hiring pipeline.
There’s a of CS grads however working on embedded and IoT.