Topcoder Inc. | |
---|---|
Sorts | Företag |
Bas | april 2001 |
Plats | USA , Connecticut , Glastonbury |
Industri |
IT-bemanning Mjukvaruutveckling Outsourcingtjänster |
Antal anställda | 75 (2006) [1] |
Hemsida | www.topcoder.com |
Topcoder är ett företag som är värd för sportprogrammeringstävlingar . Till skillnad från ACM International Collegiate Programming Contest är alla tävlingar individuella.
Skapad i april 2001. I juli 2008 fanns det mer än 160 000 användare, varav cirka 28 000 deltog i Algoritmtävlingen minst en gång.
Den mest populära typen av turneringar är en tävling för snabb lösning av algoritmiska problem (liknande skol- och studentprogrammeringstävlingar). Det ligger i det faktum att varje deltagare får 3 uppgifter, olika i komplexitet, indelade i 3 nivåer. Varje uppgift har sitt eget maxvärde i poäng. Vanligtvis 250, 500 och 1000. Poäng ges endast för lösningar som erkänns som korrekta, dellösningar beaktas inte. Innan tävlingen startar tilldelas deltagarna virtuella rum (upp till 20 personer).
Sådana matcher, kallade SRM (Single Round Match), äger rum ungefär en gång varannan vecka. Dessutom hålls årliga turneringar. Matchen består av tre huvudfaser – kodning, utmanande och systemtestning.
Programmeringsstadiet _ KodningsfasI den första fasen försöker deltagarna lösa de tre uppgifter som de föreslås, vanligtvis uppskattade till 250, 500 och 1000 poäng, på den tilldelade tiden. Lösningen är att skapa den klass som anges i villkoret och implementera metoden som anges i villkoret, genom att klara alla förberedda tester. Bidragsgivare får skriva lösningar på något av följande språk: C++ , C# , Java , VB.NET eller Python . Antalet poäng för ett löst problem beror icke-linjärt på tidpunkten för att skicka den slutliga lösningen: ju senare, desto färre poäng. För varje återinlämning debiteras 10 % av kostnaden för uppgiften. Antalet poäng får inte vara mindre än 30 % av kostnaden för uppgiften.
Turnéns längd i vanliga matcher ( eng. Single Round Match , förkortat SRM), samt kvalificeringstävlingar för turneringar ( eng. Online Elimination Rounds ) är 75 minuter. I finalerna på plats ( eng. Onsite Events ) är längden på den första fasen 85 minuter.
Konkurrensmässigt teststeg Utmanande fasI den andra fasen försöker deltagarna hitta ett test (alternativ för indata) där konkurrenternas lösningar (som befinner sig i samma virtuella rum) kommer att fungera felaktigt. Samtidigt är det tillåtet att se källkoden, men det är omöjligt (omöjligt) att köra konkurrerande program. Varje framgångsrikt tillvägagångssätt ger 50 poäng, och ett misslyckat tar 25 poäng. Om tillvägagångssättet var framgångsrikt kan testet läggas till testsviten som används i nästa fas. Varaktigheten av denna fas är 15 minuter i alla matcher utom head-to-head finaler (10 minuter). Deltagaren är förbjuden att försöka passa ett test där andra lösningar inte fungerar om hans poäng inte är positiv.
Sista teststadiet SystemtestningsfasI den tredje fasen testas alla lösningar från alla deltagare som inte visade sig vara felaktiga enligt resultaten från den andra fasen. Slutresultatet av matcherna håller på att utformas.
ResultatKlassificeringen av deltagare och deras slutliga placering på platser bestäms av det slutliga antalet poäng deltagarna har. Deltagare med fler poäng tar högre placeringar. Vid lika poäng upptar (delar) alla deltagare med ett givet antal poäng samma plats.
Om det inte förekom några tekniska fel under tävlingen räknas betyget om för alla deltagare.
Detta är den typ av konkurrens som ligger närmast industriell programmering. Par av programmerare deltar i dem. Den första skriver en detaljerad specifikation för någon komponent beställd av ett tredjepartsföretag, och den andra implementerar den i .NET eller Java. Arbetet utvärderas av flera juryer och enligt deras bedömning sätts slutpoängen.
I maraton löser deltagarna mer komplexa och icke-standardiserade problem än i andra typer av programmeringstävlingar för Olympiaden. I maraton finns ingen indelning i divisioner, och endast en uppgift ges i varje tävling. Till skillnad från Algoritmen är den "rätta" eller bästa algoritmen inte känd ens för författaren till problemet. Ofta finns det bättre och sämre svar för varje uppsättning ingångar, och ett program som alltid hittar det bästa svaret inom rimlig tid är okänt för författaren till problemet, och kanske inte existerar. Deltagaren ska skriva ett program som hittar bästa möjliga svar under en given tid (vanligtvis 10 sekunder). I vissa fall är det nödvändigt att hitta rätt svar på kortast möjliga tid. Det finns andra alternativ.
Det tar vanligtvis 1 eller 2 veckor att slutföra uppgiften.
Deltagare är tillåtna:
Efter avslutat beslutsfattande testas programmen som skickas till hela testet (det sista programmet som tas från varje deltagare) på ett stort antal (vanligtvis 500) hemliga, slumpmässigt genererade datamängder, samma för alla deltagare. Deltagarna får platser beroende på antalet poäng de har fått.
Kort beskrivning av några uppgifterNedan finns exempel på uppgifter som erbjuds i maraton. Många detaljer är utelämnade från exemplen.
Topcoder är den första och mest prestigefyllda formen av sportprogrammering som har ett rankningssystem baserat på deras prestationer i onlinetävlingar. Baserat på den gjordes den stängda vitryska sajten Test The Best och den ryska Codeforces .
Betygssystemet delar in deltagarna i följande kategorier:
Gruppfärg | Betyg |
---|---|
Vit | Deltagare som aldrig uppträtt |
grå | mindre än 900 poäng |
Gröna | 900-1199 poäng |
Blå | 1200-1499 poäng |
gul | 1500-2199 poäng |
Röd | 2200 poäng eller mer |
Ledare ( engelska mål ) | 3000 poäng eller mer |
Algoritmtävlingsdeltagare med ett betyg på minst 1200 tävlar i första divisionen. Alla andra är i tvåan. Den 18 januari 2010 har cirka 800 av de starkaste programmerarna det gula betyget från Algoritmtävlingen, cirka 200 har det röda betyget och bara 17 personer i världen har "Target". [2]
Inom Design, Development och Marathon Matches har ingen ännu lyckats få upp Target-nivån, och den röda gruppen består av högst 10 personer (i Development - endast två).
De största av turneringarna är Topcoder Open (ett inofficiellt världsmästerskap i programmering bland proffs) och Google Code Jam (fram till 2007, sedan 2008 har det hållits av Google oberoende [3] ).
Utöver dem hölls fram till och med 2007 en turnering för studenter - TopCoder Collegiate Challenge. [4] .
Sedan 2006-07 har individuella matcher och en årlig turnering för skolbarn - TopCoder High School - genomförts.