I took this course to refresh some of my EE basics which, having moved from EE to CS, I had long forgotten. I’d also been dabbling with various online courses being offered by Stanford (Machine Learning and Databases) but although the content and teaching were excellent, I realized that unless I was really serious about a course, I wouldn’t get much out of it. I’d just watch a lecture here and there in my “spare time”, half-heartedly checkout an assignment or two and think about how to approach it.
And if I’ve learned anything during my two and a half decades of formal education, it’s that the only way to really soak up knowledge is to get into it like it was a second skin and largely ignore everything else. That, by the way, was about the only thing I learned during undergraduate school, which I spent mostly playing Counterstrike, Age of Empires, and Diablo II. But that’s another story. So, I decided to take this course seriously, not just consuming the content on time, but actually doing the assignments and exams and shooting for a grade.
The course set up made this really easy, I must admit. The lectures are interactive, with exercise in between each sequence — real EE problems pertaining to the content, including numerical calculations, formula derivations and reading graphs. There is nothing like a rightly timed problem to get a concept inside your head. And this is why I think the online delivery of education has such power — there is simply no way to do this inside of a classroom given the limitations of time and the variation in the time that students will take to solve the problems. Khan Academy cites this also as a reason for their success. Another fabulous thing about the course is the circuit simulator used for labs. It was so much fun to build circuit components inside a webpage and run analyses on them. I didn’t have anything close to it back in 2003 when I got my bachelor’s. Nothing like a playground to learn how circuits work.
Prof. Agarwal is an amazing teacher. I think I can never get tired of one of his first lecture sequences where he describes the scope of EECS and how it starts off with basic physics (Maxwell’s Laws), and keeps on adding layers of abstraction, from lumped element behavior (resistors, capacitors) to amplifiers to digital logic and software. That 11 minute video put things in such wonderful perspective that I think my undergrad might have gone differently had someone explained this to me back then. If you’re just starting out in EECS, make sure you watch this.
It’s inspiring to learn how devices can have models of differing complexity depending on the use to which they’re put — a MOSFET can be treated as a crude switch for vanilla digital circuits, a switched resistor for more disciplined digital circuits, and a current source when used as an analog amplifier. It’s very interesting to think that from a systems perspective, there are no lies, only leaky abstractions.
Not that there weren’t times when I was pulling my hair out due to a tough problem or a section I couldn’t understand, but that’s always been part of education. It was quite a time-sink, took me about 3-4 hours a week on average (I unfortunately did not have time to go through a lot of the additional materials like video tutorials and the textbook) plus a couple of weekends spent on studying for and giving the midterm and final. Totally worth it in the end, given that I now will be a little less embarrassed to call myself and electronics engineer.