flickr photo shared by mrkrndvs under a Creative Commons ( BY-SA ) license

A few weeks ago, Steve Box put out a question on Twitter:

A lengthy debate ensued over the following days.

To be honest, this was a question that I had been thinking about myself for a while. Although I am a big believer of the power and potential of technology to make deep learning more doable, as Bill Ferriter would put it, that everyone should learn the same set of skills seems to me to lack purpose and clarity. I have taught different classes involving code over the  years, from Gamemaker to Lego Mindstorms. I have also had students explore different languages as a part of their own investigations. What stands out though in reflection is that everyone took something different from the process for everyone had a different purpose. The question remains then what does it mean for everyone to learn to code.

I wrote my initial post to outline my thoughts in the hope for some sort of debate. Sadly, although it continued in part on Twitter, the dialogue lacked depth. That was until Richard Olsen’s post. Moving beyond the usual explanations around workplace skills and the ability to build apps, Olsen suggests that coding is a core skill in the modern learning environment. Influenced by the seminal work of Seymour Papert, he asserts that it is coding and the digital workspace that allows students to learn real maths skills, to test hypothesis, to play with different situations. Going further, Olsen suggests that such a learning environment allows the following:

  1. Feedback-Rich Learning
  2. Reuse-Rich Learning
  3. Opinionated Learning
  4. Continuously Evolving Learning

What stood out to me was how this environment would look in many schools today?

For example, sites like GitHub and WordPress allow people to ‘fork’ code to make their own creations. These are only the tip of the iceberg when it comes to open source software. However, for a range of reasons, schools usually embrace locked down tools and software, such as iPads and learning management systems. Just as continuous evolution of curriculum is not always desirable in education, nor is the idea of students being able to hack programs for their own use. We only need to look at the case of iPads in California. Such decisions though come at a cost.

We are faced with the challenge of either being able to program or be programmed (to remix from Doug Belshaw). That is where we either control the environment in which we exist or allow others to control it for us. What though does this look like in schools? In a Prep class? When should students own their own domain? Is it enough to go through such spaces as Edublogs? Or should we be encouraging students to use such sites as Known or WordPress.org, which allow them to make their own changes to whatever they like.

So in the end, the real issue is not coding, rather it is control and the dilemmas around embracing modern learning. Like teaching inquiry without relinquishing curiosity to students, Do we actually do more harm than good in teaching code in an environment that ignores the opinionated and continuously evolving nature of coding. We then need to refocus our attention on pedagogy and the problem at hand before we start taking medicine for the wrong problem.


If you enjoy what you read here, feel free to sign up for my monthly newsletter to catch up on all things learning, edtech and storytelling.

A Response to @Richardolsen on Coding by Aaron Davis is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

17 thoughts on “A Response to @Richardolsen on Coding

  1. “We then need to refocus our attention on pedagogy and the problem at hand before we start taking medicine for the wrong problem.”

    Which begs the question how does anyone refocus their attention on pedagogy? I’d suggest the best way is just getting in there and doing it. I very much doubt any educator that isn’t trying to bring code to their students will discover (presumably purely intellectually) that pedagogically it is the best thing to do…

    • I guess my point Richard was that instead of focusing so much attention on the strategies, we need to consider the pedagogical beliefs at play? For example, I know people who teach blogging as a 21st century skill, but as they believe that learning is about getting through an essential curriculum, they believe it enough to have students post on paper to prove that they can produce a blog. I guess you could say that the code is hidden behind the paper wall.

  2. AI cannot develop software for you, but that’s not going to stop people from trying to make it happen anyway. And that is going to turn all of the easy software development problems into hard problems.

    Losing the Imitation Game/ by Jennifer Moore

    Jennifer Moore goes beyond the hype around so-called artificial intelligence to explain why LLMs are not the answer when it comes to developing software. The particular problem is that although they maybe able to provide snippets of code, they do not necessarily know, or understand, or comprehend anything about that data. They cannot do the heavy lifting associated with mental models. This can only be done by doing.

    Non-trivial software changes over time. The requirements evolve, flaws need to be corrected, the world itself changes and violates assumptions we made in the past, or it just takes longer than one working session to finish. And all the while, that software is running in the real world. All of the design choices taken and not taken throughout development; all of the tradeoffs; all of the assumptions; all of the expected and unexpected situations the software encounters form a hugely complex system that includes both the software itself and the people building it. And that system is continuously changing.
    The fundamental task of software development is not writing out the syntax that will execute a program. The task is to build a mental model of that complex system, make sense of it, and manage it over time.
    To circle back to AI like ChatGPT, recall what it actually does and doesn’t do. It doesn’t know things. It doesn’t learn, or understand, or reason about things. What it does is probabilistically generate text in response to a prompt.

    Losing the Imitation Game by Jennifer Moore
    For me, this takes me back to a post from Richard Olsen, in which he explains why coding is so important in schools.

    Moving beyond the usual explanations around workplace skills and the ability to build apps, Olsen suggests that coding is a core skill in the modern learning environment. Influenced by the seminal work of Seymour Papert, he asserts that it is coding and the digital workspace that allows students to learn real maths skills, to test hypothesis, to play with different situations. Going further, Olsen suggests that such a learning environment allows the following:

    Feedback-Rich Learning

    Reuse-Rich Learning
    Opinionated Learning
    Continuously Evolving Learning

    A Response to @Richardolsen on Coding by Aaron Davis
    Olsen’s post is one of those gifts of learning that comes up for me again and again, and is a reminder of the opportunities associated with connected learning.
    This all has me wondering about the debate around prompt engineering and how that may miss the point.
    “Doug Belshaw” in Language is probably less than you think it is | Thought Shrapnel (03/09/2024 06:38:53)

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.