I understand that maths and programming are not generally easy to report on. There’s no nice visuals of people scoring, lunging or otherwise doing photogenic sporty things. But did you know we have two teams competing in a major international competition being held in Brisbane? Bet you didn’t because there’s been virtually no coverage: I had to look at an Israeli newspaper to get even a hint of the results.
The International Olympiad in Informatics 2013 is being held this week in Brisbane. Australia had two teams competing alongside several hundred high-school students from all around the World. Our top ranked student came 26th.
Work is already underway for the 2014 competition. The Australian Informatics Olympiad (AIO) is being held on 5 September 2013. The AIO is a programming event and is used as the major basis of choosing students to attend a programme for training and selecting a team to represent Australia at the International Olympiad in Informatics. The AIO aims to enable individual students to demonstrate advanced programming skills at using the computer to solve problems.
The languages allowed in the AIO 2013 will be C, C++, Pascal, PHP, Python, Java and C#. The problems presented combine a nice mix of maths and real-world situations amenable to being solved programatically. Here’s a sample question:
You are a biologist working in a large laboratory. For the last month you have been growing a culture of your favourite bacteria, Bacillus Fortranicus. You are particularly interested in the way in which it grows in hostile environments.
Today is the last day of your experimentation. With anticipation you pull your log book from the shelf, but in your excitement you knock a bottle of acid from the bench. You watch in despair as it spills across your log book and your precious notes dissolve before your eyes.
You try desperately to recall some statistics. How many individual bacteria did you begin with? You can’t even remember for how many days the experiment has been running. In desperation you call over your lab assistant.
“No, I don’t remember how many bacteria we began with either,” she says. “But I do remember that it was an odd number. Oh yes, and the number of bacteria doubled each day.” She looks down at the bench, sniffs the acid and walks back to her desk with a wrinkled nose.
Although you have lost your notes, you can still count the total number of bacteria that you have now. Combining this total with the assistant’s information, you must write a program to answer your two original questions. That is, you must calculate (i) how many bacteria you began with, and (ii) for how many days the experiment has been running.
It’s funny given all the rhetoric in the press about young people making millions from selling their apps that there’s so little interest in the underpinnings that enable the creation of those apps in the first place.