Saturday, September 21, 2013

Mediating Differences in Computing Skills in the same Classroom

I just came across Ross Penman's post on the problems of computing education.  Ross is a 14-year old web programmer from Scotland.  His description of his school's computing curriculum is depressing, particularly the descriptions of the various ways in which it inadvertantly turns students off from computing.  These ways include the impact of old software and technologies that yield inferior-looking products (in the web-design or video-production spaces) and programming tools with low ceilings (in this case, Scratch), which aren't able to hold the interest of students who grok programming and want to do more with it, faster.

The latter point particularly got to me.  In our drive to providing computing education for most students (a good thing), we can't afford to alienate the students who will actually be good at it.  Many comments on his post are from professional programmers advising him on how to learn on his own.  That's reasonable advice for a student with Ross' abilities to teach himself, but it completely misses the point: what do you do for the students who have similar potential to Ross, but not the confidence, drive, or established interest to do this on their own?  Our curricula need to engage and foster them!

A key part of the problem here is how to gracefully handle the wide variation in both teacher and student abilities in computing: variation in student abilities is wide, the knowledge gap between some students and their computing teachers is also wide.  How do we enable teachers to work with such a wide-ranging class, including students who are more comfortable (or skilled) than the teachers?

Teachers need curricula that they can use on an entire class, but that (a) accommodate a wide range of student abilities, and (b) are sufficiently within the teacher's comfort zone to be usable.  The community seldom talks about (b), but we can't ignore its impact on adoption and effectiveness of computing education.

Our current standard early-programming solutions, such as Scratch and many of the other drag-and-drop tools, are too far skewed to the lower-middle end of (a) while achieving (b).  The problem isn't drag-and-drop per-se, but the limitations of the languages and tools that get created around drag-and-drop.

What if we had a curriculum (with language, software, materials, etc) that provided a simple, beginner-friendly approach to writing basic programs, but that scaled---within the same framework and tools---to more sophisticated programs that exercised more advanced computer science concepts?   Teachers could focus on learning to teach the core framework; most students could learn computing at the level of the basic programs, but students who are doing well could go forward without having to go off entirely on their own (and staying within the realm of what the teacher recognizes, for various benefits).

Program by Design (PbD), which we have worked on for 20 years, was designed for the sort of smooth ramp-up that accommodates learners at all levels.  The world-programming infrastructure within PbD developed the basic framework of programming animations, websites, and other reactive systems using a small set of constructs.  Bootstrap adapts animations programming in world to the needs of middle-schoolers and teachers who are new to computing.  In this ecosystem, a teacher can cover the core world-programming framework with the entire class.  Interested students can get into more advanced computing concepts by creating animations with richer features (multiple similar characters to get into lists, etc).  But these advanced students are still in the tools and approach that the teacher knows, which makes for a smoother curricular experience all around.

Some of our papers describe the underlying model, tools, and curricula.  There are some rough spots to the way we've packaged these curricula in the past, which we are actively working on.  But the fundamental idea and inspiration remains: our challenge as computing educators is to create tools that (a) accommodate a wide range of student abilities, and (b) are sufficiently within the teacher's comfort zone to be usable.  We hope others will join us in trying to meet this challenge.



Zen Sabbaticals

I've just finished reading Natalie Goldberg's 1993 memoir "Long Quiet Highway".  It focuses on her intertwined paths into writing and Zen, exploring the idea of writing as a form of practice (in contrast to traditional seated meditation).  Natalie's writing turns me inward, and perhaps not surprisingly, it brought my attention to sabbatical.

Fundamentally, sabbatical is about focus.  More importantly, the practice of focus.  Throwing oneself into just a single project isn't necessary (though the time to do that is nice).  Sabbatical is a logistical clearing of the clutter: no committee work, meetings, appointments, or grading.  It's a great justification for postponing reviewing work and other forms of service that slice and dice the days and weeks.  Your time becomes your own, and you're expected to do something significant with it.

And it can all go to waste if you see it more as losing others' demands on you without confronting your own time-wasting demands on yourself.  For the moment, I'm thinking mostly of distraction.

A true, internalized embrace of sabbatical would see me deeply exploiting my right to push the world away.  I'd read the university mailing list much less frequently, hugely slow down my response to email, and really reflect on (rather than simply check-off) things I was reading.  Then, the work would start. I'd pay attention, let distracting thoughts bubble up and float away, and look for the deeper insights that lead to great research and learning.  In other words, I'd approach academics as a form of Zen practice.

"Long Quiet Highway" brought this point back home: the real practice is in how you work and live.  If you can't practice focused attention when given the institutional sanction and support, how can you expect to do so once sabbatical is over and the flurry resumes?  Sabbatical is a sesshin (long sitting period) in disguise.  Make the desk a cushion.

Time to close the email.  Gassho, Natalie.