On 7 September 2018 I took a break from timetabling and interviewing tutors for a web technologies module and visited a workshop called the Psychology of Programming Interest Group, which was being held in the Art Worker’s guild, London. The workshop took place in an amazing room which was packed with portraits.
Due to work commitments, I was only able to attend the morning of the 7 September. Due to the shortness of my appearance, I wasn’t going to do a blog, but I was reminded of the event (and one of the presentations) due to an email that was sent to me by the Association of Computing Machinery (ACM). I’ll explain why later in a moment, but what follows is a very quick sketch of what happened in the bit of PPIG that I attended.
Growing Tips, Sprawling Vines and other presentations
The first presentation that I saw was by Luke Church from the University of Cambridge. I noted down the words “what does it feel like to work with the materials of notations?” (which, of course, refers to the idea of working with programming languages). Luke has previously introduced me to languages about chorography. This time he was talking about a programming language called Autodesk Dynamic Studio. He also mentioned a term that I hadn’t heard of before: diachronics in notation design; the link between time and language. I also remember that Luke showed us a series of animations that illustrated the development of software systems.
Two other presentations followed: one was about different forms of data representation, and another was about exploring how whether it may be possible to detect programmer frustration using unobtrusive sensors, so a teaching environment might be able to provide hints and tips.
Conjuring Code
PPIG is often a workshop that produces surprises; this workshop was no exception. The next part of the workshop was presented by two magicians: Will Houstoun and Marc Kerstein. I noted down the phrase: “what kind of tricks can you do in the digital space?” I learnt of a topic called ‘magic theory’. Digital magic could be considered as a combination of the analogue and digital. Code can be used to create a magic effect, or ‘magic’ could influence code in a way that isn’t clear to the viewer. I noted down an important point that was: “the magician goes to an unfeasible amount of effort to make things work”.
Explicit direct instruction in programming education
The final presentation I attended was by Felienne Hermans. I made a note that Felienne has a PhD in software engineering but had to ‘teach kids in a local community centre’. I also noted down that she said ‘as a learner [of computing], I wasn’t taught in class…’ and also said that she didn’t appreciate how important syntax was, and that the kids in the community centre were struggling with the small stuff.
To learn more, Felienne asked an important question: ‘how do we teach other things?’ such as reading and mathematics. This question led her to the Oxford Handbook of Reading, where she uncovered different schools of thought, such as the phonics approach vs the whole language approach of language learning. In maths education, I also noted down the dilemma of explanation and practice versus exploration and problem solving. This takes us to another important question, which is: where are the controversies in computer science education? In other words: “let’s start a fight”.
During Felienne’s presentation I noted down a few more things, such as “skills begets ideas”, and a comment about the “rote practice of syntax” which is something that I had to go through as a teenager when I copied out programs that were printed in computer magazines. (An activity that helped me to develop ‘moral fibre’). Other comment that I noted down was: the “sensimotor level is syntax”, and “motivation leads to skills”.
After the event…
Two months after the event, the following note appeared in my inbox, as a part of the ACM circular that I mentioned earlier: “evidence is growing that students learn better through direct instruction rather than through a discovery-based method, where students are expected to figure things out for themselves. In general, it is possible to define direct instruction as explanation followed by a lot of focused practice. . . . In fact, direct instruction works especially well for weaker pupils. . . . In short, they should teach students directly and reduce the amount of design and problem solving that they ask students to do."
This paragraph that relates to a Communications of the ACM blog by Mark Guzdial, Direct Instruction is Better than Discovery, but What Should We be Directly Instructing? (cacm.acm.org) This also relates directly to a blog by Felienne, Programming and direct instruction (Felienne.com)
Reflections
I really liked what Felienne said about looking to other subject areas for inspiration. As a doctoral student, I remember gate crashing a tutorial session (with permission) about the psychology of reading. The group wasn’t looking so much at how to teach reading, but more at the detail of the cognitive processes that guide reading (I was studying the area of program comprehension at the time). I also agree with her point of having a discussion or a debate about approaches to teaching and learning of programming.
When I wrote this blog, an interesting seminar entitled “The Computing Education Revolution in England: Four years on” was being hosted in the OU school of computing and communications. The seminar related to research into the recent changes to the computing and IT GCSE curriculum. This coincidence implicitly emphasises how important it is to think about not only what is taught, but also how that teaching takes place.