Recursion is a decomposition/composition problem solving technique. With reference to the typical programming process, recursion applies to design and to coding. Recursive algorithms are used in designing, and recursive implementations are used in coding. Usually recursion in design originates from recursive data structures, because they are generic and apply to many types of problems or tasks. For example, trees are a widely useful data structure, used in games, decision making, analysis, etc. Recursive implementations tend to pertain to specific problems or tasks. However, if there are similar problems, a recursive implementation may be applicable to those similar problems. Scan the resource material for Unit 5 looking at the examples used to explain and illustrate recursion, noting how you might use them as problem solving resources for future problems you may want to solve.