Artificial Intelligence – is coding like teaching? It depends…
January 26, 2014 4 Comments
In a former life I was a software developer. I designed algorithms and wrote computer code for a living. I had to learn to use the language that was most appropriate to tell the computer how to do the task I wanted it to do. I had to think like a computer, even when the solution might seem counter-intuitive. I had to be creative, and literal, for the computer does not know what you are trying to make it do. I had to ensure that information was stored correctly in the computer’s memory, and that it could be accessed when needed. I had to be careful to ensure that any problems the computer encountered while processing my code, were handled in the most appropriate way. I had to correctly link to functions that other developers had written to achieve the outcome I wanted from my program.
This morning I posed myself a question:
What makes programming a computer and teaching a child different?
I realise the answer can be simply reduced to the words: many things. I’m really not suggesting that programming a computer and teaching a child are the same, however the paragraph above has so many analogies bursting out of it, that I felt that comparing the two disciplines might be a useful angle to follow as I develop my teaching.
Analogy 1. Code Dependencies
On Saturday 18th January, I attended Laura McInerney’s Touchpaper party at the Institute of Education. Michael Slavinsky led the group discussing problem 4 which asked the question: What determines the complexity of a concept?
Knowing I would be joining this group, my initial thoughts were added to the post above as the following comment:
I think an appropriate way to establish how complex a concept is would be to analyse the network of dependencies the concept has. The more dependencies, the more complex the concept is as it relies on a greater number of previous concepts.
We must be careful not to conflate complexity with complication (i.e difficulty in understanding). They are different things: A student might find a simple concept complicated (difficult) where as his peer finds a more complex concept uncomplicated (easy). I expect how complicated a student finds a complex concept will likely depend on how clear their understanding is of the dependencies.
A dependency in computing helps describe how different parts of a computer program are related and how the different parts of code should be processed by the computer and when. It is important for a programmer to understand the dependencies in order to effectively achieve their goal, but it is also vital for a computer to be able to process these dependencies effectively if it is to carry out the instructions given in an effective and productive way. There is clearly a link to this and the way we teach concepts to children. We scaffold, we build on prior knowledge, we link ideas. So our Touchpaper group concentrated on the idea that it might be possible to define a concept’s complexity in a similar manner. We also explored whether this may also help teachers develop their understanding of the order that topics should be taught (Michael has written about this in his reflection already.)
Here is a very simplistic first draft of the idea that I shared on the day, a basic concept map looking at Newton’s 3 Laws of motion.
Not only are these concepts connected but they are also connected in different ways.
- Linguistic dependencies – concepts might be described in different ways.
- Numeric dependencies – concepts that rely on a mathematical relationship.
- Intuitive dependencies – concepts that have a link that might be counter-intuitive (or vice-versa blindingly obvious).
- Multiple theories – concepts that are described by different competing theories, both valid or invalid.
- Logical dependencies – concepts that require a logical step.
- Domain dependencies – concepts that are taught in another subject perhaps (e.g. Biology and P.E.).
- etc
It seemed plausible to us that these links can be analysed and processed in such a way as for a teacher to be able to arrive at a value that describes how complex the topic is and to be able to use the map to help them plan an effective scheme of learning that will cause the concept to be less complicated for students to learn (and teachers to teach).
We are still working on much of the detail in the group and will have more to share in the coming months. But I wanted to blog the initial thoughts and hope to read some insightful (or indeed inciteful) comments and suggestions.
Other analogies
My intention is to use this idea of the computer coding model to explore other areas of my teaching and I will explore these in future posts including:
- memory
- logic
- scope of variables
- language of instruction
- …
I think this is a good place to start. Programming and working with computers is probably the only area where taking a short cut in thinking always results in failure. In all other areas we tend to look for short cuts and take intuitive leaps; which might be dangerous at this stage of investigating such a complicated subject. Thinking along the lines you outline above stands a better chance of getting the foundations of the thinking right, I think. There will come a time when the limitations of the approach will require a movement away from it, but until that point is reached…..
Thank you for the comment.
The very fact that I’ve already started modelling this in a data structure has highlighted limitations in this approach, however by being pragmatic and not going down the rabbit hole of the minutiae of conceptual detail leads me to conclude that, so far, this is technically possible. More to follow.
I also think coding is a brilliant way of testing logical flaws in arguments. I must admit that I arrived at the TouchPaper party interested in your question (#4) FAR LESS than any of the other questions because it seemed so detached from classroom application. But eavesdropping on your conversations made me realise the analogies between determining complexity and devising pupil assessment. As a side-interest to my main research I spend a lot of time thinking about how we can exploit cutting-edge computing advances to run pupil tests (long ones, short ones, summative ones, formative ones, multi-choice, short answer, essay, optional questions, etc…) that allows us to constantly update our ‘priors’ about what sort of educational trajectory a child is currently on. Seems crazy to base our GCSE predictions, for example, on one-off KS2 and CAT scores. Complexity is a more ‘complex’ concept than question difficulty, but question difficulty is an interesting starting point to think about.
Pingback: Touchpaper Problem #4: Complexity and the Common Core (Pt. 1) | Ready for the New World