Earlier quoted context omitted.
I know of schools where that was part of the CS curriculum. I don't know if you couldn't graduate without it, but most people didn't .
> part of the CS curriculum Well, maybe in the old days, when computers were simple (and even then, it would've been a very tough take in a curriculum).
On my degree, we had to implement compilers, db system with B-Tree indexes mapping into i-nodes, extend an existing toy OS with cooperative multi-threadeding, and device drivers for PC floppies.
In digital circuits design, we got to create our own tiny CPU, and besides the digital design, some folks did the optional part of actually implementing it on a breadboard.
Among several other projects.
When a Software Engineering degree is 5 years, there is plenty of time for such stuff.