Alain Lou



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.

Courses of interest for CS DHW

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:
CS 246
FPGAs: ECE 124, ECE 327
Algorithms: CS 341 Computer Architecture: ECE 222, ECE 429

Non-computer courses

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).

Cultural differences (take with a grain of salt)

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.

Why I’m coming back

Do I really want to take the CS courses I get locked out of as an engineering student?

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.)

What teaching style do I enjoy more?

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.

Graduation delay vs. course load?

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.

What are work prospects like if I transfer?

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.

Made by Alain Lou