organizing & hosting a student programming contest
DESCRIPTION
Organizing & Hosting a Student Programming Contest. Brian Hare, UMKC, Moderator James Cain, Southwest Baptist University John Cigas, Park University. Annual Contests. ACM CCSC IEEEXtreme Many others, often sponsored by professional society or user groups - PowerPoint PPT PresentationTRANSCRIPT
Organizing & Hosting a Organizing & Hosting a Student Programming Student Programming
ContestContestBrian Hare, UMKC, ModeratorBrian Hare, UMKC, ModeratorJames Cain, Southwest Baptist James Cain, Southwest Baptist
UniversityUniversityJohn Cigas, Park UniversityJohn Cigas, Park University
Annual ContestsAnnual Contests
ACMACM CCSCCCSC IEEEXtremeIEEEXtreme Many others, often sponsored by Many others, often sponsored by
professional society or user groups professional society or user groups Also various online programming Also various online programming
challenges; some time-limited, some challenges; some time-limited, some ongoingongoing
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 22
Main FeaturesMain Features
Team programmingTeam programming Typically 3 contestants per teamTypically 3 contestants per team 1 workstation per team1 workstation per team
Several problems of varying difficultySeveral problems of varying difficulty Scoring based on number of problems Scoring based on number of problems
solvedsolved Ties broken based on time to complete Ties broken based on time to complete Identifying problems that can be solved Identifying problems that can be solved
quickly is part of the challenge!quickly is part of the challenge!
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 33
Problem setProblem set For each problem:For each problem:
Description, sample input/outputDescription, sample input/output For judges: Solution, Input file, Output fileFor judges: Solution, Input file, Output file
Program can run w/o intervention (data entry, etc)Program can run w/o intervention (data entry, etc) Usually console (text mode) based. Usually console (text mode) based. Input usually via file in default directory, output to standard output. Input usually via file in default directory, output to standard output.
Correct answer must be unambiguous & format specifiedCorrect answer must be unambiguous & format specified Description may include how to break ties Description may include how to break ties Usually machine graded via file comparison of outputUsually machine graded via file comparison of output
Variety of problem typesVariety of problem types Graph, numeric, text-processing, geometric, optimization, etcGraph, numeric, text-processing, geometric, optimization, etc
Each problem has 1 main featureEach problem has 1 main feature Parsing complicated input, producing complicated output, implementing Parsing complicated input, producing complicated output, implementing
complicated algorithm, etc. complicated algorithm, etc.
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 44
Problem setProblem set
Boundary conditions specified for all problemsBoundary conditions specified for all problems Judging input usually has at least 1 case that tests Judging input usually has at least 1 case that tests
each boundary conditioneach boundary condition
Warn students if the obvious algorithm won’t Warn students if the obvious algorithm won’t work (usually because of time limit)work (usually because of time limit) No obligation to give them a hint about a better No obligation to give them a hint about a better
algorithm. algorithm.
Range of difficultyRange of difficulty Goal is for all teams to be able to solve at least 1 Goal is for all teams to be able to solve at least 1
problem, but no team solves all problemsproblem, but no team solves all problems
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 55
LanguagesLanguages
Most contests restricted to C, C++, JavaMost contests restricted to C, C++, Java Difficulty should be roughly the same in each Difficulty should be roughly the same in each
languagelanguage Some problems are fairly involved in C++ but there’s Some problems are fairly involved in C++ but there’s
a Java class that makes problem triviala Java class that makes problem trivial Occasionally something in C++ STL causing same Occasionally something in C++ STL causing same
problem in other directionproblem in other direction Some problems that are fairly hard in system-Some problems that are fairly hard in system-
level languages (C, C++, Java) are 5-liners in level languages (C, C++, Java) are 5-liners in dynamic languages such as Python dynamic languages such as Python So, hold Python contest separately from Java contestSo, hold Python contest separately from Java contest
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 66
JudgingJudging
ACM judging utilityACM judging utility Program Contest Control (PC^2) programProgram Contest Control (PC^2) program ManuallyManually
Copy source code to clean directoryCopy source code to clean directory Build/CompileBuild/Compile Copy input file to directory, run programCopy input file to directory, run program Compare program output with judges outputCompare program output with judges output
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 77
Judging FeedbackJudging Feedback For ACM, one of: For ACM, one of:
Submission errorSubmission error Run-time ErrorRun-time Error Time Limit ExceededTime Limit Exceeded Wrong answer Wrong answer Presentation (format) errorPresentation (format) error SuccessSuccess
Each incorrect submission (anything other than Each incorrect submission (anything other than ‘Success’) adds 20-minute time penalty to score‘Success’) adds 20-minute time penalty to score
Others vary—Alabama State High School contest Others vary—Alabama State High School contest feedback includes the input case that caused the feedback includes the input case that caused the program to fail. program to fail.
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 88
Other judging feedbackOther judging feedback
Clarification of problemClarification of problem Only if:Only if:
Problem is ambiguous or incomplete, Problem is ambiguous or incomplete, Sample input/output is incorrect or misleading, or Sample input/output is incorrect or misleading, or Contestant’s question cannot be answered by closely Contestant’s question cannot be answered by closely
reading the problemreading the problem Most common feedback is: “Read the problem Most common feedback is: “Read the problem
carefully.” carefully.” Hardware/software troubleshootingHardware/software troubleshooting
Every site director’s nightmare.Every site director’s nightmare. ““What do you mean, the debugger’s ‘not there’?”What do you mean, the debugger’s ‘not there’?” If students are just unfamiliar with this IDE, that’s their If students are just unfamiliar with this IDE, that’s their
issue. issue.
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 99
HardwareHardware
Don’t need screaming new hardwareDon’t need screaming new hardware BUT all teams should be on substantially BUT all teams should be on substantially
equal footingequal footing 5 year old commodity workstations are fine, 5 year old commodity workstations are fine,
provided that everyone’s on similar 5 year old provided that everyone’s on similar 5 year old commodity workstations, so no one has any commodity workstations, so no one has any particular advantageparticular advantage
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1010
SoftwareSoftware
ACM requires MinGW port of gcc for C and C++ACM requires MinGW port of gcc for C and C++ ACM coordinating multiple sites worldwide; strictly ACM coordinating multiple sites worldwide; strictly
local contests may have different needs.local contests may have different needs. Usual practice is to use freely available Usual practice is to use freely available
compilers/IDEscompilers/IDEs Gcc (MinGW, Cygwin), etc.Gcc (MinGW, Cygwin), etc. Eclipse, NetBeans, DevCEclipse, NetBeans, DevC
Some IDEs such as Eclipse support multiple Some IDEs such as Eclipse support multiple languages, so only 1 IDE is neededlanguages, so only 1 IDE is needed
Other compilers/languages should NOT be Other compilers/languages should NOT be present on contest workstationspresent on contest workstations
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1111
What’s allowedWhat’s allowed
Usually provide Java class documentation, Usually provide Java class documentation, C++ STL documentation from SGIC++ STL documentation from SGI
Allowed to bring printouts, hardcopies, Allowed to bring printouts, hardcopies, textbooks, etc at regional conteststextbooks, etc at regional contests
World Finals limit hardcopies to 25 pagesWorld Finals limit hardcopies to 25 pages
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1212
What’s not allowedWhat’s not allowed
Internet access usually blockedInternet access usually blocked Not allowed electronic mediaNot allowed electronic media
CDs/DVDsCDs/DVDs Thumb drivesThumb drives Cell phones/smartphonesCell phones/smartphones CamerasCameras Anything machine-readable Anything machine-readable
Calculators also prohibitedCalculators also prohibited
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1313
InfrastructureInfrastructure
Workstations for teamsWorkstations for teams Spread out enough so teams can talk quietly w/o Spread out enough so teams can talk quietly w/o
being overheardbeing overheard Ideally, each team in a separate room with Ideally, each team in a separate room with
whiteboardwhiteboard Ideal is seldom available in practice Ideal is seldom available in practice
Separate area for judgesSeparate area for judges Storage of student phones etc. Storage of student phones etc. Workstation (or 2, or 3) for judgingWorkstation (or 2, or 3) for judging Privacy to discuss problems or gray areasPrivacy to discuss problems or gray areas
Periods of boredom, then very busy Periods of boredom, then very busy
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1414
InfrastructureInfrastructure
Network connection if electronically submitting programsNetwork connection if electronically submitting programs Otherwise, 2 flash drives per team & several runners to Otherwise, 2 flash drives per team & several runners to
carry drives to/from judging areacarry drives to/from judging area Mark flash drives w/ team number (or use numbered envelope Mark flash drives w/ team number (or use numbered envelope
for courier) so no one gets handed someone else’s codefor courier) so no one gets handed someone else’s code
Printer for contestants (source code) Printer for contestants (source code) Printer for judges (results, rankings)Printer for judges (results, rankings) Optional:Optional:
Separate area for team to confer, maybe w/ whiteboardSeparate area for team to confer, maybe w/ whiteboard Soda, bottled water, snacks, etc Soda, bottled water, snacks, etc
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1515
BudgetingBudgeting Software cost usually minimalSoftware cost usually minimal Depending on distance traveled & schedule:Depending on distance traveled & schedule:
Meal before (box lunch, sandwiches, etc) Meal before (box lunch, sandwiches, etc) Snacks duringSnacks during Pizza afterPizza after
CopiesCopies Judging forms/log sheetsJudging forms/log sheets 3 copies problem set per team 3 copies problem set per team Feedback forms, notes to teams, etc (3 copies/team)Feedback forms, notes to teams, etc (3 copies/team) Envelopes, signage, etc. Envelopes, signage, etc.
PrizesPrizes CertificatesCertificates TrophiesTrophies Geek toys / swag Geek toys / swag Don’t forget something for support & judging staff! Don’t forget something for support & judging staff!
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1616
Time demandsTime demands
Writing/testing problemsWriting/testing problems Original problems vs published problemsOriginal problems vs published problems
Setting up workstationsSetting up workstations Configuring software & testing configurationConfiguring software & testing configuration Setting up & testing judging software, PC^2 Setting up & testing judging software, PC^2
Preparing signage, running copies, ordering box Preparing signage, running copies, ordering box lunches, etclunches, etc
Training/coordinating student volunteers Training/coordinating student volunteers Corresponding w/ other schools, contestants Corresponding w/ other schools, contestants Cleanup Cleanup Reconfiguring/reimaging workstationsReconfiguring/reimaging workstations
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1717
High School v. Collegiate ContestsHigh School v. Collegiate Contests
Time limits usually shorterTime limits usually shorter 2 – 3 hours typical, seldom more than 42 – 3 hours typical, seldom more than 4
Problem difficulty lowerProblem difficulty lower Intermediate problem for collegiate contest Intermediate problem for collegiate contest
would be hard problem for high schoolwould be hard problem for high school
Fewer problems requiring advanced math Fewer problems requiring advanced math or algorithmic sophistication/depthor algorithmic sophistication/depth
Problem descriptions more straightforwardProblem descriptions more straightforward
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1818
ResourcesResources
ACM Mid-Central Programming Contest: ACM Mid-Central Programming Contest: www.mcpc.cigas.netwww.mcpc.cigas.net
IBM Programming Contest Central (aimed at HS IBM Programming Contest Central (aimed at HS contests)contests) https://www-927.ibm.com/ibm/cas/ https://www-927.ibm.com/ibm/cas/
hspc/Welcome/index.shtmlhspc/Welcome/index.shtml ACM Live Archive: http://acmicpc-live-ACM Live Archive: http://acmicpc-live-
archive.uva.es/nuevoportal/archive.uva.es/nuevoportal/ Google “programming contest” or “programming Google “programming contest” or “programming
challenge” for many, many more, in many challenge” for many, many more, in many languages, at many levels. languages, at many levels.
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 1919
Further ResourcesFurther Resources
Brian HareBrian Hare [email protected]@umkc.edu
John CigasJohn Cigas [email protected]@park.edu
James CainJames Cain [email protected]@sbuniv.edu
These slides available at: These slides available at: http://h.web.umkc.edu/hareb/http://h.web.umkc.edu/hareb/
2011 CCSC:CP Panel - April 8 20112011 CCSC:CP Panel - April 8 2011 2020