The nearly three dozen core technologies of computing sit in a simple framework defined by great principles and by computing practices. The great principles are of two kinds, mechanics and design. Computing mechanics comprises computation, communication, coordination, recollection, and automation. Design principles address concerns for complexity, resilience, performance, evolvability, and security. Practices comprise programming, systems, modeling, innovating, and applying. This framework opens many new possibilities for teaching computer science, including new approaches to programming. The new CS curriculum at the Naval Postgraduate School is based on the framework presented here. Categories and Subject Descriptors A.0 [General Literature]: organization and structure of computing field. K.0 [Computing Milieux]: organization and structure of computing field. K.2 [History of Computing]: evolution of principles and practices of computing. K.3 [Computing Education]: organization of cur...
Peter J. Denning