I subscribe to a magazine called Hello World which is all about computing teaching and pedagogy. Last year, I read a message about a special issue, which was called the big book of computing pedagogy (BBoCP), and would I like to order a copy? I would, and I did.
What follows is a set of notes from that ‘big book’ (which is approximately 157 pages), beginning with the broad summary that is featured at the start of the book. I’ve then pulled out techniques and approaches that relates to the topic of physical computing. At the end of the post, I offer some reflections which may (or may not!) be useful.
Principles of computing pedagogy
What follows is a really high level summary, which begins on p.12. I’ve annotated key principles with some of the pedagogies and ideas that appear to get to the heart of a particular principle:
Lead with concepts: use concept maps, create learning graphs.
Structure lessons: adopt a scaffolded approach, apply universal design, use frameworks.
Make concrete: socially and culturally relevant pedagogy, learning through making, and manipulatives with computing.
Unplug, unpack, repack: semantic waves, go unplugged (don’t use a computer).
Work together: peer instruction, pair programming, collaborative problem solving and programming.
Read and explore code first: code tracing and read before you write.
Foster program comprehension: the block model.
Model everything: worked examples and live coding.
Challenge misconceptions: addressing misconceptions, use metaphors, tackle naïve conceptions.
Create projects: project-based learning.
Get hands-on: physical computing.
Add variety: apply variety in teaching and assessment, consider using art and storytelling.
Learning through making
Following on from the notion of culturally relevant pedagogy, is the idea of learning through making. This approach is about building things as a “way of learning and understanding the world” (p.36). Some key headings to note are: from concrete to abstract, affective learning (which is related to experiential and feelings based learning), and learning as becoming.
Learning through examples
A couple of related pedagogies that are worth emphasising are: the importance of worked examples, live coding, and the use of videos to demonstrate principles and ideas. I’ve highlighted these approaches with respect to physical computing since ‘watching and learning’ is an undeniably helpful approach when working with ‘bits of computers’, whether those bits are bits of physical equipment, or bits of code.
The BBoCP describes project-based learning as “an approach to teaching computing in which the learning activities are organised around the design, creation and evaluation of a digital artefact”. In some cases, this digital artefact could be an element of physical computing – or, it could be a bit of code that solves a particular problem. Examples of potential problems are mentioned within the book, and this leads me to an important reflection, which is: the problems chosen should be inclusive, and be attractive to different groups of students. This links back to an important point about inclusive pedagogy.
There is a whole section about physical computing, which can be found on page 130. In addition to sharing a reference to a useful taxonomy of physical computing devices, four benefits are highlighted: “it provides a holistic experience …, it develops broader skills, including collaboration and design and prototyping, it connects to subjects beyond computing” (p.131). Some practical pedagogic tips are shared, which include provide interesting themes, integrate creative methods, and provide scaffolds. A reference to further reading, a doctoral thesis by Przybylla, entitled From Embedded Systems to Physical Computing: Challenges of the “DigitalWorld” in Secondary Computer Science Education is shared.
In education theories can be thought of tools to understand and think about learning. In turn, they can be used to guide particular activities, or underpin pedagogies. What follows is a list of some of the theories that I’ve identified. I haven’t picked out everything, since there can be, of course, debate about what is (and isn’t) a theory:
Cognitive load theory (CLT) (p.20): learners have a limited working memory, which means that educators need to bear in mind when they introduce and teach new principles to learners.
Legitimation Code Theory (LCT) (p.46): help learners to move from being novices to experts.
Other theories (and theorists) that have been mentioned include the notion of the mental model (an understanding how something works), the work of Piaget (stages of development) and Papert (constructivism).
In computing, there are loads of software frameworks. In pedagogy, there are also a fair number of pedagogic frameworks. Think of a framework as a set of ideas that are potentially useful, and less formal than a theory. Theories can be used to potentially predict, whereas frameworks can be used to make sense of something.
Here are some of the frameworks that are highlighted in the BBoCP, along with a summary of some of their key elements:
The PRIMM approach (p.22): Predict-run-investigate-modify-make (Primportal.com); a series of steps in a lesson.
UDL framework (p.26): multiple means of engagement, multiple means of representation, multiple means of action and expression.
Four Cs of the 21st-century learning framework (p.28): coding and critical thinking, coding and collaboration, coding and communication, coding and creativity.
Arena Blended Connected (ABC) (p.30): acquisition, collaboration, discussion, investigation, practice, discussion.
Misconceptions to understanding science (p.104): preconceived notions, non-scientific beliefs, conceptual misunderstandings, vernacular misconceptions, and factual misconceptions.
Physical computing device taxonomy (p.131): a taxonomy is an ordered set of categories. Hodges et al. (2018) attempt to make sense of a range of different physical computing devices that can be used by students.
Read, act, model and program (RAMP) (p.146): a pedagogic framework that draws on the use of storytelling and children’s literature.
Other concepts, which might fall outside of the category of a framework, includes the notion of the metaphor.
A good question to ask is: what is the difference between a model, a framework, and a theory? In some instances, a model can be a theory, in the sense that it can help you to understand something, but might lack an element of predictive power. Another difference is that a model is more descriptive, whereas a theory (in an educational sense) can be more interpretive.
A model is different from a framework in the sense that a framework allows you to ‘do things’. A model, on the other hand, can help you to understand. All these, of course, link to and connect with pedagogy, which is what you do when you teach.
In the BBoCP, the following models that are mentioned:
The Block Model of program comprehension (p.79; p.86): this splits programs into four levels, which are (1) atoms, (2) blocks, (3) relationships, and (4) macros structure. It is interesting to compare this model with something called the Stores Model of Code Cognition (PPIG.org).
What I really like about this magazine sized book is that in addition to being really accessible, it contains very clear references to research articles that underpin the ideas that are presented. Each of the pages are complemented with a set of hyperlinks, which often takes readers directly to the relevant article. I also really appreciated that it presented all the ideas (which were a mix of practical and theoretical articles) using a set of helpful principles. In addition to the helloworld.cc website another site to look at is csedresearch.org. If you’re doing research into CS education. When it comes to the topic of physical computing, I was struck by a few things: the taxonomy and the link to a dissertation on that explores physical computing and secondary school teaching.