Registratie Google programmeerwedstrijd geopend

Tweakers die van programmeren houden, opgelet: de registratie voor de jaarlijkse Google-programmeerwedstrijd Code Jam is sinds maandag open. Liefhebbers van algoritmisch probleemoplossen kunnen zich tot en met 19 augustus aanmelden voor een krachtmeting met andere programmeurs van over de hele wereld. De wedstrijd, die voor Google een gelegenheid is om met toptalent in contact te komen, bestaat uit het oplossen van steeds moeilijkere algoritmische problemen in een zo kort mogelijke tijd. De wedstrijd is 'viertalig', er mag in Java, C++, C# of VB worden geprogrammeerd.

'De Google Code Jam eert wat tot het beste werk op het gebied van probleem-oplossen behoort, door de snelste en meest getalenteerde informatici ter wereld. Google is trots om hun uitzonderlijke talenten te mogen ondersteunen en ze in de gelegenheid te stellen om te overwegen zich bij onze research & development-afdelingen aan te sluiten, in Brazilië, China, Japan, Europa, India of elders', aldus Alan Eustace, vice-president van de engineering-afdeling, die meteen duidelijk maakt dat dit geen competitie voor beginners is.

Op 22 augustus beginnen de kwalificatierondes, gevolgd door twee rondes van respectievelijk 500 en 250 deelnemers. Uiteindelijk zullen 100 finalisten het op 23 september tegen elkaar opnemen in de kampioensronde op Googles hoofdkantoor in Californië, waar uiteraard gelegenheid is om sollicitatiegesprekken te voeren. Er is 155.000 dollar prijzengeld te verdelen, bestaande uit een hoofdprijs van 10.000 dollar, negen tweede prijzen van 5000 dollar, vijftien derde prijzen van 2500 dollar en 25 vierde prijzen van 1000 dollar; de rest krijgt een troostprijs van 750 dollar.

De wedstrijd wordt ondersteund door TopCoder, specialist in online programmeerwedstrijden. Het bedrijf ontwikkelt ook software waarbij het gebruikmaakt van een wedstrijdelement in de ontwikkelcyclus. Dit komt in de Code Jam aan bod in de vorm van wedstrijdrondes waarin deelnemers elkaars oplossingen van invoer voorzien met als doel hun tegenstanders te vloeren. Komt een programma niet door zo'n test heen, dan verliest de deelnemer punten. De Google Code Jam-pagina van TopCoder is hier te vinden. Na registratie is er gelegenheid tot oefenen in de practice rooms van TopCoder. Twee problemen uit de finale van 2003 worden hier door toenmalig winnaar Jimmy Mårdell beschreven.


De online wedstrijd-arena

Door Mick de Neeve

27-07-2005 • 20:02

34

Bron: Google

Reacties (34)

Sorteer op:

Weergave:

* 786562 Robbbert
Onee, 18+ :'(, waarom nou weer, er komt toch geen porno in voor?

Maar als je thuis er aan deel kan nemen, hoe kunnen ze dan controleren dat je niet samenwerkt? Als je met een groepje enthousiastelingen er aan meedoet als 1 deelnemer heb je al snel een ticket naar Californië verdiend. Maar wie mag er dan heen mag gaan wordt dan een probleempje.

Er bestaan voor degenen die het ook leuk vinden om aan programmeerwedstrijden deel te nemen, maar niet van zo'n grote internationale als codejam houden ook nog leuke nationale wedstrijden:
bijvoorbeeld CodeCup
http://www.codecup.nl

En voor jongeren die nog op school zitten is er altijd nog de
Nederlandse Informatica Olympiade (NIO)
http://www.informaticaolympiade.nl

* 786562 Robbbert
Met meerdere mensen is niet eens zo'n voordeel hoor. Het gaat om slimme ideeën, en een snelle correcte uitwerking daarvan. Als je met meerdere mensen werkt, zit je elkaar vaak in de weg.

Topcoder organiseert ook vaker wedstrijden (1 keer in de 2 weken ongeveer).

