- effective — returns correct results
- precise — no more no less
- finite — run in a limit amount of time / steps
- input — requires something quantifiable… value, type, quantity
- output — required, otherwise just a method
Data Structures
Runtime Expressions
Examples