While each class in a computer science curriculum serves to teach the principles and core knowledge of one domain, it is equally important that our students receive a deep understanding of the central ideas of the field that cut across sub-disciplines. In this respect, a class on computer organization provides an ideal context for concretely demonstrating some of the most important ideas in computer science. This paper describes how, with little effort, discussions of abstraction, indirection, and Turing completeness can be introduced into lectures on computer organization. We also discuss explaining the broader applications of two architecture-centric ideas, caching and pipelining. We present data from pre- and post-tests on our students learning of these concepts, demonstrating the relative difficulty of these ideas for students and identifying some of the sources of student misconceptions.