Het is volgens mij ook heel anders dan "normaal" programmeren, hoewel ik daar geen ervaring mee heb. Ik doe wel vaker mee met dit soort wedstrijden, scoor wel aardig, maar heb totaal geen Informatica achtergrond. Veel dingen van Java ( de taal waarin ik werk) moet ik zelfs tijdens de wedstrijd nog opzoeken.
Verwijderd @FCA27 juli 2005 21:20
haha dat mag dus wel? Heb net ook al even zitten kijken naar een paar opdrachten en globaal denk je dat je het dan wel weet, maar implementeren is vaak toch net iets lastiger. :P
Met meerdere mensen is niet eens zo'n voordeel hoor. Het gaat om slimme ideeën, en een snelle correcte uitwerking daarvan. Als je met meerdere mensen werkt, zit je elkaar vaak in de weg.
Probeer voor de grap eens een eXtreme Programming project. Zul je zien dat je in groepjes meer bereikt dan alleen.
Dat in de weg van elkaar zitten valt reuze mee. Gewoon een kwestie van goed coordineren, verdelen en plannen.

Projectmatig werken is hier een goed voorbeeld van :)
Als je met een groepje enthousiastelingen er aan meedoet als 1 deelnemer heb je al snel een ticket naar Californië verdiend.
Waarom niet meerdere keren inschrijven en gewoon allemaal hetzelfde resultaat sturen? :)
Het is +18 omdat de mensen (lees: tweakers) eronder..
die dag naar mijn verjaardag moeten komen :P
Wanneer komen er nu eens ontwerp en documenteer wedstrijden, ipv meteen maar raak te coden? :Y) ;)
Er zijn ook geen autowedstrijden waarbij je netjes moet rijden en je zo veel mogelijk aan de regels moet houden. ;)
(En als ze er toch zijn, zijn ze iig niet erg populair)
Maar wij hebben BotWars :Y) - Programmeer je eigen GotBot voor de lol
http://gathering.tweakers.net/forum/list_messages/1049091/0
mm, zonder code-highlighting ziet het er mij bijzonder moeilijk uit om nog maar gewoon te programmeren. Want ik neem aan, als je de finale haalt, dat je dan niet je favorite programma mag meebrengen. Iemand die al meegedaan heeft ofzo? (want ik zie daar wel editor staan vanboven :s)
Dat moet aangegeven staan bij de inschrijf formulieren! Ik neem aan dat het juridisch goed geregeld is zodat er achteraf niet geklaagd kan worden.
Het lijkt me dat je de code kan schrijven en testen in welke compiler/editor je ook maar wil, als je het uiteindelijke resultaat maar via hun tool opstuurt en laat keuren.
Valt wel mee, veel code schrijf je toch niet. Sommige opgaven kosten maar 10 regels, dan mis ik code-highlighting niet.
Als ik het goed begrijp is het niet de bedoeling om de beste oplossing te verzinnen maar zo snel mogelijk iets coden dat werkt en dan het liefst nog zo onleesbaar mogelijk zodat de andere coders er helemaal niks van snappen als ze je code reviewen.... en dat soort programmeurs zoeken ze dus bij google...
Het si de bedoeling een goed oplossing te maken voor het gegeven probleem. Zo goed dat de andere deelnemers geen fouten in je stukje code kunnen vinden...
waarschijnlijk wel.

maar voor zover mijn ervaring rijkt, vinden ze in de coporate wereld documenteer en ontwerp skills ook zeer belangrijk. Kan een hoop tijd besparen toch?

blijft idd wel zo dat als je een schoolvoorbeeld maakt w.b.t. modellen, wil niet zeggen dat je een 1337 programmer bent.
maar voor zover mijn ervaring rijkt, vinden ze in de coporate wereld documenteer en ontwerp skills ook zeer belangrijk. Kan een hoop tijd besparen toch?
Wat verwacht de corporate wereld van documentatie en ontwerp voor algoritmen (waar het bij deze wedstrijd om gaat). Je hoeft echt geen GUI programma oid te implementeren.
Heel veel:

UML schema's om er eens een op te noemen.
(Lees Sequence diagrams,StateChange diagrams, Activity diagrams, etc)

Deze lenen zich prima voor het schematisch weergeven van een algoritme, en wordt zeer veel gebruikt in de 'corperate' wereld.

