Archive for October 5, 2009

Learning computing on computer, not in IDE

Ray Lister, who’s been really good at provoking my thinking lately, made an interesting response to Ed Gehringer on the SIGCSE members list last night:

On Sat, 3 Oct 2009, Ed Gehringer wrote:
> In the last few years, I’ve been concerned that my tests and exams
> have been given in an environment that is increasingly artificial.
> No one would think of writing code while away from a computer …


For today’s novice, who is learning to program in an era where
sitting in front of the computer means that the next compile-and-run is
only a mouse click away, it is tantalizingly easy but ultimately futile
to pursue a strategy of trying to get the computer to do the thinking
for them.

I think we need to place greater explicit pedagogical emphasis on
performing programming activities *away* from the computer. I’m
not advocating zero use of machine-based testing. But I think
testing students on paper is part of a healthy grading mix.

(Apologies in advance if I’ve just started an email storm.)


Dr. Raymond Lister
Science Teaching and Learning Fellow,
University of British Columbia,
Department of Computer Science,
Vancouver, Canada

Ray’s call for paper-based and computer-based assessment is interesting.  My recent reading spree on cognitive load has me thinking about student learning activities that are on the computer, but not in the IDE.  For example, how about tools that let a student enter an equation or a loop in response to a question, and then a parser (or maybe even just a tokenizer for some expressions) gives the student feedback that is tuned to that problem?  Not just “You’re missing a right paren” but “You’re missing the term where you divide by the count to get the average” or even “Hmm, doing it like that will miss the last item in the list.”  These could be used for testing, as Ed’s question originally suggested, but also new kinds of student activities for learning.

Intro to CS courses will be about programming, enforced by student and teacher culture.  However, programming is a pretty blunt instrument for helping students learn — there are lots of cognitively complex activities there, with little useful feedback.  The educational psychology literature I’ve been reading has me realizing what few tools we computing educators have right now to facilitate student learning about computing.  What if our students can’t solve the big programming assignments we assign?  Well, we can give them a smaller programming assignment, or a different language for programming. Katrin Becker came up with a nice list in her blog of educational activities that aren’t just “generate program (in whatever language).”

The non-programming activities on Katrin’s list, though, are mostly without computational support.  Could we use our own technology to support learning about the technology?  How about tools that help a student in identifying the differences between two programs by highlighting comparable parts? Or can parse a student’s natural language explanation of a program to provide feedback?  Or ask a student to generate the output of a program, and then use pattern matching to give feedback on that response?  We might use all this cool computing technology we have to provide learning experiences and feedback to students other than just programming error messages from the IDE.  Surely, we can figure out more to do with a computer to help learning than just to build more languages and IDEs.

October 5, 2009 at 10:35 am 3 comments

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 10,184 other subscribers


Recent Posts

Blog Stats

  • 2,053,614 hits
October 2009

CS Teaching Tips