organizing & hosting a student programming contest

20
Organizing & Hosting Organizing & Hosting a Student Programming a Student Programming Contest Contest Brian Hare, UMKC, Moderator Brian Hare, UMKC, Moderator James Cain, Southwest Baptist James Cain, Southwest Baptist University University John Cigas, Park University John Cigas, Park University

Upload: callum

Post on 16-Jan-2016

28 views

Category:

Documents


0 download

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 Presentation

TRANSCRIPT

Page 1: Organizing & Hosting a Student Programming Contest

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

Page 2: Organizing & Hosting a Student Programming Contest

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

Page 3: Organizing & Hosting a Student Programming Contest

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

Page 4: Organizing & Hosting a Student Programming Contest

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

Page 5: Organizing & Hosting a Student Programming Contest

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

Page 6: Organizing & Hosting a Student Programming Contest

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

Page 7: Organizing & Hosting a Student Programming Contest

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

Page 8: Organizing & Hosting a Student Programming Contest

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

Page 9: Organizing & Hosting a Student Programming Contest

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

Page 10: Organizing & Hosting a Student Programming Contest

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

Page 11: Organizing & Hosting a Student Programming Contest

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

Page 12: Organizing & Hosting a Student Programming Contest

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

Page 13: Organizing & Hosting a Student Programming Contest

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

Page 14: Organizing & Hosting a Student Programming Contest

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

Page 15: Organizing & Hosting a Student Programming Contest

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

Page 16: Organizing & Hosting a Student Programming Contest

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

Page 17: Organizing & Hosting a Student Programming Contest

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

Page 18: Organizing & Hosting a Student Programming Contest

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

Page 19: Organizing & Hosting a Student Programming Contest

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

Page 20: Organizing & Hosting a Student Programming Contest

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