Recursion is a very useful programming skill. You may not use it very often in most languages, but the ability to think recursively is a valuable skill to acquire. There are programming languages (e.g ...
Using Python, project that analyzes different attributes of a given mathematical graph, such as: Topological Order, Cycles and Connected Components. Uses recursion of functions, adjacency lists, ...
Recursion can also be indirect. One function can call a second, which calls the first, which calls the second, and so on. This can occur with any number of functions.