1 Abstraction Identify important aspects and ignore the details Permeates software development programming languages are abstractions built on hardware.