Friday, March 30, 2018

Teaching abstraction to high school students

I have often found Abstraction a difficult concept to explain in high school computing classes. I now think that I found a few good examples to illustrate this concept and this post is about one of them.
First, let's define the word:
Abstraction ... is the process of taking away or removing characteristics from something in order to reduce it to a set of essential characteristics. (Abstraction on
In other words, we hide some detail so we can concentrate on the essential features of the problem at hand. Below, I will attempt to illustrate with an example which is implemented in Snap!, a block-based language created at the University of California, Berkeley.

The problem

Say, for instance, we wanted to draw this brick wall:
Brickwall activity from Beauty and Joy of Computing, UC Berkeley

Sunday, October 22, 2017

How to ask someone on a date and keep it a secret.

This post is about a project that I set 3 students in my year 10 Digital Tech class, Big Ideas in Computer Technology. Before you proceed, can you see the love message hiding in this image?

courtesy of

The idea

The idea was not my own. The first time that I saw it written up properly as a project was at the University of Melbourne. I was there for a professional development day and a computer scientist, Bernie Pope, showed us a project he gave to his first years. Without describing the project in detail, here's the cut down version I used with the year 10s.

Wednesday, December 07, 2016

A few words in defence of visual programming

Visual programming environments, such as MIT's Scratch, are often regarded as a good way to learn programming for young children, to be discarded once the child reaches his/her teens. In this post, I intend to say a few words on why I believe that these environments are more than child's play!

The goal of coding instruction

In an article entitled "Learn to code, code to learn", Mitchell Resnick, the creator of Scratch, contrasts two concepts: 
  1. Learning the mechanics of writing code
  2. Learning to create and solve problems with code
The strength of block-based visual programming is that, by making the mechanics simpler, it enables the second type of learning. Rather than worrying about spelling commands correctly, observing indentation rules or remembering to type a semicolon at the end of a line, the learner concentrates on the goal of their project.
The Koch Snowflake implemented in Scribble

Saturday, October 31, 2015

The "Epic" that was VCE Algorithmics, 2015

In two days, the first batch of VCE Algorithmics students will sit their final exam. While I am nervous about the content of the exam, I am already proud of what my students have learnt and achieved over the year. As the delivery of the course gives way to the nervous waiting we're all experiencing this weekend, I thought it important to reflect on the last 12 months.

VCE Algorithmics (HESS) is a "Higher Education Scored Study", the only one in the Victorian Certificate of Education. It is a very ambitious introduction to computer science and carries significant university credits at Melbourne and Monash. The study design reads like a computer science course in "the Analysis and Design of Algorithms". Every university has its equivalent of such a course, usually in the second year of a CS degree!

Saturday, August 01, 2015

A visual introduction to algebra

Having introduced many students to algebra, I have always wanted to find a way to make it "make sense". One year, I met two researchers from the University of San Diego, Dr Ferdinand Rivera and Dr Joanne Rossi at a conference in Greece(*). Their presentations and later conversations I had with the two of them, especially an electronic correspondence with Dr Rivera, changed my practice completely.

This is a recorded description of this approach that was presented to the staff of Avila College in December 2014.

If you wish, you can download my article, Thinking Visually About Algebra, from the website of the Australian Association of Mathematics Teachers Inc.

(*) Psychology of Mathematics Education 33.

Thursday, July 30, 2015

Problems that do not compute

Today, my task was to convince my students that there are problems which computers cannot solve in a practical time, say a year or a few years! It was meant to be an informal introduction to the concept of the limits of computation and we did it by exploring two specific problems: The towers of Hanoi and the Travelling Salesman.

Monday, July 27, 2015

Isaac Asimov on education and the Internet!

Yesterday, I listened to this excerpt of an interview with Isaac Asimov on Radio National's Future Tense program page. It is characteristically prescient:
Once we have computer outlets in every home, each of them hooked up to enormous libraries ... If there's something you're interested in knowing, from an early age, however silly it might seem to someone else ... you ask and you can find out and you can follow it up and you can do it at your own speed, at your own home, in your own time, then everyone will be interested in learning.