I've been getting after a friend of mine for a while about learning another language, be it smalltalk, haskell or lisp. We made an agreement that if I would shave my head or go camping with him, he would do a project in a language of my choosing.

I am learning lisp and another roommate has been learning haskell, and I've been telling him he should learn smalltalk, but since I get to choose, I've been thinking I might as well choose lisp.

The thought has crossed my mind that I could just have him work through PCL, but I'm afraid he won't think about what he's doing. (Just the other day he installed apache from source for the first time because it was required for a course. He followed the instructions so blindly that he didn't even realize that he had downloaded and compiled it until I mentioned it in passing.)

Should I have him work through PCL? Should I slightly modify the PCL spec so he has to think about what he's doing? Or should I give him a different project entirely?

I'm leaning toward the middle solution, but I'm going to keep thinking about it. In the meantime I'd like to hear what everybody else thinks.