Anybody??
a bit of a digression, but something you ought to know…
hardware is kinda a dead end these days, certainly as compared to the opportunities in software. A degree in Computer Engineering is heavily focused on hardware and often involves taking many math and electrical engineering classes required for ABET acreditation. The software component has to fit into what is left over. You will not be qualified for many programming jobs.
Take a look at the math and EE classes you take at Purdue (to pick an examplar school) for CompEng at https://engineering.purdue.edu/ECE/Academics/Undergraduates/UGO/Curriculum_Resources/BSCmpE-Fall_2013/CmpE_Degree_Map.pdf then compare it to the CS curriculum at https://www.cs.purdue.edu/undergraduate/curriculum/bachelor.html and you’ll see what I mean. Your competition for programming jobs are replacing your math and EE classes with ones that get them good CS internships and teach them what they need to know to work in the field.
Even if you have a strong interest in lower level programming (compilers, firmware, embedded systems) you’d probably have better job prospects by studing Computer Science at a school that allows you to take a few digital electronic electives. It is unlikely you’ll ever use those circuits or Signals&Systems courses. Of course if its really hardware design that you want, all I can do is wish you the best of luck.
Let me make a few comments on the remarks above.
I wouldn’t say hardware is dead, but it is being done by relatively few vendors, so it does limit your job options. However, a computer engineering degree is valuable in other ways. The first is programming at the hardware and software interface, mostly in the embedded systems space. This is an area most computer science graduates are not going to be comfortable and this is a sizeable market. Another is just getting into software, but having an advantage dealing with anything that is close to the hardware, so networking and system software. A good fraction of computer science graduates have little preparation for this.
Finally, it is relatively easy to transition to higher level languages and software with the background at the lower level. In that sense, a computer engineering degree is actually quite versatile.
Lastly, I would say go to a computer engineering program where you have flexibility of taking many software-oriented electives.