EWD pioneered or refined on so many aspects of concurrency, multitasking, distributed computing and imperative programming that are taken for granted today, while scantly using computers in general. Wrote a multitasking OS on paper two years before he ever got the chance to implement it on real hardware.<p>In fact, doing computer science or theory of programming without a computer was remarkably common due to scarce access to hardware, even as recently as the late 80s with people writing BASIC programs on paper before ever getting access to a PC. I&#x27;m sure it still happens.<p>I actually think that teaching CS and programming as hard pragmatic subjects based on doing real-world programming, is likely harmful. The impedance mismatch between contemporary, enormously complicated software systems with the theoretical essentials are too great and may lead to the risk of being unable to think sufficiently abstractly. That is to say, the risk of associating one <i>implementation</i> of a name with the actual first principles of the name in question. See: People being baffled by Plan 9 because they associate &quot;file&quot; as something more specific than a tree node, or generic representation of data.