I'll treat this as self-study and provide hints to help you get unstuck. Please reply in the comments if this is helpful and where you get stuck again.
Let $E_i$ denote the expected number of steps when you are $i$ stones away from the opposite bank. That is, $E_1$ means that we are on the very last stone. In this case, we will take a single step with probability one, and the expectation is
$$ E_1 = 1. $$
If we are two stones away from the opposite bank and want to calculate $E_2$, there are two possibilities:
- With probability $\frac{1}{2}$, we make a single (two-stone) step and are done. This contributes $\frac{1}{2}\times 1$ to $E_2$.
- With probability $\frac{1}{2}$, we make a one-stone step and are in the situation above. This contributes $\frac{1}{2}\times (1+E_1)$ to $E_2$.
Overall,
$$ E_2 = \frac{1}{2}\times 1 + \frac{1}{2}\times (1+E_1) = 1.5. $$
The key observation is that we can express $E_2$ as a function of $E_1$. Now, can you express $E_3$ as a function of $E_1$ and $E_2$?
EDIT: per above, we get a recurrence relationship.
$$ E_n = \frac{1}{n}\times 1+\frac{1}{n}\times(1+E_{n-1})+\dots+\frac{1}{n}\times(1+E_1) = 1+\frac{1}{n}\sum_{k=1}^{n-1}E_k. $$
Here is a simple dynamic programming approach to calculating these numbers in R:
n.stones <- 10
expectation <- rep(NA,n.stones)
expectation[1] <- 1
for ( ii in 2:n.stones ) expectation[ii] <- mean(1+c(0,expectation[1:(ii-1)]))
expectation[n.stones]
This yields 2.93.
Since I don't trust myself, I like to verify things like this via simulation:
n.sims <- 1e4
steps <- rep(0,n.sims)
for ( jj in 1:n.sims ) {
stones <- n.stones
while ( stones > 0 ) {
steps[jj] <- steps[jj]+1
stones <- stones-sample(x=stones,size=1)
}
}
mean(steps)
hist(steps,breaks=seq(0.5,n.stones+0.5),col="grey",xlab="")
abline(v=mean(steps),lwd=2)
abline(v=expectation[n.stones],lwd=2,col="red")
legend("topright",lwd=2,col=c("black","red"),
legend=c(paste("Simulated expectation:",round(mean(steps),2)),
paste("Theoretical expectation:",round(expectation[n.stones],2))))

This looks good - the simulated and theoretical values are practically on top of each other.
If we normalize the $E_n$ values by multiplying by $n!$, we get something that is identical to the sequence of unsigned Stirling numbers of the second kind, sequence A000254:
expectation*factorial(1:n.stones)
[1] 1 3 11 50 274 1764 13068 109584 1026576 10628640
Your son's homework: prove that we indeed get $E_n=\frac{s(n+1,2)}{n!}$.