Recently I took the opportunity to sit down with Mr Blair McHugh, our new teacher of Digital Technologies at St Andrew’s College and discuss his previous experiences and vision for the subject. What became apparent was Mr McHugh’s passion for the subject and how his approach to teaching programming aims to dispel the common misconception of a sole programmer working in a darkened room eating pizza!
Prior to joining the staff at St Andrew’s, he had taught for 9 years at Burnside High School and before that at Cashmere High School. Importantly, however, he has industry experience with Fujitsu NZ primarily in networking and infrastructure and it is these skills he aims to impart to students at the College.
A coding language is just a tool – if you’ve not solved the problem before you begin the actual coding, then you’re probably not going to solve the problem.
Mr McHugh will be teaching students the Python coding language, however as the above quote suggests, there is significantly more to this subject than just learning one of the many programming languages that exist these days. The steps students are encouraged to follow are:
- Plan – understand what the requirements of the job are, ask the right questions and formulate an approach to solving this before you start coding. Analysis like this early on helps to ensure future success in the project.
- Code – once you have fully analysed the problem and planned an approach, only then attempt to write some code.
- Test – execute the code and see if it works!
- Review – check how it has all gone
- Repeat – go back to the planning and analysis to see what may need to be improved, re-work the code accordingly, and test it out. Keep repeating this process until you have it working and the problem is solved and the key outcomes from the planning stage are met.
One of the key messages Mr McHugh has to remind students of is the need to avoid “programming on the go” as this almost invariably leads to wasted time:
Time is the biggest and most precious resource available to students. There is little cost in ‘real’ resources when churning out code, but time spent aimlessly coding is too important to waste
To achieve an Excellence in Level 3, students need to demonstrate real efficiencies in their code – there should be no “blind corners or dead ends” – and the easiest way to avoid this is effective planning and regular reviewing of the code.
To further enhance the students ability to plan efficiently, he promotes a very open, collaborative environment where students are not just expected to participate and inter-relate with each, they are required to. This is supported by the banning of headphones in class – students can not be an individual silo separated from the rest of the class. The rationale behind this is that increasingly in the workplace, programmers need to be talking to stakeholders, clients, fellow programmers and communicating effectively to all of these individuals.
Whilst discussing this, Mr McHugh pointed out how well the Term 1 DPR Value (Developing Positive Relationships) worked in his class. He expects students to be honest when they’ve struck a problem with their coding or analysis and be able to ask other students for input.
Consequently, the Key Competencies from the NZ Curriculum play a major role in his classes, in particular Participating and Contributing and Relating to Others as students interact and collaborate together. In the words of Mr McHugh:
No one codes alone in a silo in the real world – being part of a team and coding on a bigger project is a critical skill to learn in school.
To further support this, students practice sitting around a table, asking questions of each others’ projects. Asking the right sort of questions is an essential part of problem solving and developing critical thinking skills. Along with these skills is the continued importance of a strong mathematical foundation to be a successful programmer.
Too often, students do not think maths or physics are necessary in coding, however to start doing advanced 3D graphics a strong grasp of matrices and geometry is critical:
Students can still do 2D platform style games, Angry Birds etc, without strong maths. However, it’s the 3D graphics in games like Halo that really spins their wheels and attracts their attention … BUT you need great maths ability to do that sort of thing.
Following on from the work of Mr Phil Adams, Mr McHugh will continue the lunchtime Code Clubs for those students who are not taking Digital Technologies as a subject.
I’m really looking forward to seeing some of the projects that students will work on this year and hopefully writing about them on this blog.