Topcoder

Topcoder arrangerer en rekke forskjellige programmeringskonkurranser fra algoritme- til designkonkurranser og mye annet. Denne posten er ment som en starthjelp til dem som ønsker å delta på algoritmekonkurransene SRM (Single-round matches). Dette er en av de eldste konkurranseformene hos Topcoder, og det blir arrangert flere slike hver måned med flere tusen deltakere hver gang. Oppgavene er en fin blanding av programmering, algoritmer og matematikk ogburde kunne gi utfordringer til personer på alle nivåer.

Registrering

For å ta i bruk systemet må man først registrere en bruker. Dette gjøres fra her. Det kan være greit å huke av for at man er i ‘high school’ ettersom topcoder også arrangerer egne algoritmekonkurranser kun elever i videregående skole.

Starte appleten

Du har nå registrert deg og er klar for å starte appleten for første
gang. Den finner du på Topcoder sine hjemmesider i øvre venstre
hjørne som symbolet O(n). I nettlesere med javastøtte vil appleten
kjøre direkte fra nettleseren. Du kan også laste ned appleten til en passende lokasjon, navigere deg dit i terminalen og kjøre appleten ved hjelp av javaws.

Typisk: >>>> javaws ContestAppletProd.jnlp

Etter dette er det bare å fylle inn brukernavn og passord og du er i gang.

Påmelding til srm

Påmeldingen er mulig å gjøre i tidsrommet fra 2 timer til 5 minutter før konkurransen starer. Dette gjøres ved å starte appleten, velge
‘Active Contests’ – ‘Register’. Merk at det er begrenset med plasser til konkurransen og at det relativt ofte blir fult. Det kan derfor være smart å melde seg på så tidlig som man har mulighet til om man ønsker å delta.

Editor

Jeg vil anbefalle deg å bruke en plugin sammen med editoren fra Topcoder, da dette vil gjøre livet ditt mye lettere. Det finnes mange forskjellige muligheter, blant annet en som heter kawigiedit. Om du følger dokumentasjonen skal det være en smal sak å få satt den opp.

Hello world!

Det er nå på tide at du får skrevet noen linjer i appleten. Gjennom
‘Practice Rooms’ -> ‘SRMs’ får du opp en liste over tidligere konkurranser. Det er nå bare å velge seg en SRM, de merket med ‘div2′ vil være oppgaver på samme nivå som du vil møte i din første konkurranse. Når du har gjort dette vil appleten din se ut omtrent som under en konkurranse. Under ‘select one’ vil du kunne velge mellom tre problemer av ulike vanskelighetsgrad, merket tilsvarende med poengene de gir. Når du har valgt ett problem vil ‘Competetion Arena’ bli åpnet. Her vil du få presentert ett problem og noen tilhørende testcases i øvre vindu, og et område for koding i nedre vindu. Etter at du har lest problemet og er klar for koding velger du foretrukket språk (Java, C++, C# eller VB) og trykker ‘generate code’. Den ferdig genererte koden er det kawigi edit som har laget, det er nå klart for å kode løsningen din inn i funskjonen som kawigi edit genererte.

  • ‘Compile’ kompilerer koden din.
  • ‘Test’ gir deg muligheten til å teste koden din på testcasene du er gitt.
  • ‘Submit’ sender inn koden din til Topcoder.

Ellers har appleten en del andre funskjoner som er mer eller mindre selvforklarende. Etter at du har submitet koden din kan du lukke ‘Competetion Arena’ og velge ‘Practice Options’ -> ‘Run system test’ for å teste koden din mot alle testcasene. Om den blir godkjent her ville løsningen din blitt godkjent under konkurransen også. Ellers merket du kanskje at poengene dine sank etter at du åpnet problemet. Dette er for å premiere personer som klarer å løse et problem raskt. Men om løsningen din er feil får du ingen poeng, så det er bedre å ta den tiden man trenger å få poeng enn å ta feil og få ingen..

Om konkurransene

En SRM er delt opp i to faser. Først koder man i 1 time og 15 minutter, her vil man få tre problemer av forskjellig vanskelighetsgrad som vanligvis gir 250, 500 og 1000 poeng. For hvert av problemene du klarer får du poeng etter hvor raskt du løste det. Du vil ikke få tilbakemelding på om løsningen din er riktig før konkurransen er over, så du må lese oppgaveteksten nøye og bruke de testcasene du har fått på en god måte. Etter man er ferdig å kode er det 5 minutters pause før Challenge phase begynner, som varer i 15 minutter. Her vil man ha muligheten til å studere løsningene til de andre deltakerne i samme rom som deg (når konkurransen begynner blir man tildelt et rom sammen med 20 andre deltakere). Om man finner en løsning man tror er feil kan man teste løsningen opp mot et testcase man selv lager. Om løsningen faktisk gir feilt svar på testcaset du lagde får du 50 poeng ekstra og løsningen blir merket som feil, ellers mister du 25 poeng. Etter dette vil alle løsningene som forsatt står igjen bli testet av systemet. Poeng for løsningene som også består denne testen sammen med eventuelle poeng fra challenge phase vil utgjøre din endelige poengsum. Etter dette vil Topcoder gjennomføre en rating prosess hvor du vil få en rating basert på hvordan du presterte. Ellers kan man se hvordan de andre i samme rom som deg gjør det underveis i konkurransen ved å velge ‘Tools’ -> ‘Room Summary’.

Lykke til med din deltakelse på Topcoder sine arrangementer! Håper du finner problemene like morsomme og utfordrende som det jeg gjør =)

Bootcamp begins

Og herved er NIO bootcamp i gang. Måtte kunnskap og programmeringslyst komme ut av denne siden i mange år!

Første treningen blir 10. oktober kl. 17.00 – 18.15 på topcoder. Mer informasjon om hvordan konkurransene på topcoder blir avholdt kommer snart.

I mellomtiden vil jeg oppfordre dere til å delta på NCPC 2012 til helgen. Merk at påmeldingsfristen er på torsdag, altså i morgen.