A framework used to solve programming problems.
Outputs
Find what outputs you are expected to return
Inputs
Check that all functions can handle any type of input, or can restrict inputs
Constraints
Check if there are any constraints, that may impact:
- Language you use
Edge Cases
These are specific edge cases in the problem that must be implemented in your program