Describe how you approach a simple programming exercise followed by a system-oriented question, including how you reason about requirements and edge cases.
Implement approach_to_programming_exercise(requirements), which accepts a dictionary of boolean requirement indicators and returns the ordered preparation checklist.
For all indicators set to true, return algorithm, implementation, and system-design steps; for indicators set to false, include the corresponding clarification step.
requirements contains exactly four boolean keys: input_output_defined, constraints_defined, examples_provided, and system_question.def approach_to_programming_exercise(requirements):