Building Solutions Beyond the Code

Solutions involve connections and interconnections, not just code

A reflection on going beyond coding when thinking solutions and the Digital Technologies curriculum.

I attended an eLearning session recently where the participants were asked to place ourselves along a continuum in regards to their confidence in regards to the Digital Technologies curriculum. At the far end of the continuum was the idea of ‘coding your own reporting program’. The conversation the ensued was intriguing. “That is not me … I could never do that … You need to know a lot of Excel for that.” To me this only tells part of the story associated with digital technologies.

When you look at something like a reporting solution, we need to start by addressing the problem being addressed? This is why there is a focus on design thinking in the curriculum. A part of this process can be identifying what other solutions already exist. If there is already an application that addresses the problem you are trying to solve, why would you start again?

Alternatively, it is important to work out if there is something you can start with and build upon. Maybe a solution that you have found only addresses a part of your problem, but offers a starting point. This may include some pre-existing code that can be adapted. That is the power of a open platforms like GitHub and Scratch, where you can not only access other people’s code, but share your own iterations.

Another twist is where you might develop a first iteration and then bring others on-board. At some point a solution may benefit from incorporating other skill-sets, perspectives and resources. For example, at some point Gmail went from being somebody’s 20% project to something being developed by a team. In an interview with EdTechCrew, Adam Bellow reflected on the development of eduClipper. After some initial work, he outsourced the creation of a new platform to an outside provider. He then took this iteration and refined it further. This is not to say Bellow could not code it himself, but when we get to systems thinking, there is sometimes more efficient and effective ways of working.

So when we ask the question, can you create a reporting solution, maybe we should ask why are we doing it and has someone else already laid the groundwork? This is something that comes through in Doug Belshaw’s work around digital literacies, such an activity is bigger than whether or not you can code.

So what about you? What has been your experience of coding? Comments welcome.

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.

Engaging with Algorithms


“Productivity” by mrkrndvs is licensed under CC BY-SA

I was in a session recently unpacking GSuite. The discussion was around the Explore Tool, something Google added last year. Basically, it provides a range of suggestions based on the information on the page. During the conversation, someone remarked that they wished that the Research Tool was still there. For those who may have forgotten, the Research Tool was a small window added to the side of the screen which provided a number of ways to find content and information. It offered several types of results to sort by, including, images, quotes, scholar, quotes and dictionary. All of these aspects are available in a new tab via the Google Search Page or via Google Scholar.

The real problem as I see it is that Explore is not the Research Tool. Where the Research Tool was the same no matter what applications you go to, the Explore is dymanic. It provides different responses for each application it is attached too (only Sheets, Docs and Slides at this stage), each time and all automated. As Google explain,

Explore uses Google smarts to help you create amazing presentations, spreadsheets and documents in a fraction of the time they used to take… so you can get on with what’s most important in your life. It’s like having a researcher, analyst and designer by your side.

It is Google using machine learning to help people be more productive.

Google have a long history of killing off particular services. Some because of their niche use, while others because they no longer fit with the company’s goals and vision. I would argue that the reason that the Research Tool was removed was that it did not fit with Google’s focus on automated productivity. For some this is a reminder that Google’s prime focus is not learning, but I think that it is a reminder of who is in control of our platforms. That for me is one of the biggest differences between a platform like Blogger as opposed to an open sourced solution like WordPress. We are often dependent on others for infrastructure, applications and subsequently our ways of working.

With little sway over the design of applications such as Docs and Slides (other than sending in suggestions via the help menu), what I do have control over is appreciating how the various parts, such as Add-ons and the Explore tool, work. This is a particular challenge with the Explore Tool.  Whereas it was obvious Research Tool did, the Explore Tool is not so clear, that is until you open the hood. As I was looking through Kin Lane’s extensive investigation into Google’s application programming interface. I noticed a correlation between the options offered by the APIs and what was showing up in the Explore Tool. The Explore Tool could therefore be described as Google exploring what machine learning can provide when combined with APIs. This offers a useful insight into the possibilities of little bits of the web working together. 

To me this is what is at the heart of the current digital technologies push. Fine, students may use apps to learn how to code or schools might set up their own makerspaces to foster creativity and play, but more than this what is needed is a deeper understanding of the world that they are a part of, the algorithms with live by and computational thinking involved. Productivity is not always productive when it takes away the understanding and leaves us with a tool instead. This is the risk we face when coding becomes too complex. What we can appreciate are the parts and and how they might work together.

So what about you? What have your experiences been? As always, comments welcome.

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.

Copying the Web

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

