Where can a student independently learn elementary recursion, preferably in Java? Normally, Java 2 is a prerequisite for my Computer Architecture course. I gave permission to a strong student who has only taken Java 1 to take Computer Architecture, provided that she learn the basics recursion over the summer. (In Computer Architecture,  the student write recursive programs in assembly language.) Can anyone recommend a free online source where she can pick up, and ideally practice, elementary recursion? The only language she knows is Java.

Update

I modified my question to make more clear that I am only asking about elementary recursion. (I teach about recursion, in depth, in a more advanced course, Programming Languages, in the functional programming unit.)

I ended up recommending to the student:


Any of


The Recursion section of Introduction to Programming in Java by  Robert Sedgewick and Kevin Wayne, recommended by ItamarG3
Chapters 17 and 18 of Programming via Java by Carl Burch
Recursion in CS50 Study, recommended by Peter

Recursion-1 problems from CodingBat, recommended by Peter
Often times, google is our best of friends (I hope). A rather simple search leads to a very informative site: 

http://introcs.cs.princeton.edu/java/23recursion/

It is very thorough, and explains many use-cases for recursion. 

Another very handy resource is, inevitably, Stack Overflow: this question also provides some information, but it is rather specific. Instead of staying there, one can navigate to the Related Questions section, and from there choose a promising question (usually the one with the highest votes, but not always) and reading it. And so on, and so on... (recursively ;)).