This was another one of my picks for the blog project. I wanted to write about this before I couldn’t really remember it well.
A part of me wants to write about how a class would affect me on a personal level; like standing on desks and shouting “O Captain! My Captain!”, but that would be disingenuous. I didn’t have a class that hit me like that in college. I had classes that were largely analytical, technical, and mathematical. That didn’t mean I didn’t have liberal arts classes, I did. I know it’s in vogue to promote STEM and besmirch liberal arts, but I think that studying the arts is incredibly important. Personally, I see a dearth of those skills in the STEM fields. It’s not extremely helpful when you know how to solve a problem, but you are unable to communicate your solution, methodology, or perhaps, even the problem itself properly. One needs to not look very far to see these examples in action; SNL has skits about the unintelligible, condescending IT guy or look to the horrific Challenger space launch for the mother of all communication breakdowns. Clearly, this thought train has been derailed. All I’m really trying to say is that I view non-STEM classes with importance, but in the case of this entry, it is an engineering class I will be talking about.
*Steps off soap box*
The most influential class is actually a toss up between ECE 233: Introduction to Microcontrollers and ECE 371: Computer Organization and Architecture. Both are amazingly important classes in my eyes for the computer engineer, but 371 wins out because of just how fundamental it is. Computer architecture, in essence, is how a computer is built. This does not mean buy some parts and build a desktop PC, but more like gate-level logic and building a functioning CPU from scratch (at least scratch from the gate-level, we didn’t have to make our own transistors). This was exactly the class I was thinking was going to be the norm when I started engineering. It took six semesters of laborious work, but the class was as interesting and fun as I thought it would be when I started school.
We were taught how to design and build all the components of a computers, chief among them the CPU. We designed a five-stage pipeline RISC processor that was a MIPS variant, with 32 instructions. The hand drawn schematic for the CPU we built in class is attached above. It even ran programs, albeit very simple programs – think, add these two numbers and then subtract the result by three. The fact of the matter is at some point everything we do in a computer is basically broken down to simple operations like that, which still amazes me today. I say this as I type away at this silver slab and words magically appear on a screen while I listen to music coming out of the same silver slab. Of course it’s not magic. It’s just awesome engineering and science.
It is worth noting that we had a really great T.A. without whom the class would not nearly been as engaging or worthwhile. He spend many hours of his own time, well above what he was paid for, designing labs and instructions to help us accomplish all we did in one semesters time. So, good on you, and thanks!
I tried to take the follow up class, but alas there was not enough interest that semester to justify it. While disheartening it hasn’t deterred me from learning more on my own. It is such a broad and wide ranging topic, and it never ceases to amaze me the crazy solutions people have come up with to optimize things such as adders. Geniuses.