"Recursion" refers to the technique in which a function calls itself. This allows a problem (generally a mathematical function or set operation) to break down the computation or input data into a smaller version of the same problem. Eventually the algorithm reaches the "base case", which is the case that requires the least amount of computation. Specifically, the base case does not require recursion.
When writing a recursive function, it is helpful to have the base case appear first, for two reasons: First, if you are formulating a solution then knowing the base case can help you reason about the problem. Second, having the base case first helps to avoid errors that result in infinite recursion.
Please note that I wrote these samples in a hurry, so if there's a bug don't judge me. :-)