Second design/attempt is always the better version. Once he has struggled with the first version, with whatever language, the second version will be easier, with whatever other language.
Good point. Not sure how to avoid bias or if it's even possible in this case. All I can do is let him know that the second design/attempt would have been easier in just about any language.
I told him to keep sticking with Java and get something working, and then I might be able to show him an easier way of doing it in Haskell.
He's actually a Math major as well, and seemed to understand Functors and (at least) the Maybe monad very quickly.
It'll be interesting to see what happens after he finishes and we attempt to replicate what he did in Haskell.