a systematic problem-solving strategy, with criteria and constraints, used to develop many possible solutions to solve a problem
systemic problem-solving strategy used to develop many possible solution to a problem
translate data and programs that humans can understand into a form that the computer can process