Showing posts with label code jam. Show all posts
Showing posts with label code jam. Show all posts

Tuesday, May 03, 2011

Google Code Jam 2011 starts this Friday

Image
By Bartholomew Furrow, Software Engineer

In Mountain View and in offices around the world, Googlers are spending their 20% time to get ready for Google Code Jam 2011, preparing algorithmic problems for the 10,000 or more contestants who we expect to compete in our Qualification Round this Friday.

A good Code Jam problem has a story to ground it in some version of reality: soccer, ninja and messages from alien cultures have all served admirably. Cushioned by the story, the core of a Code Jam problem is an algorithmic puzzle whose solution needs anything from a few lines of code to a deep understanding of flow algorithms or number theory.

Image
The ninja in the middle is solidly grounded in reality.

Anyone at Google can create Code Jam problems, which means that our methods for inventing them vary wildly. One author might come across a real-life situation, think about what algorithm would solve it, and base a problem on that; another author might think about how to make a problem out of a video game. Sometimes a problem author will start with an algorithm and concoct a problem that it solves. We also really seem to like inventing weird situations on chess boards.

With the story and the problem chosen, our work is only partly done. The problem has to be stated in such a way that it will be clear, even for an audience from 125 countries. At least three engineers work on each problem’s statement: that group includes at least one native English speaker to make sure the grammar is all correct, and at least one non-native English speaker to make sure the language is clear enough.

The toughest part about setting up a problem like this is verifying that contestants got it right. In Code Jam, we do that by providing contestants with an input file full of test data. They send back their program’s output, which should be the answer to the input file’s question. The hard part is deciding what goes in that input file: we need edge cases, plenty of average cases, and a good number of cases that make sure the contestant’s code is fast enough. To create all of those, we generate some cases by hand and others pseudo-randomly. We’ve been known to generate a test case or two out of ASCII art, or as a creative-writing exercise.

Finally, we solve the problems ourselves. We require at least three solutions made by different engineers, and sometimes we have those engineers write solutions that we know to be wrong – just to make sure our test data catches them out.

The end result of this process is the kind of problem we’re proud to ask our contestants to solve. In 2011 more than any other year, we’re excited about the creativity of our colleagues and the problems we’re planning to pose. We hope you’ll enjoy the problems from the other side – and if you’re a great software engineer, maybe come help us write them in 2012.

You can register for Google Code Jam 2011 at http://code.google.com/codejam, and you’ll see the first problems of the year in the Qualification Round this Friday, May 6, starting at 23:00 UTC. For even more details about how we get problems ready for Code Jam, you can read our official problem-preparation guide.


Bartholomew Furrow spends 80% of his time at Google finding ways to eliminate bad search ads, and the rest on Code Jam. Programming contests introduced him to Computer Science, to Google, and to his wife.

Posted by Scott Knaster, Editor

Wednesday, April 07, 2010

Google Code Jam Returns!

ImageGiven a list of cell phone towers, the cost or gain of upgrading each one, and the requirement that every upgraded tower can only have upgraded towers in its range, can you find the most profitable set of towers to upgrade?

Caught your attention? Then we have the competition for you.

We’re thrilled to announce Google’s annual Code Jam competition. Google Code Jam is a programming competition in which professional and student programmers solve complex algorithmic challenges in a limited amount of time. The contest is all-inclusive: Google Code Jam lets you compete in the programming language and development environment of your choice.

And, this year, for the very first time, the final competition will take place in Google’s Dublin office.

Visit http://code.google.com/codejam to register now and get up to speed on the rules. You can also practice on problems from previous contests. It’s a good idea to check out the competition arena and get comfortable with the interface, competition format and types of problems that you’ll encounter in the contest (http://code.google.com/codejam/archive.html).

The qualification round starts on May 7th, 2010 and after four rounds of online competition, the top 25 competitors will be flown to Google's Dublin office to match wits for the $5,000 first prize — and the title of Code Jam champion!

