Teaching of computer design to computer science undergraduates. - Lampson, Butler (The Teaching of Computer Design, 1971)
Both computer design and programming are interfacing disciplines. The activity of computer design includes four phases: architecture, logic design, physical realization, and maintenance. Programming and the first two phases of computer design are quite similar. Logic design is also quite similar to low-level machine-language programming, and it is an observable fact that quite often the same people are good at both. The third and fourth phases of computer design do not correspond to any form of programming, but seem to have a distinctly different nature. Studying mistakes seems to be one of the best ways of learning computer design.