Developing a sense of programming

By Alex Hadwen-Bennett. Posted

IET Photo by Jonathan Banks

Originally published in Hello World 20: Systems and networks, Jan 2023. All information true at the time of original publishing.

Alex Hadwen-Bennett shares some key findings from his PhD research exploring how visually impaired learners develop their understanding of programming concepts

My recent research has explored how visually impaired learners develop an understanding of key programming concepts when working with physical programming languages such as Code Jumper. In this article, by considering the processes through which these students become increasingly sophisticated programmers, I also explore the implications of this research for how we view progression in programming for all learners.

My research drew on Vygotsky’s distinction between an individual’s sense of a concept and the externally defined meaning of that concept ( The meaning of a concept is culturally defined and usually relatively fixed, whereas sense is unique to the individual, shaped by their experiences, and relatively fluid in nature. In my work, I demonstrated how visually impaired learners develop their own unique sense of programming concepts, shaped by a variety of factors, including their experiences, programming tools, and activity design. A learner’s sense of a concept may differ from the agreed definition, but, nonetheless, traces of this definition are expressed in actions, gestures, and words.

The role of tools

The programming tools learners use when developing their sense of a concept become a part of their sense. It could be argued that when a learner transitions to a different programming tool, for example, when moving from a block-based to a text-based language, they simply leave the old tool behind, like a scaffold that can be taken away. My research suggests that, in reality, the original tool remains a part of their sense. This was demonstrated in my research through learners’ use of gestures which emerged during their interactions with the original tool. For example, when answering questions about repetition, many of them produced a looping gesture, seemingly influenced by the form loops take in Code Jumper. The re-expression of these gestures indicates that learners were drawing upon, or even re-enacting, the original tool when they applied their sense to the new tool. In this way, one set of programming tools does not replace another; rather, the introduction of new tools seems to enrich a learner’s sense of programming concepts.

With this in mind, we need to be careful how we frame different tools in relation to each other. For example, there has been much discussion regarding the transition from block-based to text-based languages in recent years, with the implication that block-based languages are less sophisticated. This could lead learners to believe that the sense they developed when using a block-based language is less advanced. Different programming tools have different strengths, and different types of problem can be solved with different tools. This does not necessarily mean that a particular tool should be considered more advanced than another; rather, they have different features that make them more or less suitable for certain types of problem.

My investigations have indicated that it would be beneficial to give learners access to a range of programming representations to work with, to create a more inclusive environment in which to learn to program. In such a scenario, you may have some students working with physical representations and others working with visual or textual representations. Physical representations in education are often associated with younger learners or those with special educational needs. However, there is nothing to suggest that sense developed using a physical tool is any less sophisticated than that developed using textual representations. We therefore need to consider carefully how we frame such tools.

Expressions of sense

My research demonstrated that visually impaired learners can express their sense and understanding in numerous ways, many of which may not usually be considered when evaluating a learner’s progression. In programming education, the successful creation of a program to solve a given problem is often used as a measure of progress. In addition to this measure, though, the learners in my study also employed gestures that indicated their understanding of the flow of control within the program. For example, they touched each instruction in turn, in the sequence in which they would be executed. They also demonstrated their understanding by making connections to their experiences from other domains — for example, one learner compared selection to a junction on a railway track, while others made a link between nested loops and multiplication.

The expressions of sense that learners produce will vary, and the form of the programming tool they use, whether it be physical, visual, or textual, will influence them. I recommend that computing educators remain open-minded regarding how their learners may express their understanding of a concept. Educators should not assume that learners do not understand a concept if they do not express their understanding in the expected, conventional ways.

The importance of affect

It is also important to consider the role that affect (feelings or emotions) plays in the development of sense. Teachers often consider the importance of creating engaging activities to improve motivation. However, my research suggested that affect should not be reduced only to motivation; rather, the feelings we experience during the development of our sense of a concept become part of the sense itself. As discussed earlier, the tools used in the development of the sense of a concept can be re-enacted internally when the learner encounters the concept in the future. In a similar manner, the affect associated with the activity of programming can also be re-enacted, impacting on the learner’s engagement, confidence, satisfaction, and enjoyment.

A key influence on affect in learning situations is problem design. In my study, it became clear that when we design problems so that learners can relate to them, they are more likely to persevere in the resolution process, even when quite complex programming techniques are involved. When they were building something they cared about, they frequently treated false steps as amusing, rather than frustrating, and they remembered their results with pleasure and even pride when they re-encountered similar challenges. The role that affect plays in sense is therefore continually evolving as the learner engages in new activities.

Perhaps these results can also apply to teachers; their unique sense of a concept will have emerged from their own experiences. My research led me to reflect on my individual sense of different concepts and how I felt about the process by which I had learnt them. This has impacted on my teaching. As I reflected on the affective side of my own sense of a concept, I became more aware of how aspects of the negative and positive experiences that accompanied my own conceptual development were re-felt as I taught the concept in question. I would recommend that such reflections might play a fundamental role in the development of inclusive approaches to programming.


Free - UK only

If you’re a UK-based teacher, volunteer, librarian or something in between, we'll send each issue free to your door.



Just want to read the free PDF? Get each new issue delivered straight to your inbox. No fuss and no spam.


From £6

If you’re not a UK-based educator, you can buy print copies from our store.