Sponsoring the Code War was a total blast. I think everyone there had a really good time. Everyone definitely put everything they had into it with 8 super-intense hours of design and coding. And everyone created a good A.I. We will definitely do this again next year.
Which leads to the question, is a gaming A.I. a good problem for a code war? Even for a simple game this is a task that normally will take 1 – 3 programmers weeks to months. On the flip side, it is possible to create an A.I. that is competent in a day. Poor compared to a 2 month effort, but still superior to random moves.
But let's step back and look at the purpose of the games. Google's Code Jam is designed to find them the best programmers for writing the fastest server code. And that serves them well for finding people that can further optimize their code that servers billions of requests a day. Microsoft's Imagine Cup is designed to get people to create useful applications using Microsoft products. And that serves them well exposing more people to the Microsoft suite of development tools. HP's Code Wars is for High School students and is designed to provide a fun event for the students.
For Windward we have two sets of goals with the code wars. My personal goal is to create a fun event for the students who love programming. I also want to give incoming students an event where they can get to know the others in the C.S. department (when I started as a freshman at C.U. I knew no one and it was a bit lonely at first). And I like creating a competition where people are celebrated for their brain power rather than their athletic skills.
Now to sell it to my company (this costs about 1K to put on and takes about a week of my time), we have the company goals. Those goals are to contribute to the community, be the #1 choice for internships, and for participants to remember Windward and consider us when they need reporting, docgen, or B.I. software.
So based on what I want to accomplish from this, I want the contest to be intellectually challenging, push the participants to their limits (and a bit beyond), and give them a sense of well-deserved accomplishment at the end. But I don't care what the code in particular does. Nor do I care about the operating system or language. Because we're not trying to measure any particular skill nor promote any particular environment or products.
I do think a game is also fun because instead of the result being a score for each team with the high score winning, instead you watch robots move on the board and shoot each other as you are following your robot cheering for it when it makes a good move. The play-off is a lot more interesting.
So please comment below with your opinion as to what type of problem(s) we should present and any other suggestions for next time.
The next time we are going to set it up where we talk to each entry over TCP/IP where we pass a problem across in an XML file and get the solution back in an XML file. This will make it easy to write a solution in any language on any operating system. Half the contestants were using IronPython and VisualStudio was missing basics like code complete for python (yuck!). (With that said, the best two entries were written in Python so it wasn't too bad of an environment.) But if it's a simple XML file sent across the wire, then each team can use any environment they wish and will have the tools they know the best.
There absolutely will be another contest at C.U. at the start of next Fall's semester. So for those of you at C.U. who participated, tell your friends.
But I also have a request from my youngest daughter who goes to Harvey Mudd to sponsor a Code War there at the start of this Spring semester. So I am going to contact Mudd, CalTech, and MIT and see if they are interested in having a group competition this upcoming January.
And finally a thank you to Professor Ken Anderson who made this happen at the C.U. end and spent his Saturday at the event. And thank you to all the students who participated – you all made it well worth the time I put in on this in how much you enjoyed it.