What? Team AlgERRithm – a Codio course to teach algorithms in through fun accompanying web games, demonstrated with some chapters on Dijkstra’s algorithm
When? 20th – 21st February 2016
Where? St Andrews University
Who? Me, Rosina Paige, and Rhaeden Zimboski
What About It?
So I didn’t really go with any ideas to StacsHack and in the team formation joined with the two teammates on the vague plan of making some sort of project with my Myo armband (yeah remember that thing I won post-Hack the Burgh?) but as both were beginners, and in fact Rhaeden had no programming or comp sci experience at all, we decided to simplify it and attempt the Codio challenge to develop a course through their website and web IDE to teach coding.
Because there are a lot of resources out there to learn programming languages we decided to teach algorithms instead, and starte dout by asking people at the hackathon what their favourite and worst algorithms – it turns out a lot of people have a nostalgic soft spot for bubble sorts, who knew? Fromt his we selected the Dijkstra’s algorithm as a particularly problematic one and so decided to tackle teaching this. After throwing around ideas and being inspired by the randomness of the folk dance sorting algorithm videos on Youtube, we chose to make a basic web game in which you are Dijkstra, attending StacsHack and trying to map out the shortest path from your computer to the hog roast dinner on the Saturday night (which was amazing by the way, thanks Stacs team!).
You can see the end result on DevPost here if you want.
He knows it will take different lengths of time to cross different parts of the lab because he will have to talk to sponsors for different durations of time and so he draws a map of the room, labelling the points in the lab he can stop for a breather in between sponsors. He writes each of these labels on pieces of paper and puts them all in his MLH bag of unstudied places to begin with. Starting at A he throws away the piece of paper with A on it, goes to each of his nearest neighbours and times how long it takes to cross to them and notes it on his map, and writes on his hand the current shortest path to get ahead. He then repeats for point B, making sure to add on the time from A to B, scribbles on the new shortest path, and then heads back to A to check up on his teammates.
He repeats for each place in turn (noting that it takes 50 minutes to cross past MLH because Gregor makes him play the cup stacking challenge) – i.e. the student ‘travels’ to each as Dijkstra and does this for each point on the map in the web game after reading the guide and pseudo code for it- before finally noting the ultimate shortest path and using it to get to the food the quickest. The student then helps Dijkstra write a Python code for this so he can repeat it again the following week at HackLondon (where, plot twist, he finds that Alice Star (A*) has got there first and eaten all the apple sauce).
Well, that was what the course was supposed to do anyway. In reality our ultimate submission was an incredibly messy collection of guide content, no testing scripts written for the Python code that the student was supposed to write (part of Codio’s appeal is the ability to automate the marking of these things by writing test scripts), and the most limited javascript based clicking ‘game’ in browser.
However, my two teammates had a very intense crash course in computer science and programming and learned a lot even if they didn’t have much time then left to implement this. And because we were the only Codio challenge in the end we won the prize anyway – hats off to Sean from Codio for being immensely patient with our team and it’s terrible hacking. I think people enjoyed the overall idea, and we actually had a few requests come in from people wanting ‘games’ for their favourite algorithms – I learned a few new ones myself from the whole exercise – and I am actually tempted to try and make a working, tidy version of it, and attempt others.
It was a lovely venue where we free to explore St Andrews – team brainstorm on the beach, and watch the sunrise with CompSoc – and I attempted a few minigames on the side too, although sadly I was too busy giving the crash course to my teammates to get time for the Bloomberg coding challenge which I would have liked to have done. There was a lot of good food, great sponsors who were helpful and enthusiastic all round (and good freebies too!), and so even though it wasn’t quite how I planned to spend it, I had a fantastic time overall.