Teaching Object-Oriented Programming with Python

From 2018, most teachers across Australian will be required to report against the Australian Curriculum: Digital Technologies. There are many resources available on the Internet to help teachers, but when it comes to Object-Oriented programming, there are few accessible examples that dive into fundamental concepts such as inheritance, encapsulation and polymorphism. Considering the lack of experience and confidence in some teachers, particularly in regional areas or where forma training in computer science is minimal, it’s no surprise there is some trepidation about how effectively schools will deliver on the promises of the curriculum.

If we want students to properly understand the key ideas of the paradigm, it is imperative we provide relevant and meaningful activities for students to engage with. Since I began my teaching career in 2005, I’ve tried a number of different approaches with students in years 9-12 to introduce OO concepts, with my most recent successes realised through a simple game inventory system.

In this talk I’ll demonstrate the approach we’ve used, and how we ensure students grasp the fundamental concepts of the OO paradigm. I will explain how students are able to explore these ideas further through their own investigations, and share the assessment task I’ve used to evaluate student understanding. I’ll also showcase some student work, and point to a couple of useful online resources that have been effective in a primarily student-driven environment.

Python is an ideal language for this not only due to its ease of syntax and readability, but because students who have been using it as a scripting language and written simple functions already understand most of the language structures needed to implement objects. This allows the focus to be on conceptual understanding, not the specifics of the language. The breadth of adoption of Python in different domains such as web development and data analysis also means that students can use this knowledge in a variety of contexts, such as allowing them to implement dynamic websites using an MVC architecture.

Presented by

Bruce Fuda

Before taking on his new role as Computing Education Specialist at the Australian Computing Academy, Bruce was acting as the Associate Principal of Gungahlin College, a government school of around 1200 students in Years 11 and 12. Throughout his career, his emphasis has been on developing the understanding of computer science and programming capabilities of students in years 5-12 using a range of programming tools and learning approaches.

He was a writer of the Australian Curriculum: Technologies and has been involved in projects across multiple Australian jurisdictions developing teacher capability and lesson resources to support the implementation of the curriculum.

Bruce was the founding President of Information Technology Educators ACT, and in 2016 was named the Australian ICT Educator of the Year. He is an Apple Distinguished Educator, Google Certified Innovator, and also an avid gamer - of both the computer and tabletop varieties.

He believes that the skills and knowledge that you develop through an understanding of the digital technologies are the modern equivalent of magic, and wants to see all students have the opportunity to become masters of this mystical art.