Subscribe Bookmark



Jun 23, 2011

Visualization of Google Code Jam participation

I've always enjoyed programming contests. I was a regular contestant and sometimes winner in MacTech magazine's Programmer's Challenge in the '90s where the fastest code wins, and I've been a longtime participant and now part-time administrator at Project Euler, where only correctness matters. For the past couple years, I've been trying Google's Code Jam, which is a live competition where you have 2.5 hours to solve several problems. This past weekend, I participated in Round 1, which reduced 15,692 qualifiers down to 3,000 for Round 2.

To accommodate entrants around the world, Round 1 is held at three different times, which gives participants multiple chances to advance and at least one chance in a locally friendly time slot. The website aggregates some of the participant data by country and programming language, and I decided to look at it in JMP to see how country participation matched the time of the contest.

The dark shading shows my interpretation of where the local start time was non-friendly (9 pm-9 am). As expected, most of the higher participation occurs when the starting time is friendly. Russia is a noticeable exception, but I imagine that's only because the country spans so many time zones and most of the population is in the west. Uruguay also looks to have an higher percent of off-time participants, but there were only six total Uruguayans in the contest, so more variation is expected. Finer grained location data would avoid the Russia problem and would allow East Coast/West Coast distinctions in the United States.

How was the graph made? Getting the data into JMP was easy, thanks to File > Internet Open. I then used formula columns to convert the counts to percents within country to see how each country's entrants were distributed over the three times. And I stacked the Round columns so I could use Roundas a grouping variable.

You can download my JMP file from the File Exchange. (You'll need a free SAS profile to download.)

Getting a basic colored map in Graph Builder is as easy as drag and drop, but it took a few more steps of tuning to get it into presentation form. My additional steps:

  • Changed the color scale to a two-color scheme instead of the default three-color scheme since there is no meaningful middle value.
  • Added a background map for better context.
  • In properties, turned on Show Missing Shapes, to see the non-participating countries, too.
  • In Customize, turned off the country outlines and set the missing shape color to white.
  • Edited the graph and legend title.
  • Added a graph script to each panel to shade the areas with non-friendly local start times as dark.
  • By the way, I did make it to the next round, but only after getting up at 5 am on Sunday for the final chance.

    1 Comment
    Community Member

    Chris Hemedinger wrote:

    Congratulations Xan, on advancing to Round 2!