Onder documentatie wordt in dit geval geen 'gebruikers documentatie' verstaan, maar ontwerp documentatie, wat de basis is voor elke goede routine/algoritme en/of software programma.
Ik wil met alle plezier proberen, maar geavanceerder dan een simpel gokkastidee in VB en VB.Net kom ik niet. Of is die wedstrijd zó laagdrempelig? :P
Dit is volgens mij meer een wedstrijd voor wiskundigen dan voor programmeurs.
Dit is volgens mij meer een wedstrijd voor wiskundigen dan voor programmeurs.
Klopt ja. Je ziet dat bij vergelijkbare wedstrijden meestal de mensen winnen met een gecombineerde wiskunde/natuurkunde/informatica achtergrond. Het overgrote deel van deze wedstrijden gaat dan ook altijd over kleine wiskundige problemen, en altijd komt het op complexiteit en analyse neer. Hacker coding skills zijn eigenlijk nauwelijks vereist.

Je zou net zo goed een wedstrijd kunnen doen in software architecture. Geef een beschrijving van een systeem, en laat de mensen (eventueel timed) daar maar een mooie architectuur voor bedenken.

Probleem is dat de rating van dergelijke wedstrijden erg subjectief en tijdrovend is. Algoritmische wedstrijden zijn veel makkelijker: je geeft input, checked de output, en timed hoe lang ie erover doet. Doet een oplossing er langer over dan x seconden (halting probleem) dan is het zowieso fout.

Dit is veel makkelijker te doen, en daarom zijn alle 'programmeer' wedstrijden altijd algoritmisch.
ik ga me daar als topprogrammeur niet eens mee bezig houden (volgens mij is het zelfs zo: alle code die je schrijft, wordt van google!)
Zoals hierboven gezegd, het is meestal niet zoveel programmacode. En het zullen algoritmes zijn die je in de praktijk niet veel nodig hebt, anders moedigt het teveel copypaste werk aan. Dus zo'n probleem is het ook weer niet dat de code van hen wordt. Ze vragen je niet 'schrijf een html zoekmachine' ofzo :P
Liefhebbers van algoritmisch probleemoplossen...
Het gaat niet over stukken schrijven, het gaat hier over een stuk programma die je voor je geduwd krijgt en je moet het probleem zien te vinden... Of lees ik het verkeerd? :?

Ik neem aan dat Google zelf wel weet waar het probleem zit, en jij gewoon het goeie antwoord in een snelle tijd moet vinden. Het is dus niet zo dat de code die jij typt automatisch van Google is alsof ze een wedstrijd starten om gratis code te krijgen... Nouja gratis, de prijzen gezien...
Het gaat niet over stukken schrijven, het gaat hier over een stuk programma die je voor je geduwd krijgt en je moet het probleem zien te vinden... Of lees ik het verkeerd?
Nee, je krijgt een probleem voorgeschoteld en je moet dat probleem oplossen dmv een algoritme, maw: je moet zelf een efficiente (dus bij voorkeur niet NP-moeilijk oid) algoritme bedenken en vervolgens implementeren.

Simpel voorbeeld, stel, er bestaan nog geen sorteer algoritmes.

Het probleem is dan, gegeven een rij getallen met lengte n, sorteer de rij getallen van laag naar hoog.

Een minder goede informaticus zou dan met een O(n^2) algoritme (bubble sort oid) aan komen zetten, terwijl de slimmere informaticus dan een quick-sort achtige algoritme uitvogelt (ook O(n^2), maar meestal O(n log n), wat veel sneller is).

Ik denk dat de winnaar van deze Google contest iemand zal zijn met met een gedegen kennis van de complexiteitstheorie.
Programmeren tegen de klok is een heel slecht idee. Het kan wel zijn dat ze het vraagde oplossen in het minste tijd, maar is het ook robust?

Persoonlijk negeer ik af en toe mijn baas zijn wensen om de codekwaliteit te verbeteren (refactoring en nieuwe tests schrijven). Enkele weken later veras ik hem dan doordat plots iets feilloos werkt voordat hij erachter vraagt...
Lees het artikel eens, het oplossen alleen is al leuk, maar dan mogen de andere deelnemers ook nog even ^proben een bug in jouw code te vinden en deze te exploiteren.

Op dit item kan niet meer gereageerd worden.