[plt-scheme] Log "every change in" Definitions and Interactions...

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Sun Jan 25 12:57:59 EST 2009

On Jan 25, 2009, at 2:15 AM, Geoffrey S. Knauth wrote:

> On Jan 23, 2009, at 17:28, Robby Findler wrote:
>> The logging feature in DrScheme automatically records the  
>> definitions and interactions windows each time the user hits the  
>> "Run" button.
>> Still, the way to record keystrokes (or perhaps better: editor  
>> actions), would be to use the tools interface to connect to  
>> drscheme and monitor it.
> John McCarthy has an idea called Elephant [1], for programs "that  
> can refer directly to the past."  ("An Elephant never forgets.")
> If one wants to track whether the Design Recipe is being followed,  
> there could be a new tool or mode in DrScheme that would add in  
> templates for things one is supposed to fill in.  DrScheme would  
> then know and could remember the order in which Design Recipe  
> elements were followed.
> DivaScheme [2] already does this a little:  start typing an S- 
> expression, and DivaScheme lays out a mini-template to fill in.

They aren't templates in the sense of HtDP.

> On the plus side, having Design Recipe templates helpfully inserted  
> in response to user commands or DrScheme HAL-like insight [3] might  
> encourage people to follow the Design Recipe more often.  On the  
> down side, if someone didn't want to use inserted templates every  
> time, the measurement of "effectiveness of proper usage" of the  
> Design Recipe would still have to be done by looking at code  
> changes without semantic markers.  Also, we don't want HAL to  
> control us.

It doesn't take any of that smarts. If we used a typed approach, the  
template would simply follow from the datatype def in most cases.  
BUT, how woudl students learn to think through such problems for a  
language that has neither algebraic types nor dispatch? It's not  
about showing off Scheme features and it's not about automating  
stuff. It's about making sure students truly understand why they'e  
doing things so that they can reason in an analogical manner in  
different situations.

-- Matthias

> A human expert watching a person use the Design Recipe can tell  
> immediately when someone skipped a step either deliberately (for a  
> good or not-so-good reason) or out of ignorance.  The human expert  
> knows what the next step is supposed to look like.  Maybe pattern  
> matching could be used to recognize recipe elements that are in  
> various stages of completion.  There could be a library of patterns  
> for common errors in the application of the recipe.
> Geoffrey
> [1] http://www-formal.stanford.edu/jmc/elephant.html
> [2] http://www.cs.brown.edu/research/plt/software/divascheme/
> [3] http://en.wikipedia.org/wiki/HAL_9000#The_future_of_computing
> _________________________________________________
>  For list-related administrative tasks:
>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme

Posted on the users mailing list.