# Building a successful coding culture

Worldwide, there are a large number of governments and independent programs that are pushing coding as the skill set to learn for the future generation. It is obvious that over the last 15 years, we have gone through a cycle from a core set of students interested in computing, to every student being able to do some form of computing skills through the *Digital Education Revolution*, which has caused us to cycle back to an even smaller core cohort of students. One only has to look at the statistics from the Board of Studies senior courses to see this trend, as now all students seem to have the “basic skills” that they need to use technology.

The question remains that as we app-ify education along with our lives, are students really learning the skills that they need to be able to work effectively in their jobs, or are we creating a generation of Facebookers and Instagramers? Although there seems to always be “an app for that”, there will always be a point where you need more control over the required output than the app can give you. This leads to the question: How do you build a successful coding culture, where students have a programmer’s, rather than an app-user’s mindset?

At Parramatta Marist, coding is taught in every year group, implemented in different subjects throughout years 7-10 with progressively more difficult concepts developed throughout the years. For example, in Year 7 students program a game to solve the driving question of “How do video games use Maths?” This program included a focus on iterative problem solving, where students were encouraged to follow a modified Polya’s problem solving process in order to encourage problem solving ability as well as just the ability to code.

Working under the New Tech network method of Project Based Learning, students are first introduced to the project through an entry document to engage students in the project idea. The entry document in this case, was experiential, where students were set the task of going through three different stations, each set up with a different programming device.

Students rotated through the following activities: Racing an Ozobot through set activities, followed by programming their own ozobot mazes, using Spheros with the Tickle app to get the Sphero through a maze and finally, playing Geometry Dash on Scratch using a Makey Makey.

This experience was designed to get students engaged into the project, and give them enough experience to elect which technology that they wanted to use.

This was scaffolded through a Google form, where students had to rate their experiences, talk about what was difficult within that programming device, and finally, select which device that they wanted to use for the project. The excitement of students was overwhelming, and it is interesting to note that although the students were not explicitly taught anything on that day, every student came away with a positive and successful experience of programming.

Following this entry document, students were placed into groups based on a mix of their preferences, their previous work in the course, and their mathematics marks to ensure that the project was differentiated for different student abilities. The students were then introduced to each programming language using the same geometrical context: Can you get your device to draw a square?

This introductory lesson saw students engage with the language, and all students build a simple program using iteration. All students were successful in this, through purely experiential learning. Teacher interaction came down to helping students understand the problem by “stepping it out”on the floor, or for assisting them in problem solving why their projects were not working.

As part of the PBL process, students then work out what they “Know”and what they “Need to Know”, and as a class this list is developed. The teaching process is guided by this list, which is revisited and refined throughout the project. This allows students to design their game and then determine what objectives the game needs to meet. The “Need to Know” list now includes items such as “How do I create a score” and “How do I make it do something when it gets to a point”, which leads to the concepts of variables and selection statements. This gives the students the impression that they are guiding the teaching within the project, and ensures that they are exposed to knowledge at the point where they need to know it, which allows them to apply their knowledge at the point where they learn it.

The final project ends with students presenting their game in an exhibition to parents and the community in the school hall. In this “Maths in Video Games” exhibition, students explained how their game used geometry in order to create or play the game.

This unit of work begins a structured program, where students from years 7-10 participate in curriculum based coding experiences every year, progressing in difficulty up to year 10. These are taught through the TAS, Science and PDHPE faculties, where every student studies integrated projects from 7-10. With the support of these departments, students then study 100 hours of programming based courses from years 7-10, with some students who study the elective iSTEM course studying over 125 hours. Opportunities also exist with students in extra curricula programs to do additional coding.

In year 11 and 12, students have the options to select from Information Processes and Technology, Software Design and Development, Industrial Technology Multimedia, and Information and Digital Technology. Each year, unlike patterns across the state, strong numbers exist in all of these subjects, with approximately 25 students per course starting in each preliminary year. It is rare to see computing courses not run, which is opposite to statewide trends.

The question is then, is there time within the regular curriculum to teach coding skills? By selecting the right context, there are many opportunities to implement coding across the curriculum. Start with how the content that you are trying to teach is used in the real world, then move to how you can program this in order to make it relevant to students. Check out the Board of Studies Coding across the curriculum resources if you get stuck.

Good teaching and learning practices are still required when you use coding though…students will not likely be able to code Angry Birds after they first learn how to code. Structure coding in small steps from easy to hard, differentiate for students who find it difficult, but most of all, encourage a growth mindset around problem solving. They will use this skill in everything that they do, not just in coding.