[plt-scheme] Perplexed Programmers
On 8/30/07, Geoffrey S. Knauth <gknauth at sunlink.net> wrote:
> What would a Programmer's Apprentice do? Which paper(s) didn't I
> read? At first I thought it would give advice from a thoughtful
> perspective, but then it would be a Mentor. Does the Programmer's
> Apprentice learn by watching us and anticipating our needs?
>
No, watching is too passive. The mentor engages students on a problem
and then helps them get "unstuck" when necessary and suggests
strategies to improve the algorithms implemented. Suggesting readings,
of course, is also important as well as discussing related problems of
interest.
> The Design Recipe gives us templates in the design process, such that
> programs nearly write themselves. Can we make a library of structure
> and algorithm templates for DrScheme that can be called up at the
> press of a button?
>
The (potential) problem is the nearly writing themselves part. That is
an extraordinary way to get students started, but we need to go beyond
that initial introduction. If I may make use of an analogy, sometimes
the best code is not obtained by following the yellow brick
road........e.g. programs that use generative recursion like
quicksort.
I want students to thoroughly understand structural recursion and use
that as a solid foundation to exploring other forms to generate
programs. Here is where a mentor can be most useful to the apprentice.
:-)
Marco