What I learned at PyCon: Python in Education Seminar
This year’s PyCon: Python in Education Seminar(August 3-8) was the eighth national conference for people who use and develop in Python. For those of you who aren’t familiar with it, Python is a well-known and widely-used programming language. The conference took place at the Melbourne Convention Centre, and the six-day event played host to a number of smaller workshops, talks, and subset conferences.
I was fortunate enough to be able to attend the Python in Education Seminar, which took place on the second day of the conference (August 4). The Python in Education Seminar is an annual seminar that features talks by Python educators who want to share their knowledge, ideas and resources with the rest of the attendees. I was lucky enough to get the chance to present myself! You can see the full list of speakers and their presentations here.
There were a number of engaging and informative speakers from around Australia who shared their insights about using Python in the classroom. I learned a lot that day, as one does when surrounded by such a wealth of knowledge! Allow me to share with you some of the lessons that I learned at PyCon.
Python in Education
Why Python?
A question that I’m sure has been on all of your minds is — why Python? Python is widely known for being a great language to get started with coding: it’s simple and readable, making it accessible for people like high school students, or other young minds who are looking to get into text-based programming.
To illustrate just how Python compares to other languages, here’s a simple “Hello World!” program. (By the way, a “Hello World!” program is one that simply prints the aforementioned words to the screen!) Here are examples of the same program written in Python, C# and PHP respectively:
A “Hello World” program written in Python. Click the play button to run it.
A “Hello World” program written in C++. Click the play button to run it.
A “Hello World” program written in PHP. Click the play button to run it.
MicroPython on the micro:bit
Jim Mussared and Nicky Ringland gave an interesting talk about MicroPython on the micro:bit. To give you a bit of context, the BBC micro:bit is a small computing device designed for children, and MicroPython is the version of Python that runs on the aforementioned micro:bit.
What are some of the great things about MicroPython?
- It’s still Python: The beauty of MicroPython is in its familiarity to many students, its forgiving syntax, and its great built-in functionality.
- Errors shmerrors: When things go wrong, you can quickly figure out why! This massively reduces the frustration of programming (or, more specifically, debugging!), meaning that students are less likely to become disengaged.
- Experiment! Try new things!: MicroPython encourages you to experiment and discover new features. It allows you to try out code without putting you through the ever-painful compilation cycle.
You can purchase a standalone micro:bit for just under $23.
Python and the Australian curriculum
Three key elements of delivery
An effective class activity is made up of three key elements:
- It’s teacher-designed: Core concepts and ideas are explicitly taught by teachers.
- Student-driven: An activity is supported by a range of extra resources for students
- Practical projects: The projects allow lots of scope for students to explore, experiment with and extend their projects
Only 20 minutes per week for Digital Technologies
Let’s talk about how a week of classes are divided up among subject areas in a primary school classroom: in a single week, we have 25 hours of class time. Predictably, English and Maths dominate the curriculum: with the heavy focus that is placed on NAPLAN, these two subjects take up more time than any other. In fact, they take up about 25-35% and 20% of the available weekly class time respectively — that’s 6.25-8.75 hours per week of English, and 5 hours per week of Maths.
Science and Technology theoretically takes up about 6-10% of the curriculum, but in reality, this gets pushed back to about 6%. Technology only takes up about 3% of the weekly class time — which is divided further into Design and Technology, and Digital Technologies. Keeping in mind that there are 25 hours of class time in a week, Digital Technologies only receives about 20 minutes per week!
Digital Technologies: A simple problem
The Digital Technologies curriculum is being rolled out into Queensland primary schools, with other states soon to follow our example. Now, we have a lot of students in Australia who will be receiving this education, but there are lots of teachers who are fully prepared to teach it. We need scalable solutions that will meet the needs of all students and teachers.
Queensland senior assessment is changing
In all states (excepting New South Wales), assessment will be changing in all senior schools. Student reports will be required, as per the Australian Curriculum Achievement Standards in 2018.
In high schools, there are currently two main senior IT subjects:
- Information Processing and Technology (IPT), which focuses on equipping students with the practical skills to work with a range of technology devices and systems
- Information Technology Systems (ITS), which focuses on equipping students with the tools needed to respond to changes and trends in technology
Both of the aforementioned subjects are set to be replaced by Digital Solutions, which is expected to be released in September 2017.
In short, we’re in somewhat of a state of flux with senior IT, in that the old curriculum is being replaced with a new one. All the while, teachers are needing to learn the new curriculum and be able to confidently deliver it in classes.
Programming expectations for F-10 for Digital Technologies
Below is an infographic detailing the skills and competencies that are expected to be learned at each year level for the Digital Technologies subjects. These competencies are built upon year by year, as can be seen below:
PyGame image courtesy of: Horst JENS.
Scratch is not object-oriented
When programming is taught in schools, it is generally the case — as can be seen in the above infographic — that primary school students often start out using visual programming languages like Scratch, and later progress to text-based languages like Python when they enter secondary education.
Scratch is a great tool for starting kids off with programming. It helps them to learn about and really cement their proficiency with fundamental computing concepts. It isn’t, however, the most powerful tool in the world. This is one of the many reasons that students are then introduced to text-based programming languages — such as Python — which are a bit harder to get started with, but are a lot more powerful.
So, although Scratch can teach you all about concepts like branching, algorithms, input, and iteration, among other things, it does not have the capacity to be an object-oriented programming language like Python. Here is an infographic detailing the difference between an object-oriented program and a classic one:
Object-oriented programming is a common method used for programming, say, small games. While it is possible to write object-oriented programs in Python, it is not possible to do this in Scratch.
In Scratch:
- Objects are present, but you can only attach code to objects and define their behaviour.
- You have control over only a fixed range of properties. Scratch programs, therefore, are typically referred to as object- or event-driven.
- There are no class definitions in Scratch.
- All objects must be defined within limited paragraphs — you can’t add others.
- There is no inheritance or polymorphism.
- Every object is defined uniquely; there is no mechanism for super- or sub-classes.
Data representation and object-oriented programming
Data representation isn’t just about “knowledge”. While data representation appears beneath the Knowledge and Understanding strand in the Australian Curriculum, it was the intention of the curriculum designers for students to explore data representation through the practical application of the aforementioned concepts. The crucial facets of data representation are as follows:
I was very grateful to have had the chance to attend PyCon: Python in Education Seminar — and present there, too! If you are interested in watching my talk, you can do so here. If you’re interested in learning more about this year’s PyCon, you can read all about the events and happenings here. If you’re interested in learning more about the Digital Technologies subject, and how you can integrate it into your own classroom, you can download our free e-Book here.
By Emily de la Peña