I have lost track of the amount of applications and programs that are sold as the solution to getting students coding. The problem that I have with many of these is that they lack purpose and authenticity. One answer is to ‘Steal Like an Artist‘. Rather than learning from scratch, start by reusing someone else’s code in a new way. Two tools that help with this are Google Chrome Developer Tools and Mozilla X-Ray Goggles.

Google Chrome Developer

Google Chrome Developer Tools are designed to provide feedback to programmers and help with the debugging process. You can access it within the settings of the desktop version of Chrome, as well as with the keyboard shortcut Use Ctrl+Shift+I (or Cmd+Opt+I on Mac). Going beyond applications like Built With, which provide insight into the parts of a website, the Developer Tools provide insight into the code and the way it is put together. It provides a side-by-side view which provides into different parts of the page. Beyond the design process, it is useful when trying to lift the bonnet to see the code inside. Doug Belshaw shares how he uses the tools to get links to photos that are baked into the site.

Mozilla X-Ray Goggles

Along with Thimble and the Web Literacy Framework, X-Ray Goggles allows users to explore the building blocks of the web. It runs via a bookmarklet that you add to the bookmark bar. Like the Developer Tools, the Goggles allow you to peek into the code that makes up the web. However, where it differs is its intent to provide the means to tinker with the code. Some examples of how this could be used include remixing the news to appreciate how information is presented (see Kevin Hodgson post on fake news) or changing names and details for privacy reasons. These makes can be published, which gives them a unique address or you can just screenshot the page. It must be noted that unlike the Developer Tools, which is built into the Chrome browser, you need to create an account to use X-Ray Goggles. For more ideas and information, check out the following teaching kit as well as this introduction.

Whether coding is or is not the literacy of the 21st century, it is important to appreciate that coding is not always about starting from nothing. Sites like GitHub and Scratch provide the means of repurposing code. However, applications like the Developer Tools and X-Ray Goggles allow you a different means of borrowing. At the end of the day, maybe copying is who we are.

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

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.

Coding, Literacy and the 21st Century

A response to Greg Miller

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

In a recent post, reflecting on a day spent with Code Club Australia, Greg Miller posed the question: Is coding the ’21st Century writing’? I have spent some time trying to gather my thoughts about this, however I seem to have more questions than answers. Here then are my fractured thoughts:

Is Scratch just Scratching the surface? There is a lot of discussion about Scratch and many other languages, but the real potential to me is what these applications allow us to program. Maybe it is controlling Sphero or linking to a Hummingbird Duo to add light and sound. Maybe it is creating a collaborative animation? This is when the true potential often comes to the surface.

Does Digital Literacies offer a better framework to discuss writing and the general notion of literacy in the 21st century? In his book, The Essential Elements of Digital Literacies, Doug Belshaw identifies eight elements which each play a part in making meaning:

  • Cultural – the expectations and behaviours associated with different environments, both online and off
  • Cognitive – the ability to use computational thinking in order to work through problems
  • Constructive – the appropriate use of digital tools to enable social actions
  • Communicative – sharing and engaging within the various cultural norms
  • Confident – the connecting of the dots and capitalising on different possibilities
  • Creative – doing new things in new ways that somehow add value
  • Critical – the analysis of assumptions behind literacy practises
  • Civic – the something being analysed

These elements do not represent a set definition though, rather they provide a way of talking about different literacies, with coding being one of these.

Are we creating problem solvers, rather than problem finders? Often coding is talked about in a methodical manner with the prime focus being to teach problem solving. This involves rolling out predefined teaching material. I wonder if this attention to following someone else’s instructions denies the experience of just making and supported in finding problems worth solving?

Is coding about writing or thinking? The adage that continually gets repeated from Seymour Papert is that, “You cannot think about thinking, without thinking about thinking about something.” Logo was created as a learning environment in which to test hypothesises, not necessarily a space to write stories. Maybe our notion of writing is ever changing and morphing, as demonstrated by the transliteracy movement. However, I am not sure if that means that simply coding equates to writing. I wonder if this takes away from Papert’s vision as outlined in Mindstorm?

Is programming, not writing, the 21st century writing? A lot of dialogue around Digital Technologies revolves around coding, but does this focus on the letters and numbers misses the real activity within all of this, that of programming? As Dave Winer suggests, “When people say that programming is ‘coding’ it sounds (to me) like turning language into Morse Code. Translate something literate into something transmittable.”

What will it mean to code in the future in an ever complex world? We speak so much about ‘coding’ as if it is a certain thing, but what will it mean to code tomorrow and the day after that? Although Gary Stager asserts that there has been little change to the mechanics of coding, there is discussion about neural networks being the future, while others suggest that it will be comparable to training a dog. One thing seems certain, we are going through some change. I am not sure how this impacts writing.

