The discipline of computing can be viewed as comprising three distinct paradigms; theory, abstraction, and design. Moreover, all three paradigm exist within a very definite social context.
(That is, computation and the artifacts that surround it exist most generally for the purpose of enabling social, scientific, governmental, business, and international systems to work effectively and accomplish things that they could not otherwise accomplish.)