For a long time I’ve been a bit of a dabbler in a range of computer related fields. I did do some very basic programming at High School – which I enjoyed, but I don’t think I really pushed the envelope of what was possible – and I did a little bit more when I was studying engineering, but it wasn’t until I really got the chance to dabble in those areas that interested me that I developed a real interest in computer programming and computer science. Even now, I’d consider myself a dilettante rather than an expert – someone who knows a little bit about a lot of things, rather than very much about anyone thing. In my time, I’ve played around with Python, HTML, CSS, JavaScript, Ruby, PHP, Objective C and Swift (and probably a couple more that slip my mind). In addition to that, I’ve explored some of the coding and programming-adjacent fields, such as 3D printing and scanning, physical computing, Arduino and Rapsberry Pi. Like I said, I’m a dabbler.
However, one thing that I wasn’t aware of was how the development of some fields of computer science is directly linked to the development of instructional design and learning design (at least in Europe and North America). In some ways, this makes sense, I guess: the growth in computers and technology has a similar trajectory to the growth in the interest in the ways that such tools might be best used in the service of education, but perhaps what wasn’t clear to me was the way that computer programming has influenced so much of what we consider to be educational theory and philosophy.
A good example is the discussion about Learning Objects and Object Oriented Programming. Many computer programming languages now are Object-based – and it is a paradigm that is introduced early on in most programming courses. For example, Python, which is often a first language for beginners, is object based. That is, the language uses objects to represent both the qualities of a thing (through properties) and the behaviour of that thing (through methods). These objects interact with each other. Often, the objects are described as concrete things – for some reasons, many tutorials use cars as an example. For example, a car might have a colour property, and a number of wheels property, but also an accelerate() method, or a brake() method, and so on. More than one copy or instantiation of this object can be created, and the objects can interact with each other. As the programmer gets more expertise in understanding this paradigm, the objects become less concrete, and more abstract (and possibly more useful from a programming sense).
I am conscious of how terribly inadequate this explanation is, but the definition is less important than the purpose of objective oriented programming. The idea behind the development of this paradigm is to create reusable, multi-purpose ‘things’ – the objects – that can be used for a variety of different purposes within the program. Object Oriented Programming really started to be important in the 1990s and 2000s – and that was about the same time that it started to influence theorising about education via the idea of Learning Objects. There is some discussion about who came up with the term learning object and when they came up with it, but it is most commonly attributed to Wayne Hodgins (1994). The idea was to create a bundle of educational artefacts that meet a particular learning object. The key part of the learning object is that it is meant to be able to be used in a range of different contexts – that is, just like an object in object oriented programming, once it has been instantiated, it can be used in a variety of different ways and places. Of course, learning is not programming, and some people, like David Wiley, have criticised learning objects on the basis that the lack of context incorporated into learning objects effectively limits their usefulness. I’m not entirely convinced by that argument; I think there are elements of this idea that are useful, and I have seen teachers making use of resources like Khan Academy videos and assessments in such a fashion.
Another example, a little more recent, is the correlation between open source software and open educational resources. The links here are even more explicit. According to Martin Weller (2018), this really took off in education in about 2002, when David Wiley started talking about Open Educational Resources (OER). This was based on the well-known software idea of Open Source – a system of licensing that meant everybody – and anybody – could edit and change software, seeking to make use of collaborative efforts to improve it. Despite the efforts of Big Software, open source continues via repositories like GitHub. In a similar fashion, OER seeks to provide creative commons licenses for the use, editing and reproduction of learning materials – such as textbooks. Interestingly, OER continues to go from strength to strength- unlike learning objects. Weller (2018) suggests that this is because OER tapped into existing practice, while learning objects were too removed from teachers’ practice to be useful.