Tuesday, February 23, 2010

Mark your calendars for Google Code Jam 2010!

If you're reading this post, we know your passion is coding. You thrive when given the opportunity to tackle a challenge, and enjoy the rush of applying your knowledge and creativity to approach a problem. Once solved, there's nothing like the satisfaction that comes from knowing you've accomplished something great.

That's why we are excited to announce Google Code Jam 2010 to the true die-hard coding fans. Google Code Jam, powered by Google App Engine, is our annual programming competition, where thousands of coders around the world attack algorithmic problems in several 2.5-hour online rounds. If you make it through the first four rounds, you'll be flown to our on-site finals, to be held for the first time at the Google office in Dublin! Once there, you will compete with 24 other top coders for the $5,000 first prize -- and the coveted title of Code Jam champion.

We don't want you to miss out on any of the action, so we are announcing some important dates for Google Code Jam 2010. Mark your calendars:

Wednesday, April 7, 2010 | 19:00 UTC | Registration Begins
Friday, May 7, 2010 | 23:00 UTC | 24-hr Qualification Round Begins
Saturday, May 8, 2010 | 23:00 UTC | Registration Deadline & 24 hr Qualification Round Ends
Saturday, May 22, 2010 | 1:00 UTC | Online Round 1: Sub-Round A
Saturday, May 22, 2010 | 16:00 UTC | Online Round 1: Sub-Round B
Sunday, May 23, 2010 | 9:00 UTC | Online Round 1: Sub-Round C
Saturday, June 05, 2010 | 14:00 UTC | Online Round 2
Saturday, June 12, 2010 | 14:00 UTC | Online Round 3
Friday, July 30, 2010 | Google Office - Dublin, Ireland | Onsite FINALS

In the meantime, visit the Google Code Jam site and try out some of the practice problems so that you'll be ready to go once we kick off the qualification round. Hope to see you in Dublin on July 30th!

Thursday, August 20, 2009

The Fall Collection on Google Code University

Back-to-School usually means preparing new courses and topics. Educators as well as students are looking for exciting and fresh content. We are happy to announce that we are able to share some new additions to Google Code University's repository of CS course materials just in time for the fall semester. As always, all of these course materials are Creative Commons licensed and can be reused and adapted to curricula at universities everywhere:
Please also check out our CS Resources page for updates on useful training materials.

But that's not all! We want to encourage educators to contribute their great content to Google Code University. By implementing a submission form we hope to make the process easy and convenient. Just follow the big blue button on the homepage and tell us about your materials. We look forward to hearing from you!

Friday, August 14, 2009

Google Code Jam Returns!

ImageGiven a 49x49 grid of numbers, can you place mines in the cells in such a way that each number represents the number of mines in its 3x3 sub-grid (the cell itself and its 8 immediate neighbors)? Find the maximum number of mines that could end up in the middle row of the grid.

Intrigued? Think you can solve it with a clever algorithm? Here at Google, we know how thrilling it can be to encounter a challenge and then overcome it by coding up a creative solution. Since 2003, we've been privileged to share that experience with a global community of computer programmers through our annual programming competition, Google Code Jam.

We're excited to announce Google Code Jam 2009, powered by Google App Engine. Join the fun and compete in several 2½-hour online rounds, attacking three to four difficult algorithmic problems during each round. You may use your favorite programming languages and tools to code up a solution. When ready, run your solution against our fiendish test data. The algorithm needs to be right, and it needs to be efficient: when N=10000, O(N3) won't cut it!

If you're up to the challenge, visit the Google Code Jam site to register and read the rules. Most importantly, you can practice on the problems from last year's contest, so you are in shape when the qualification round starts on September 2. You could be one of the top 25 competitors who will be flown to our Mountain View headquarters to match wits for the $5,000 first prize, and the title of Code Jam champion!

P.S. Think you can solve our "Mine Layer" problem? Try it out on the Code Jam website!