I am torn between these similar degrees. I want to work in chip design for computers, ideally for a large cutting edge company like intel, amd, nvidia, etc. Here are mutually required courses that I will take either way: CPE 112 - Introduction to Computer Programming in Engineering CPE 212 - Fundamentals of Software Engineering CPE 323 - Introduction to Embedded Computer Systems EE 100 - Fundamentals of Computer, Electrical and Optical Engineering EE 202 - Introduction to Digital Logic Design EE 213 - Electrical Circuit Analysis I EE 310 - Solid State Fundamentals EE 315 - Introduction to Electronic Analysis and Design EE 420 - Random Signals and Noise These courses are required for CPE: CS 214 - Introduction to Discrete Structures CS 317 - Introduction to Design and Analysis of Algorithms CPE 353 - Software Design and Engineering CPE 321 - Computer Organization CPE 422 - Advanced Logic Design CPE 381 - Fundamentals of Signals and Systems for Computer Engineers CPE 431 - Introduction to Computer Architecture CPE 434 - Operating Systems CPE 448 - Introduction to Computer Networks And these are required for EE: PH 113 - Physics III(wave motion, optics, relativity, quantum effects) EE 307 - Electricity and Magnetism EE 313 - Electrical Circuit Analysis II EE 382 - Analytical Methods for Continuous Time Systems EE 383 - Analytical Methods for Multivariable and Discrete Time Systems EE 425 - Introduction to Control and Robotic Systems EE 447 - Electromagnetic Engineering EE allows for 5 electives while CPE only allows for 2, so If I did EE I could still take several of the extra software courses. What do you guys think? Which degree/course work seems more appropriate for someone who wants to work with hardware, but specifically with something like microprocessors? Course descriptions can be looked up by searching the course number on this catalog: http://catalog.uah.edu/ Thanks anyone for your time No, I don't mean work with hardware like program it, I want to do hardware design.