Saturday, July 25, 2015

What do Australian parliamentarians, the BBC, President Obama and have in common?

They all want school-aged students to learn to write computer programs, sometimes referred to as “coding”. This has become a feature of many modern curricula worldwide, from Estonia to the UK and now Australia. The questions I would ask myself as a teacher and a parent are: Why and how? This is my attempt at answering these questions together with a few others.
What is computer programming?
Computer programming is the act of giving instructions to the computer in order to fulfil a particular purpose. For instance, we can write a computer program that checks if a certain number is prime. We can also write computer programs that draw shapes or play music.

"Powerpuff girl", generative art by D.J. and L. P.

Year 10 Big Ideas in Computer Technology

Isn’t this a narrow field of specialisation?
Most fields of work and leisure have been transformed by advances in computer technology. On a recent visit to Monash University, a student told us that the university was requiring all its honours students in physics to learn computer programming. This is because many research questions cannot be answered without building computer models.
In an online conversation on the necessity for genetics researchers to learn to code, a friend of mine made the following statement:

Why should school-aged students learn it?
We teach all students art, music and PE without expecting them all to become artists, musicians or sportswomen. In the same way that physics clarifies how the world works, a knowledge of how their electronic devices work clarifies in the minds of the students how their social world works.
Computer programming is a good discipline for the mind. It is a perfect metaphor for learning. Prominent mathematician and educationalist, Seymour Papert, put it this way:

Learning to code or coding to learn?
The focus of many curricular initiatives and the online courses that have been built to support them has been teaching kids to code. They aim to help students become fluent in a programming language. I feel that this misses the mark! When exposed to coding, some students may well find it interesting enough to want to achieve proficiency at it. However, this cannot be required of every student. Students will write computer programs if they serve a particular purpose.
Visual programming environments have been built to take the emphasis away from the intricacies of computer languages. In these environments, the student can freely create art, develop animations and games and solve mathematical problems, all without having achieved fluency in any particular computer language. Still, the student is using the building blocks of programming: conditional statements, loops etc.
The emphasis must be on coding as a “discipline of the mind”, what is sometimes termed “computational thinking”.
What is Avila’s response to all this?
For many years now, Avila has introduced all of its students to computer programming through the year 7 IT subject. Students learn to design and implement a computer game. Those who want to learn it at a deeper level can participate in the yearly NCSS Challenge, a program run by the University of Sydney spin-off, Grok Learning. We run this every August and make it available to all of our students.
Our IT electives in years 9 and 10 attract good numbers every year and we are the only all girls’ school running VCE Algorithmics. This computer science subject is the first Higher Education Scored Study to be introduced to the VCE and carries university credit towards some degrees, including Melbourne’s Bachelor of Science.

In conclusion, computer programming teaches students a new way of thinking, creating and solving problems. Learning this discipline will open up a new understanding of the devices and applications that affect their lives profoundly. Finally, the chances are high that their generation will need to use some measure of computer programming in whatever work they choose to do in the future.

This post first appeared in Avila College News, Edition 10, July 2015 
On this topic, I highly recommend people read Mitch Resnick's Learn to Code, Code to Learn.