GoldyOrNugget
Señor Member
- Joined
- Jul 14, 2012
- Messages
- 583
- Gender
- Male
- HSC
- 2012
Having just completed my HSC, I will now step into my role on BOS as the unofficial informatics representative starting with some outreach/information.
Most of you would know of the AMC. That's the absurdly hard pen-and-paper competition run annually by the Australian Mathematics Trust. Some of you would be aware that the AMC is merely the first funnel/filter in a series of increasingly more difficult competitions that culminate in the selection of 6 Australian school students to represent Australia at the International Mathematics Olympiad.
In parallel, the AMT also runs the informatics program -- specifically, the Australian Informatics Competition and Olympiad. Because the skills required in informatics are not taught in high school, I have the impression that many students sit the AIC, go "huh, those were some interesting logic problems" and never even find out what informatics really is. This is rather unfortunate.
Informatics, in the olympiad/competition context, is the study of algorithms, where an algorithm is a fancy name for a procedure or sequence of steps. Whereas a mathematics question asks "solve this problem", an informatics question asks "find a method that solves the general case of this problem". There is a significant overlap between informatics and discrete mathematics. Here's a few examples demonstrating the difference between the typical problems of an informatics and mathematics competition:
Maths: determine if the number 9933 is prime.
Informatics: produce a sequence of steps to determine if a given number is prime
Maths: find the minimum value of the function f(x) = (x-1)2 + 3
Informatics: determine a method whereby, given an arbitrary convex function, one can find its minimum value
In informatics, one writes computer programs to implement these procedures, but I stress that informatics is about the mathematical reasoning behind problems, not about writing code. It provides a twist to the standard maths olympiad combo of combinatorics, geometry, number theory and algebra. Here are some of the areas touched on in informatics:
- Graph theory: simply put, the study of connections/relationships between things. A map can be a graph where intersections are 'things' and the roads between them are connections. A social network is a graph where people are 'things' and friendships are connections. A game of chess can be represented as a (very big) graph where each state of the board is a 'thing' and connections exist to all subsequent possible board states. Standard problems you might face are: given a description of a social network, determine if two people are friends; given a map of Sydney, find the shortest path between any two given locations; now using that map, where each road has a width, determine the minimum number of barricades that must be used to prevent all access to the Opera House from Mascot Station.
- Computational geometry: how does one determine whether a point lies on a line? How do you determine if two line segments intersect? How does one determine whether a point lies in a polygon? If there's a polygon between you and me, how do I know if I can see you? Here's a tough comp. geom. I tackled the other day.
- Combinatorics & dynamic programming: informatics combinatorics involves counting stuff, but it's rarely possible to just use a formula. If I have a bag which fits 100kg of items, and I have a bunch of items in front of me, each with a value and each with a weight, how can I maximise the amount of value in my backpack without exceeding 100kg? Dynamic programming refers to a mathematical technique whereby a problem is expressed in terms of smaller versions of itself (a recurrence) -- in informatics, one must derive these (often very challenging) recurrences and implement them.
- Data structures: say I tell you to find the first occurrence of the word 'helicopter' in a novel. That would take you ages! You'd have to essentially scan through every page. But if I tell you to look up 'helicopter' in a dictionary, you'd be able to do it almost instantly. Why is this? Can we quantify the relative amount of time it takes you to look up each of these things? Now what if I tell you to look up 1000 different words? Can we structure our data in a way that allows you to look words up even faster than a dictionary? What if I'm now dynamically adding and removing words from that dictionary in real time? What benefits are bestowed if we consider non-linear data structures? Google is so successful in part because its data structures are so damn clever.
Of course, the greatest problems are the ones that don't fit into any of these categories neatly -- when you need to apply combinatorics to a computational geometry problem, or when you work out a particularly clever data structure that allows you to optimise a tough dynamic programming problem (both of these examples came up in this recent selection exams for the Australian informatics team). And then, there are those problems where you just go 'wtf?' and you just explore and play around until you make an observation that lets you score full marks
So, who am I? I've sat the AIC and AIO the past 5 years, winning bronze, silver, and 3 gold medals in the latter, participated in UNSW ProgComp (essentially UNSW's annual informatics contest) the past 4 years, and did Sydney Uni's national computer science school challenge in 2009-2011. I was on the Australian informatics team this year and won a bronze medal at the IOI in Italy. Currently, I'm in an odd state of flux between student and tutor in the programme, which means I'm perfectly positioned to provide information and guidance! If you're in years 8-11, you're at the perfect age to get involved in the program.
For more information, talk to your maths teacher, reply here, PM me, or email me at dan(dot)goldbach(at)gmail.com.
Most of you would know of the AMC. That's the absurdly hard pen-and-paper competition run annually by the Australian Mathematics Trust. Some of you would be aware that the AMC is merely the first funnel/filter in a series of increasingly more difficult competitions that culminate in the selection of 6 Australian school students to represent Australia at the International Mathematics Olympiad.
In parallel, the AMT also runs the informatics program -- specifically, the Australian Informatics Competition and Olympiad. Because the skills required in informatics are not taught in high school, I have the impression that many students sit the AIC, go "huh, those were some interesting logic problems" and never even find out what informatics really is. This is rather unfortunate.
Informatics, in the olympiad/competition context, is the study of algorithms, where an algorithm is a fancy name for a procedure or sequence of steps. Whereas a mathematics question asks "solve this problem", an informatics question asks "find a method that solves the general case of this problem". There is a significant overlap between informatics and discrete mathematics. Here's a few examples demonstrating the difference between the typical problems of an informatics and mathematics competition:
Maths: determine if the number 9933 is prime.
Informatics: produce a sequence of steps to determine if a given number is prime
Maths: find the minimum value of the function f(x) = (x-1)2 + 3
Informatics: determine a method whereby, given an arbitrary convex function, one can find its minimum value
In informatics, one writes computer programs to implement these procedures, but I stress that informatics is about the mathematical reasoning behind problems, not about writing code. It provides a twist to the standard maths olympiad combo of combinatorics, geometry, number theory and algebra. Here are some of the areas touched on in informatics:
- Graph theory: simply put, the study of connections/relationships between things. A map can be a graph where intersections are 'things' and the roads between them are connections. A social network is a graph where people are 'things' and friendships are connections. A game of chess can be represented as a (very big) graph where each state of the board is a 'thing' and connections exist to all subsequent possible board states. Standard problems you might face are: given a description of a social network, determine if two people are friends; given a map of Sydney, find the shortest path between any two given locations; now using that map, where each road has a width, determine the minimum number of barricades that must be used to prevent all access to the Opera House from Mascot Station.
- Computational geometry: how does one determine whether a point lies on a line? How do you determine if two line segments intersect? How does one determine whether a point lies in a polygon? If there's a polygon between you and me, how do I know if I can see you? Here's a tough comp. geom. I tackled the other day.
- Combinatorics & dynamic programming: informatics combinatorics involves counting stuff, but it's rarely possible to just use a formula. If I have a bag which fits 100kg of items, and I have a bunch of items in front of me, each with a value and each with a weight, how can I maximise the amount of value in my backpack without exceeding 100kg? Dynamic programming refers to a mathematical technique whereby a problem is expressed in terms of smaller versions of itself (a recurrence) -- in informatics, one must derive these (often very challenging) recurrences and implement them.
- Data structures: say I tell you to find the first occurrence of the word 'helicopter' in a novel. That would take you ages! You'd have to essentially scan through every page. But if I tell you to look up 'helicopter' in a dictionary, you'd be able to do it almost instantly. Why is this? Can we quantify the relative amount of time it takes you to look up each of these things? Now what if I tell you to look up 1000 different words? Can we structure our data in a way that allows you to look words up even faster than a dictionary? What if I'm now dynamically adding and removing words from that dictionary in real time? What benefits are bestowed if we consider non-linear data structures? Google is so successful in part because its data structures are so damn clever.
Of course, the greatest problems are the ones that don't fit into any of these categories neatly -- when you need to apply combinatorics to a computational geometry problem, or when you work out a particularly clever data structure that allows you to optimise a tough dynamic programming problem (both of these examples came up in this recent selection exams for the Australian informatics team). And then, there are those problems where you just go 'wtf?' and you just explore and play around until you make an observation that lets you score full marks
So, who am I? I've sat the AIC and AIO the past 5 years, winning bronze, silver, and 3 gold medals in the latter, participated in UNSW ProgComp (essentially UNSW's annual informatics contest) the past 4 years, and did Sydney Uni's national computer science school challenge in 2009-2011. I was on the Australian informatics team this year and won a bronze medal at the IOI in Italy. Currently, I'm in an odd state of flux between student and tutor in the programme, which means I'm perfectly positioned to provide information and guidance! If you're in years 8-11, you're at the perfect age to get involved in the program.
For more information, talk to your maths teacher, reply here, PM me, or email me at dan(dot)goldbach(at)gmail.com.