1 / 20

Organizing & Hosting a Student Programming Contest

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

callum
Download Presentation

Organizing & Hosting a Student Programming Contest

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Annual Contests • ACM • CCSC • IEEEXtreme • Many others, often sponsored by professional society or user groups • Also various online programming challenges; some time-limited, some ongoing 2011 CCSC:CP Panel - April 8 2011

  3. Main Features • Team programming • Typically 3 contestants per team • 1 workstation per team • Several problems of varying difficulty • Scoring based on number of problems solved • Ties broken based on time to complete • Identifying problems that can be solved quickly is part of the challenge! 2011 CCSC:CP Panel - April 8 2011

  4. Problem set • For each problem: • Description, sample input/output • For judges: Solution, Input file, Output file • Program can run w/o intervention (data entry, etc) • Usually console (text mode) based. • Input usually via file in default directory, output to standard output. • Correct answer must be unambiguous & format specified • Description may include how to break ties • Usually machine graded via file comparison of output • Variety of problem types • Graph, numeric, text-processing, geometric, optimization, etc • Each problem has 1 main feature • Parsing complicated input, producing complicated output, implementing complicated algorithm, etc. 2011 CCSC:CP Panel - April 8 2011

  5. Problem set • Boundary conditions specified for all problems • Judging input usually has at least 1 case that tests each boundary condition • Warn students if the obvious algorithm won’t work (usually because of time limit) • No obligation to give them a hint about a better algorithm. • Range of difficulty • Goal is for all teams to be able to solve at least 1 problem, but no team solves all problems 2011 CCSC:CP Panel - April 8 2011

  6. Languages • Most contests restricted to C, C++, Java • Difficulty should be roughly the same in each language • Some problems are fairly involved in C++ but there’s a Java class that makes problem trivial • Occasionally something in C++ STL causing same problem in other direction • Some problems that are fairly hard in system-level languages (C, C++, Java) are 5-liners in dynamic languages such as Python • So, hold Python contest separately from Java contest 2011 CCSC:CP Panel - April 8 2011

  7. Judging • ACM judging utility • Program Contest Control (PC^2) program • Manually • Copy source code to clean directory • Build/Compile • Copy input file to directory, run program • Compare program output with judges output 2011 CCSC:CP Panel - April 8 2011

  8. Judging Feedback • For ACM, one of: • Submission error • Run-time Error • Time Limit Exceeded • Wrong answer • Presentation (format) error • Success • Each incorrect submission (anything other than ‘Success’) adds 20-minute time penalty to score • Others vary—Alabama State High School contest feedback includes the input case that caused the program to fail. 2011 CCSC:CP Panel - April 8 2011

  9. Other judging feedback • Clarification of problem • Only if: • Problem is ambiguous or incomplete, • Sample input/output is incorrect or misleading, or • Contestant’s question cannot be answered by closely reading the problem • Most common feedback is: “Read the problem carefully.” • Hardware/software troubleshooting • Every site director’s nightmare. • “What do you mean, the debugger’s ‘not there’?” • If students are just unfamiliar with this IDE, that’s their issue. 2011 CCSC:CP Panel - April 8 2011

  10. Hardware • Don’t need screaming new hardware • BUT all teams should be on substantially equal footing • 5 year old commodity workstations are fine, provided that everyone’s on similar 5 year old commodity workstations, so no one has any particular advantage 2011 CCSC:CP Panel - April 8 2011

  11. Software • ACM requires MinGW port of gcc for C and C++ • ACM coordinating multiple sites worldwide; strictly local contests may have different needs. • Usual practice is to use freely available compilers/IDEs • Gcc (MinGW, Cygwin), etc. • Eclipse, NetBeans, DevC • Some IDEs such as Eclipse support multiple languages, so only 1 IDE is needed • Other compilers/languages should NOT be present on contest workstations 2011 CCSC:CP Panel - April 8 2011

  12. What’s allowed • Usually provide Java class documentation, C++ STL documentation from SGI • Allowed to bring printouts, hardcopies, textbooks, etc at regional contests • World Finals limit hardcopies to 25 pages 2011 CCSC:CP Panel - April 8 2011

  13. What’s not allowed • Internet access usually blocked • Not allowed electronic media • CDs/DVDs • Thumb drives • Cell phones/smartphones • Cameras • Anything machine-readable • Calculators also prohibited 2011 CCSC:CP Panel - April 8 2011

  14. Infrastructure • Workstations for teams • Spread out enough so teams can talk quietly w/o being overheard • Ideally, each team in a separate room with whiteboard • Ideal is seldom available in practice • Separate area for judges • Storage of student phones etc. • Workstation (or 2, or 3) for judging • Privacy to discuss problems or gray areas • Periods of boredom, then very busy 2011 CCSC:CP Panel - April 8 2011

  15. Infrastructure • Network connection if electronically submitting programs • Otherwise, 2 flash drives per team & several runners to carry drives to/from judging area • Mark flash drives w/ team number (or use numbered envelope for courier) so no one gets handed someone else’s code • Printer for contestants (source code) • Printer for judges (results, rankings) • Optional: • Separate area for team to confer, maybe w/ whiteboard • Soda, bottled water, snacks, etc 2011 CCSC:CP Panel - April 8 2011

  16. Budgeting • Software cost usually minimal • Depending on distance traveled & schedule: • Meal before (box lunch, sandwiches, etc) • Snacks during • Pizza after • Copies • Judging forms/log sheets • 3 copies problem set per team • Feedback forms, notes to teams, etc (3 copies/team) • Envelopes, signage, etc. • Prizes • Certificates • Trophies • Geek toys / swag • Don’t forget something for support & judging staff! 2011 CCSC:CP Panel - April 8 2011

  17. Time demands • Writing/testing problems • Original problems vs published problems • Setting up workstations • Configuring software & testing configuration • Setting up & testing judging software, PC^2 • Preparing signage, running copies, ordering box lunches, etc • Training/coordinating student volunteers • Corresponding w/ other schools, contestants • Cleanup • Reconfiguring/reimaging workstations 2011 CCSC:CP Panel - April 8 2011

  18. High School v. Collegiate Contests • Time limits usually shorter • 2 – 3 hours typical, seldom more than 4 • Problem difficulty lower • Intermediate problem for collegiate contest would be hard problem for high school • Fewer problems requiring advanced math or algorithmic sophistication/depth • Problem descriptions more straightforward 2011 CCSC:CP Panel - April 8 2011

  19. Resources • ACM Mid-Central Programming Contest: www.mcpc.cigas.net • IBM Programming Contest Central (aimed at HS contests) • https://www-927.ibm.com/ibm/cas/ hspc/Welcome/index.shtml • ACM Live Archive: http://acmicpc-live-archive.uva.es/nuevoportal/ • Google “programming contest” or “programming challenge” for many, many more, in many languages, at many levels. 2011 CCSC:CP Panel - April 8 2011

  20. Further Resources • Brian Hare • hareb@umkc.edu • John Cigas • john.cigas@park.edu • James Cain • jcain@sbuniv.edu • These slides available at: http://h.web.umkc.edu/hareb/ 2011 CCSC:CP Panel - April 8 2011

More Related