I agree 100%, that was far and away the most valuable single class I took in college. We used the Tannenbaum book and a digital logic simulator, and worked up from basic gates into basic components (e.g. flip-flops and muxes, etc), then combined those into bigger components (ALU, registers, SRAM, etc), combined those into a toy 8-bit CPU, implemented cache and main memory, wrote an assembler that converted a small subset of x86 instructions into the opcodes for that toy CPU, then a limited dialect of C that generated that assembly code, that we converted to opcodes, that we ran on that simulated toy CPU.
It was probably the hardest course of my entire degree, and I ended up taking it twice, but at the end of the second go-round, computers were no longer a magic black box.
>It was probably the hardest course of my entire degree, and I ended up taking it twice,
Interesting. Did you study at a US univ.? I have not heard of being able to take the same course twice (except via, say, failing a year of the degree and having to repeat the whole year). I did hear that US universities are more flexible in some ways than, say, Indian ones, whose rules are probably based on British ones (maybe ones from much before); e.g. being able to mix and match courses, take longer than the standard 4 years for a degree, etc. I have American friends and relatives who told me that. But didn't know one could repeat a course. Seems like a useful feature.
I wasn't really ready to take it the first time (freshman spring...), and dropped it before the halfway point so I wouldn't take the hit on my GPA.
US colleges are all over the map with regards to how flexible they are about course order, and even between different degree programs at the same school. My alma mater had a somewhat weird trimester schedule and was relatively flexible about offering sections of courses year round - they had a bit of a housing shortage that made it impossible to house all the undergrads on campus at the same time.
Got it now, thanks. Interesting about US colleges. I was under the (wrong) impression earlier that all of them had that sort of flexibility about course order and more so, about degree duration. It was based on hearing things from a few friends. I guess I extrapolated, incorrectly.
It was probably the hardest course of my entire degree, and I ended up taking it twice, but at the end of the second go-round, computers were no longer a magic black box.