[Python-ideas] Better error messages [was: (no subject)]

Nick Coghlan ncoghlan at gmail.com
Sun Dec 4 21:40:14 EST 2016


On 5 December 2016 at 09:15, victor rajewski <askvictor at gmail.com> wrote:
> <rant>
> There is currently a big push towards teaching coding and computational
> thinking to school students, but a lack of skilled teachers to actually be
> able to support this, and I don't see any initiatives that will address this
> in a long-term, large-scale fashion (I'm speaking primarily from an
> Australian perspective, and might be misreading the situation in other
> countries). It's worth considering a classroom where the teacher has minimal
> experience in programming, and a portion of the students have low confidence
> in computing matters. Anything that will empower either the teacher or the
> students to get past a block will be useful here; and error messages are, in
> my experience as a teacher, one of more threatening parts of Python for the
> beginner.
> </rant>

Hi Victor,

I'm one of the co-coordinators of the PyCon Australia Education
Seminar, and agree entirely with what you say here. However, it isn't
a problem that *python-dev* is well-positioned to tackle. Rather, it
requires ongoing attention from vendors, volunteers and non-profit
organisations that are specifically focused on meeting the needs of
the educational sector. So your goal is valid, it's only your current
choice of audience that is slightly mistargeted.

Within Australia specifically, the two main drivers of the
improvements in Python's suitability for teachers are Grok Learning
(who provide a subscription-based online learning environment directly
to schools based on a service originally developed for the annual
National Computer Science School) and Code Club Australia (the
Australian arm of a UK-based non-profit aimed at providing support for
after-school code clubs around Australia, as well as professional
development opportunities for teachers needing to cope with the
incoming Digital Technologies curriculum).

> I'm not suggesting this should become part of the normal operation of
> Python, particularly if that breaks compatibility or impacts performance. A
> switch, or a seperate executable would probably work. I'd lean against the
> idea of tying this to a particular IDE/environment, but if that's the way
> this can progress, then let's do that to get it moving. However, it has to
> be dead simple to get it running.

The model adopted by Grok Learning and many other education focused
service providers (codesters.com, etc) is to provide the learning
environment entirely through the browser, as that copes with entirely
locked down client devices, and only requires whitelisting of the
vendor's site in the school's firewall settings. The only context
where it doesn't work is when the school doesn't have reliable
internet connectivity at all, in which case the cheap-dedicated-device
model driven by the UK's Raspberry Pi Foundation may be a more
suitable option.

> It will be almost impossible to deal with all cases, but that isn't the
> point here. The trick would be to find the most common errors that a
> beginning programmer will make, find the most common fixes, and provide them
> as hints, or suggestions.
> The examples listed in my original email are simply ideas, without much
> thought about how feasible (or useful) they are to implement. Going forward,
> we would identify common errors that beginners make, and what would help
> them fix these errors.

Right, and the folks best positioned to identify those errors
empirically, and also to make data-driven improvements based on the
typical number of iterations needed for beginners to fix their own
mistakes, are the educational service providers. Some of the more
sophisticated providers (like Knewton in the US) are even able to
adapt their curricula on the fly, offer learners additional problems
in areas they seem to be struggling with.

Don't get me wrong, there are definitely lots of areas where we can
make the default error messages more beginner friendly just by
providing relevant information that the interpreter has available, and
this is important for helping out the teachers that *don't* have
institutional mandates backing them up. But for cases like the
Australian Digital Curriculum, it makes sense for schools to look into
the local service providers rather than asking teachers to make do
with what they can download from the internet (while the latter option
is viable in some cases, it really does require a high level of
technical skill on the teacher's part)

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-ideas mailing list