In the end, maybe coding is the 21st writing firm of writing? Like poetry, maybe every student should write code. One thing that is certain, coding as a topic of discussion provides more questions than answers. So what about you? Do you have anything to add to the discussion? As always, comments welcome.

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.

REVIEW: Program or be Programmed by @Rushkoff

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

So often the debate around digital technology and literacies seems to be framed around whether we should all learn how to code. As if simply learning a few lines would solve all the world’s ills. Although Douglas Rushkoff touches on this in his book, Program or be Programmed, his main focus is on what it actually means to program. For Rushkoff programming is closely linked to the art of writing, just as the creation of the alphabet focused on hearing and the printing press supported on a rise in reading. This programming as writing is not just about programming as an act of engineering, but as a liberal art. As Rushkoff explains,

Even if we don’t all go out and learn to program—something any high school student can do with a decent paperback on the subject and a couple of weeks of effort—we must at least learn and contend with the essential biases of the technologies we will be living and working with from here on.

This is an understanding of the operating system of the world we live in and the inherent biases that are built into the platforms and devices we use each and every day.

Rushkoff’s discussion is broken down into ten modern day commandments:

  • Time and the push to be ever present.
  • Place and the disconnection with the local.
  • Choice and the pressure to forever choose.
  • Complexity and the ignorance of nuance.
  • Scale and the demand of the global spread.
  • Identity and the digital self.
  • Social and contact as king.
  • Facts and the demand to tell the truth.
  • Openness and the importance of sharing.
  • Purpose and the power of programming.

Each bias is unpacked, providing examples and elaborations to support an ongoing dialogue.

What makes Program or be Programmed the best introduction that I have read on coding and the impact of digital technologies is that provides a considered point of view. It balances between criticism and praise for the modern world, with a clear hope for tomorrow. Although we may not all build our own social media platform or a search engine to match Google, we have a responsibility to be aware how such programs and platforms are influencing us. For as Gary Stager says, “technology is not neutral.”

For more information, listen to this interview on ABC Future Tense or check out the following clips:

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

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, 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.

Did Someone Say Coding?

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

A few years ago, when every second student was reading one of the books from the Hunger Games series, I was asked by a student whether I had read them. I explained that I hadn’t. Shocked, the student questioned how I, an English teacher, couldn’t have read them. I asked the student whether he had read Dostoevsky’s The Brothers Karamazov. Confused, he said no. I asked him, why, even though it was considered a classic text of the Western Canon, he had not read it? Surprise to say, the irony was lost on him and the conversation did not go much further. With a feeling of shame, I subsequently went off and read the whole series.

In many ways, I think that the debate over coding in the curriculum follows the same lines. Many call for its inclusion with little explanation why. Another thing to add to an essentialist curriculum. Often the debate is about what is being done and whether staff are adequately prepared, rather than clarifying why coding is even being taught and how we should actually go about it. The first conversation that we need to have though before all this is surely what constitutes coding.

For some coding signifies a bunch of characters used to make the web, others it is about making things happen, for some it is all about the app culture associated with going mobile, while for others it is deeply connected with the formulas, flows and algorithms associated with computational thinking. The reality is that coding means different things for different people in different contexts.

In a recent episode of the #2regularteachers podcast, John Pearce suggests taking our understanding of coding beyond the tool or application, instead considering it as a ‘way of thinking’. For example, rather than seeing a Raspberry Pi as a mini computer which allows you to play Minecraft, we need to consider the affordances that it allows, such as programming a camera to capture an experiment at regular intervals or detecting wifi signal to map free internet points around Australia.

For years when I taught robotics with Lego Mindstorm, I would spend weeks getting students to learn the intricacies of NXT before exploring the possibilities of making. This year I decided to skip the weeks of instruction and instead focus on just making. It was not long before students realised their limitations and dug into the possibilities associated with programming in order to improve their designs. With a purpose, they worked their own way through the various tutorials provided.

The challenge to me is to go beyond the question of instruction and understanding of different languages. Beyond debates about fitting it within an already crowded curriculum. Instead the focus should be on creating the conditions in which students are able to take action and create new possibilities. Maybe this involves Minecraft, Ozobot or Spheros, maybe it doesn’t. Most importantly it involves going beyond worrying about training or competency, as Ian Chunn would have it, and instead embracing the world of making by leading the learning.

So what about you, what does coding mean to you? What have been your experiences? Positive and negative. What do you see as the biggest challenge moving forward? As always comments are welcome.


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.