The Racket group won a SIGCSE Best Paper Award a few years back about their 
careful design of better error messages for students.


Strangely enough, the ITICSE Best Paper Award went to another paper a few years 
later, that claimed that improving error messages actually didn't help students 
at all.  The second paper did not use any of the techniques of the Racket paper 
(nor even reference that paper).


A blog post about that strange set of affairs -- with links to ACM DL for both 
papers: 
https://computinged.wordpress.com/2014/07/29/enhancing-syntax-error-messages-appears-ineffectual-if-you-enhance-the-error-messages-poorly/



- Mark


________________________________
From: ppig-discuss@googlegroups.com <ppig-discuss@googlegroups.com> on behalf 
of Luke Church <l...@church.name>
Sent: Tuesday, April 5, 2016 8:47 PM
To: Linda McIver; ppig-discuss@googlegroups.com
Subject: Re: [ppig-discuss] Beginner friendly error messages

Hi Linda,

Error messages generally serve as a way of trying to realign a gap between what 
the user thought the computer was going to do on their behalf and the model 
inside the computer. This is hard-ish, as if we knew what the user wanted, we 
would probably have just done that instead :)

Based on observational studies, I've generally recommended to the 
Dart<http://www.dartlang.org/> team that the verbose errors state:

- What happened (e.g. File 'stuff, ln 43:' class B doesn't implement method foo)
- Why it is a problem (e.g. class B extends class A, which has an abstract 
method foo. This means that class B doesn't have an implementation of foo)
- What the user can do next (e.g. consider implementing foo, or making class B 
abstract)

This seems to work reasonably well in verbose form, but does need to be 
accompanied by a terser format, especially for experts who seem to on a first 
pass only pay attention to where something went wrong, and ignore the rest.

It's worth noting that being able to answer each of these questions well 
requires careful attention during the design of the interpreter to keep the 
necessary information around.

I agree this experience is critical in education. I conjecture that it's a 
necessary component of maintaining self-efficacy amongst students. There have 
been studies in the past indicating that this is an important factor in success.

Please keep in touch with how you get on with the education-friendly 
interpreter. If I remember correctly the folks from 
Grace<http://gracelang.org/applications/> have given this problem some thought 
and might have more insights.

Hope this helps,

Luke

On Wed, Apr 6, 2016 at 12:18 AM Linda McIver 
<linda.mci...@gmail.com<mailto:linda.mci...@gmail.com>> wrote:
Hello PPIGers,

I am trying to design a data science course for year 10 students that will be 
taught to, and in some cases *by* beginners. We'll be using Python both for its 
data science credentials and its user friendliness, but the error messages are 
a big barrier to success. Students hit one incomprehensible error message and 
run screaming in the opposite direction.

I recall some research on error messages and their user friendliness, but I 
still can't find any interpreters with beginner friendly error messages, which 
surprises me.

Am I missing something? Is there a treasure trove somewhere? If not, is there 
at least some solid research on which we could base the design of a beginner 
friendly Python interpreter?

Any and all clues gratefully received.

Linda

--

Exploring Life, Parenting and Social Justice: http://lindamciver.wordpress.com/
Computational Science Education: http://computeitsimple.wordpress.com/

Dr Linda McIver
Teacher & Freelance Writer
--
Buy Fair Trade - Change the world one coffee at a time

--
You received this message because you are subscribed to the Google Groups "PPIG 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
ppig-discuss+unsubscr...@googlegroups.com<mailto:ppig-discuss+unsubscr...@googlegroups.com>.
To post to this group, send email to 
ppig-discuss@googlegroups.com<mailto:ppig-discuss@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups "PPIG 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 
ppig-discuss+unsubscr...@googlegroups.com<mailto:ppig-discuss+unsubscr...@googlegroups.com>.
To post to this group, send email to 
ppig-discuss@googlegroups.com<mailto:ppig-discuss@googlegroups.com>.
For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups "PPIG 
Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ppig-discuss+unsubscr...@googlegroups.com.
To post to this group, send an email to ppig-discuss@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to