It used to be the case that MIT required their CS undergraduate students build an 8-bit computer from TTL (mostly 74XX) chips on breadboard in their Freshman on Sophomore year. (And no, we didn't even get a Z80; the most complex parts we got was an ALU unit and a 8250 UART so you could communicate with the computer over an RS-232 port.) It's really too bad that this isn't something which is required any more.
Instead undergraduates are taught how to write Java programs, which is one of those languages where it's impossible to worry about silly things like cache-line misses, because there are too many layers of abstraction between you and the hardware.... (And yes, you youngsters should get off my lawn, while you're at it. :-)