Teaching students to code


As a digital technologies teacher, one of the principal skills that I need to teach students is how to code. The WA curriculum deliberately has a very broad interpretation of teaching coding focussing on the general principles to help students develop crucial problem-solving skills rather than mandating a particular language. This is great in that it provides an opportunity for teachers to select the language they are comfortable in and as technology advances, teachers are able to keep up with industry standards without needing to wait for the curriculum to be updated. It can, however, be daunting to select the best language to use to educate students given that there are so many options available.

In my first semester of teaching, I thought that Year 8 students would engage with HTML, CSS and Javascript given that it would allow students to create their own websites. I embarked on using Khan Academy to teach the basics of these languages but quickly discovered that most students were struggling significantly with the format of the HTML and CSS and how to implement it to create a web page with content. This meant I was not able to progress to the Javascript component of the course which is where the majority of the curriculum components are taught.

Some of the issues with teaching HTML/CSS and Javascript were access to an appropriate user interface that would give students adequate feedback and being able to see student progress in a meaningful way to capture misunderstandings early.


For my second semester, I began to research alternative options. I reached out to other teachers through professional networks on social media such as Teachmeet WA, ECAWA and DigiTech WA. My colleagues suggested I look into Grok Learning. I had used Grok Learning during my university studies when I mentored students competing in the NCSS Coding Challenge at Ashdale Secondary College. When I had started teaching, I had looked into it but found the cost was prohibitive for the number of students at our school.

Luckily, the Australian Government, as part of their focus on STEM education had provided funding for students in years 3-8 to access certain challenges for free. I researched the available challenges and determined an appropriately sequenced program of work to introduce each of the topics. The Grok Learning interface allowed me to have access to student progress and to see where they were having issues. For example, the following screenshots show what a teacher can see about a student in Grok Learning.

The teacher can see how many times a student has submitted an exercise and can see whether they have submitted it correctly, if they are having issues or if they have not even attempted the exercise. If a teacher can see that a student is having difficulties, they are able to click into the exercise and see it from the student’s perspective.

This means that you can see what the student currently has in the code window and what errors they are receiving. You can also look at what the student has submitted previously. This is helpful in determining what kinds of fundamental misconceptions a student may be having.

I also began having students complete a short survey at the end of each lesson where they would rate their effort and achievement. I then compared this with what I was seeing in the Grok backend to determine if students were honest with themselves. I started to chart the correlation for them between effort and achievement but ran into some issues around the fact that some of the later exercises in Grok were more complex and therefore naturally took more time to complete so instead began having conversations with students who were identifying that they were not putting in effort or who had high effort but felt they were not achieving in their self-rating.

I took the opportunity to communicate with parents about what we were learning in programming by sending an email midway through the course to parents with a progress score as well as at the end when we were at the completion of the exercises.


As a result of implementing Grok Learning, I discovered that students have some fundamental issues with understanding the concepts of variables and input. As such, I have modified the way that I teach these concepts. I now spend a lot more time on these particular concepts and have introduced a variety of teaching strategies, such as the London Computing Variable activity and the use of a forced analogy activity to help students solidify their understanding.

I was also able to differentiate the teaching of this topic more effectively as I could identify groups of students struggling with particular concepts and also find those who were finding the course very easy. I was then able to provide extension work for some students and small group instruction on particular concepts for others.

The consistent use of Grok Learning across our entire cohort in Year 7 and 8 made it simpler to ensure we were making consistent and comparable judgements regarding student learning across our learning area. In the Year 8 course, we follow up with an in-class test to confirm that students have consolidated what they were learning through the exercises.

By engaging with parents and sending an email with the progress score, parents were able to become involved in their child’s journey of learning to code if they chose. Many parents took up opportunities to send their children to additional support sessions I provided before and after school as well as engaging with me via email for help.

As a result, more students are achieving better results in the Year 8 programming course than they were when I first began teaching and we are seeing an increase in the number of students choosing coding as a subject in Year 9 and beyond.