• technique where the results of computations are stored
  • and reused when the same inputs occur again
  • thus avoiding the need to recompute the same results