[racket-dev] guidelines on error messages -- please send feedback

From: Shriram Krishnamurthi (sk at cs.brown.edu)
Date: Fri Jun 3 20:17:29 EDT 2011

Where there is subtyping, "same" and "different" are not so clear.
set-foo-bar!, foo-bar, and foo? are all "different" things at the
level of "mutator", "selector", and "predicate", but they are the same
thing one level of abstraction up, where they are all "functions" or
"operators".

So we are not advocating lying; we're simply saying don't make more
distinctions than necessary.

The problem we're seeing is that, because students don't know these
additional words, they are not getting *more* information, they are
getting *significantly less*: they're being told in the errors about
gidgets and whosies and whatchamacallits.

Shriram

On Fri, Jun 3, 2011 at 8:05 PM, Jay McCarthy <jay.mccarthy at gmail.com> wrote:
> Guillaume's homework is that students get confused with all the names
> for the same things. IMHO, if there are different things, then they
> should have different names. The students could still confuse the
> things, and that would be bad for our classes. DrRacket calling the
> different things the same thing would, IMHO, make it easier for
> students to confuse the concepts, and that's worse.
>
> Jay
>
> 2011/6/3 Matthias Felleisen <matthias at ccs.neu.edu>:
>>
>> HtDP uses
>>
>>  (define variable expression)
>>  (define (function-name parameter ...) function-body)
>>          --- function header ---
>>  (lambda (parameter ...) ... variable ...)
>>
>> but it also says that globally defined variables are constants until we hit ASL. Because then they aren't.
>>
>> ;; ---
>>
>> I think we should start with the reduced set of words that Guillaume et al have come up with and if we notice problems we should expand the vocabulary or revise it carefully. None of us has research to back up our opinions. At least Guillaume et al have done some homework here. We need to acknowledge this.
>>
>>
>>
>>
>>
>> On Jun 3, 2011, at 7:52 PM, Stephen Bloch wrote:
>>
>>>
>>> On Jun 3, 2011, at 3:13 PM, Jay McCarthy wrote:
>>>
>>>> "Use ‘argument’ for actual arguments and ‘variable’ for formal
>>>> arguments and in the body of the definition."
>>>>
>>>> I prefer argument and parameter name, because until ASL, they don't
>>>> vary. But it seems you prefer just variable, because you don't want
>>>> two terms for the things made by 'define' and the things made by
>>>> 'lambda'? This is very bikesheddy, but I dislike your choice.
>>>
>>> I agree with Jay here.  I explicitly address the distinction between "argument" and "parameter" (i.e. formal argument) in _Picturing Programs_; to me, "variable" (in *SL) means the <identifier> in (define <identifier> <expr>), and its subsequent occurrences.
>>>
>>>
>>> Stephen Bloch
>>> sbloch at adelphi.edu
>>>
>>>
>>> _________________________________________________
>>>  For list-related administrative tasks:
>>>  http://lists.racket-lang.org/listinfo/dev
>>
>>
>
>
>
> --
> Jay McCarthy <jay at cs.byu.edu>
> Assistant Professor / Brigham Young University
> http://faculty.cs.byu.edu/~jay
>
> "The glory of God is Intelligence" - D&C 93
>
> _________________________________________________
>  For list-related administrative tasks:
>  http://lists.racket-lang.org/listinfo/dev



Posted on the dev mailing list.