As someone who’s had to refresh electronics a few times over the decades, I remember this course as being particularly good, for a couple of reasons.

The whole thing is organized around building explicit abstractions. You’re always making models, and choosing what to pay attention to and what to ignore. By making the real circuit match the model closely enough, you get to ignore the circuit and use it as building block for bigger things. This same approach is used from resistors to amplifiers to logic gates to CPUs.

Of course this how engineering actually works, but I haven’t seen an intro course presented this way so rigorously. If you’re a software person who deals with black box abstractions all day, it feels like home.

The course introduces concepts in order of simplicity, meaning you get MOSFETs and digital gates before you get BJTs. Many courses are arranged chronologically, so after you do Ohm’s law and capacitors you get dumped into BJTs, which are one of the most complicated things in the discrete toolkit, and hardly ever found in common use nowadays (except as cheap switches). Instead, you’re happily making amplifiers, switches, and logic with FETs, a much gentler introduction.

I also remember somewhere in the course lectures the professor says (paraphrased) “You may be thinking, why do I need to learn how a logic family works? Won’t I just be using some existing chip? This is MIT — you’re supposed to be the one making the chip.”