Artikel top billede

Lambdabamserne Nicolai Nebel Jørgensen, Nikolaj Simling og Jakob Tejs Knudsen ved præmieoverrækkelsen

Sejrherrer for sjette gang: Lambdabamserne vinder DM i Programmering 2016

Reportage: Teamet Lambdabamserne fra DIKU vandt lørdag DM i Programmering for sjette gang efter et tæt opløb med et elitehold fra Aalborg. Se, om du selv kan løse opgaverne her.

30 hold fra Datalogisk Institut på Københavns Universitet (DIKU), Danmarks tekniske Universitet og IT-Universitetet mødte lørdag formiddag op for at dyste i DM i Programmering.

På Aarhus Universitet og Aalborg Universitet befandt der sig yderligere. I alt er 28 og otte hold klar til at konkurrere.

Nogle studerende havde været til fest dagen i forvejen og var primært mødt op for at være med.

Men topholdene havde trænet opgaver i flere uger for at forbedre deres chancer.

Det gjaldt bland andre Lambdabamserne, der vandt sidste år efter en intens konkurrence, hvor holdet løste dets sjette opgave 10 minutter før tid, og dermed overhalede Beyond Ballmer's Peak fra Aarhus Universitet, der løste fem  opgaver. 

Læs reportagen fra DM i Programmering 2015 her.

Der er tradition for at give holdene lange indforståede navne.

Lambdabamserne henviser således til lambda-kalkyler, mens navnet Beyond Ballmer's Peak hentyder til en gammel Microsoft vittighed om, at man er maksimalt kreativ ved en alkohol promille på omkring 1,3.

Simple regler, komplekse problemer

Til DM i programmering er reglerne simple: Man skal løse flest programmeringsopgaver på fem timer.

Opgaverne går fra simple opgaver, som de hurtigste hold kan løse på få minutter, til opgaver, som vil tage de fleste programmører adskillige dage at løse.

Der er tre studerende på hvert hold, men kun en computer, så man må fordele opgaverne og skiftes til at programmere.

Præcis klokken 11:00 går konkurrencen i gang. Hvis flere hold har løst lige mange opgaver, er det tiden, der er afgørende, så en vigtig del af konkurrencen er at udnytte tiden optimalt.

En af opgaverne er en forholdsvis simpel opgave, så man kommer i gang og finder ud af, hvordan man submitter programmer til den automatiske dommer.

Efter 10 minutter havde Beyond Ballmer's Peak fra Aarhus løst den første opgave og havde dermed lagt sig i spidsen foran Lamdabamserne fra København, der løste opgaven på 11 minutter.

Du kan se opgaven her.

Holdene får nogle simple testcases, som de kan teste deres programmer på.

Når man mener, at man har fundet en løsning, kan man indsende programmet og få det testet mod nogle hemmelige og langt større testscases.

Køretiden er også vigtig. Hvis der står i opgaven, at input kan bestå af op til 100.000 linier, så kan man være sikker på, at input består af mindst 50.000 linier, og at programmet skal kunne løse opgaven på nogle få sekunder på en almindelig pc, så man kan ofte ikke anvende den simpleste løsning.

Hvis man indsender en forkert løsning, får man 20 minutters straftid, og det ramte lørdag begge de førende hold, der havde mere end svært ved at løse den næste opgave korrekt.

Det betød, at "PHP>Haskell" fra Københavns Universitet efter 38 minutter lagde sig i spidsen ved at løse opgave nummer to fejlfrit i første forsøg foran Pythons fra Aalborg, der løste den anden opgave på 45 minutter.

Du kan se opgaven her.

Lambdabamserne fra DIKU når syv løste opgaver

Efter en time lagde Beyond Balmers Peak sig i spidsen igen ved som det første hold at løse opgave nummer tre, men efter halvanden time blev holdet overhalet af Lambdabamserne, der som det første løste opgave nummer fire.

Men derefter blev opgaverne væsentlig sværere, og der blev væsentligt længere mellem besvarelserne.

Efter fem timer var konkurrencen slut, og Lambdabamserne fra DIKU vandt konkurrencen for sjette gang med syv løste opgaver foran Beyond Ballmers Peak fra Aarhus Universitet med seks løste opgaver, Ninja-aberne fra DIKU med fem løste opgaver, og Avocado fra Aarhus Universitet og Pythons fra Aalborg Universitet med hver fire løste opgaver.

Artiklen fortsætter under billedet...

Oldboys hold fra virksomheder prøvede også

Uden for konkurrencen deltog forskellige oldboys hold.

De talte blandt andet Faster Forward, der bestod af medarbejdere fra Akamai (tidligere Octoshape), og DAIMI Oldboys, der begge løste seks opgaver. 

Men både i København og Aarhus måtte de bedste oldboys hold i år se sig slået af de lidt hurtigere studerende.

For at deltage i den rigtige konkurrence skal alle deltagerne på holdet være studerende på maksimalt 24 år, så oldboys-holdene kan altså ikke vinde eller gå videre, men deltager kun for sjov skyld og for at få trænet hjernemusklerne lidt.

Lambda-bamserne består af Nicolai Nebel Jørgensen, Nikolaj Simling og Jakob Tejs Knudsen, alle fra Københavns Universitet.

Sponsorerne af DM i Programmering er Netcompany, Jobindex og Computerworld, og de tre studerende vandt en check på 10.000 kroner, tre programmerbare droner og en billet til de nordvesteuropæiske mesterskab, der foregår 19.-20. november i Bath i England.

Der får de dog hård konkurrence af blandt andre Game of Nolife fra Finland og Omogen fra Sverige, der begge løste 10 opgaver.

Alt i alt deltog 270 hold fra hele Norden i konkurrencen.

Hvis det lykkes at klare sig godt i England, går Lambabamserne derfra videre til verdensmesterskabet i programmering, der foregår i South Dakota, USA, til næste år.

Det lykkedes i 2014, hvor Jakob Tejs Knudsen også var med på holdet og var med til VM i Marokko. 

Læs artiklen med landsholdet i programmering til VM her.

Der var dog en enkelt opgave, som ingen af de 270 hold løste. Hvis du har mod på at prøve kan du se opgaven her.