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