A well-ordered collection of unambiguous and effectively computable operations that, when executed, produces a result and halts in a finite amount of time.