Topcoder Inc. | |
---|---|
Type | virksomhed |
Grundlag | april, 2001 |
Beliggenhed | USA , Connecticut , Glastonbury |
Industri |
IT-bemanding Softwareudvikling Outsourcing ydelser |
Antal medarbejdere | 75 (2006) [1] |
Internet side | www.topcoder.com |
Topcoder er et selskab, der er vært for sportsprogrammeringskonkurrencer . I modsætning til ACM International Collegiate Programming Contest er alle konkurrencer individuelle.
Oprettet i april 2001. I juli 2008 var der mere end 160.000 brugere, hvoraf omkring 28.000 deltog i Algoritmekonkurrencen mindst én gang.
Den mest populære type turneringer er en konkurrence om hurtig løsning af algoritmiske problemer (svarende til skole- og elevprogrammeringskonkurrencer). Det ligger i, at hver deltager får 3 opgaver, forskellige i kompleksitet, inddelt i 3 niveauer. Hver opgave har sin egen maksimale værdi i point. Normalt 250, 500 og 1000. Der gives kun point for løsninger, der er anerkendt som korrekte, delløsninger tages ikke i betragtning. Inden konkurrencestart tildeles deltagerne virtuelle rum (op til 20 personer).
Sådanne kampe, kaldet SRM (Single Round Match), finder sted cirka en gang hver anden uge. Derudover afholdes årlige turneringer. Kampen består af tre hovedfaser - kodning, udfordrende og systemtestning.
Programmeringsstadiet _ KodningsfaseI den første fase forsøger deltagerne at løse de tre opgaver, de bliver foreslået, normalt anslået til 250, 500 og 1000 point, inden for den tildelte tid. Løsningen er at oprette den klasse, der er angivet i betingelsen, og implementere den metode, der er angivet i betingelsen, ved at bestå alle forhåndsforberedte tests. Bidragydere har lov til at skrive løsninger på et af følgende sprog: C++ , C# , Java , VB.NET eller Python . Antallet af point for et løst problem afhænger ikke-lineært af tidspunktet for afsendelse af den endelige løsning: jo senere, jo færre point. For hver genindsendelse opkræves 10 % af opgavens omkostninger. Antallet af point kan ikke være mindre end 30 % af opgavens omkostninger.
Turens varighed i almindelige kampe ( eng. Single Round Match , forkortet som SRM), samt kvalificerende konkurrencer af turneringer ( eng. Online Elimination Rounds ) er 75 minutter. I onsite-finalerne ( eng. Onsite Events ) er varigheden af den første fase 85 minutter.
Konkurrencemæssig testfase Udfordrende faseI anden fase forsøger deltagerne at finde en test (indgangsdatamulighed), hvorpå deres konkurrenters løsninger (som er i samme virtuelle rum) vil fungere forkert. Samtidig er det tilladt at se kildekoden, men det er umuligt (umuligt) at køre konkurrerende programmer. Hver succesfuld tilgang giver 50 point, og en mislykket tilgang tager 25 point. Hvis tilgangen var vellykket, kan testen føjes til den testsuite, der bruges i næste fase. Varigheden af denne fase er 15 minutter i alle kampe undtagen head-to-head finaler (10 minutter). Deltageren har forbud mod at forsøge at passe en test, hvor andre løsninger ikke virker, hvis hans score ikke er positiv.
Afsluttende testfase SystemtestfaseI tredje fase testes alle løsninger fra alle deltagere, der ikke blev fundet forkerte i henhold til resultaterne af anden fase. De endelige resultater af kampene er ved at blive dannet.
ResultaterKlassificeringen af deltagere og deres endelige placering på pladser bestemmes af det endelige antal point, deltagerne har. Deltagere med flere point indtager højere pladser. I tilfælde af pointlighed indtager (deler) alle deltagere med et givet antal point samme plads.
Hvis der ikke var tekniske fejl under konkurrencen, genberegnes ratingen for alle deltagere.
Dette er den type konkurrence, der er tættest på industriel programmering. Par af programmører deltager i dem. Den første skriver en detaljeret specifikation for en komponent bestilt af en tredjepartsvirksomhed, og den anden implementerer den i .NET eller Java. Arbejdet bliver evalueret af flere juryer, og efter deres vurdering sættes den endelige score.
I maraton løser deltagerne mere komplekse og ikke-standardiserede problemer end i andre typer af programmeringskonkurrencer for Olympiade. I maraton er der ingen opdeling i divisioner, og der gives kun én opgave i hver konkurrence. I modsætning til Algoritme er den "korrekte" eller bedste algoritme ikke engang kendt af problemets forfatter. Ofte er der bedre og dårligere svar for hvert sæt af input, og et program, der altid finder det bedste svar inden for rimelig tid, er ukendt for problemets forfatter og eksisterer måske ikke. Deltageren skal skrive et program, der finder det bedst mulige svar på en given tid (typisk 10 sekunder). I nogle tilfælde er det nødvendigt at finde det rigtige svar på minimumstid. Der er andre muligheder.
Det tager normalt 1 eller 2 uger at fuldføre opgaven.
Deltagere er tilladt:
Efter afslutningen af beslutningstagningen testes de programmer, der sendes til den fulde test (det sidste program taget fra hver deltager) på et stort antal (normalt 500) hemmelige, tilfældigt genererede datasæt, ens for alle deltagere. Deltagerne får pladser afhængigt af antallet af point, de har scoret.
Kort beskrivelse af nogle opgaverNedenfor er eksempler på opgaver, der tilbydes i maraton. Mange detaljer er udeladt fra eksemplerne.
Topcoder er den første og mest prestigefyldte form for sportsprogrammering, der har et rangeringssystem baseret på deres præstationer i online konkurrencer. Baseret på det blev det lukkede hviderussiske site Test The Best og de russiske Codeforces lavet .
Bedømmelsessystemet opdeler deltagerne i følgende kategorier:
Gruppe farve | Bedømmelse |
---|---|
hvid | Deltagere, der aldrig optrådte |
grå | mindre end 900 point |
Grønne | 900-1199 point |
Blå | 1200-1499 point |
gul | 1500-2199 point |
Rød | 2200 point eller mere |
Ledere ( engelsk mål ) | 3000 point eller mere |
Algoritmekonkurrencedeltagere med en rating på mindst 1200 konkurrerer i første division. Alle andre er i den anden. Fra den 18. januar 2010 har omkring 800 af de stærkeste programmører den gule bedømmelse af Algoritmekonkurrencen, omkring 200 har den røde bedømmelse, og kun 17 mennesker i verden har "Target". [2]
I Design, Development og Marathon Matches er det endnu ikke lykkedes nogen at få Target-niveauet, og den røde gruppe består af højst 10 personer (i Udvikling - kun to).
De største af turneringerne er Topcoder Open (et uofficielt verdensmesterskab i programmering blandt professionelle) og Google Code Jam (indtil 2007, siden 2008 er det blevet afholdt af Google uafhængigt [3] ).
Ud over dem blev der indtil 2007 inklusive afholdt en turnering for studerende - TopCoder Collegiate Challenge. [4] .
Siden 2006-07 har der været afholdt individuelle kampe og en årlig turnering for skolebørn - TopCoder High School.