This action might not be possible to undo. Are you sure you want to continue?
Original Slides by Brian Hare, James Cain, John Cigas PC2 DEMO by – Ahmed Shamsul Arefin (PhD Student, CS/SE, UoN)
• 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!
• 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.
• 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
• 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
• 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
• 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.
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.
• 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
• 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
• 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
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
• Network connection if electronically submitting programs • Printer for contestants (source code) • Printer for judges (results, rankings)
What we need to do…?
• 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 • Reconfiguring our workstations
• Google “programming contest” or “programming challenge” for many, many more, in many languages, at many levels.
Pc2 Login (team)
Interface after login
Select a Problem
Select a Language
! Judge’s secret end
Request Run by Judge and Response
Now! Team’s end
2011 CCSC:CP Panel - April 8 2011
View other runs
Send a clarification