• Inputs: any piece of data that an algorithm requires in order to run, usually passed as a parameter to a subroutine
  • Outputs: any piece of data returned to the calling subroutine, or data provided to an output device such as a monitor or speaker
  • Preconditions: conditions that must be true for an algorithm to complete successfully, without errors or crashing
  • Cache: the tiny storage on a processor that is used to temporarily store frequently used data and instructions while a program is running
  • Caching: the act of storing data and instructions
  • Reusable program components: commonly used subroutines bundled into packages called libraries in most programming languages