High School Programming Contest Guide
This repository, and the viewable website, were created for the 2018 SIGCSE Workshop entitled, “Organizing a High School Programming Contest” (workshop #306). This material is being made publiclly available to help people who did not attend the workshop.
License
- The code in this repo is released under the GPL. This is the code in the tools/ directory.
- Some materials are the works of their individual owners (specifically: the PC2 images, the ICPC logo, and the xkcd comic).
- The remainder of the material in this repository is released under a Creative Commons Attribution-ShareAlike 4.0 International License (CC BY-SA).
Repository Contents
There are a number of parts to this repo
- Workshop slides: the slides used in the workshop presentation given in the SIGCSE 2018 workshop given on February 23, 2018
- HSPC Guide: a text document (from
the LaTeX source in the guide/ directory) that
discusses how to run such a contest
- This guide includes an example VirtualBox setup
- Tools (md): a series of tools (mostly bash scripts)
to help handle various aspects of contest coordination
- Some are ready, and the others will be ready soon (spring 2018)
- Welcome presentation: a welcome presentation, with contest rules; it needs significant customization for a given contest
- Programming cheat sheets: a series of programming language references for C, C++, Java, and Python; the source files are in that directory as well
- PC2 version 9.5.3 documentation, which was the version used in the workshop; the latest version can be found here
- The materials for UVa’s 2017 HSPC, which was used in the workshop: the contest problems, the full set of solutions and judging data, and the scoreboard
- The PC2 system itself was not included in this repo, but can be downloaded here
Workshop details (from here)
Aaron Bloomfield, University of Virginia; Blythe Samuels, Powhatan High School; and Andrew Norton, University of Virginia
Friday, February 23, 7:00 pm - 10:00 pm
Room: 316
This workshop will show participants how to host a successful programming competition aimed at high school students, and will also be broadly applicable to collegiate level competitions. These contests encourage high school students to major in computer science and can have a positive effect on the recruitment for the host institution. In addition, our anecdotal evidence has shown a high participation rate from under-represented groups at such contests. Running a successful contest, however, is a challenging endeavor. With potentially hundreds of people attending – both students and coaches – there are many logistical issues to address. Beyond that, generating an appropriate problem set and ensuring the contest submission system that runs smoothly are critical to a successful event. A poorly run contest can do more harm than good, as the participants will leave with a negative view of the contest, the institution, and possibly even the field. The workshop will cover problem generation and submission system usage, as well as provide discussions and handouts covering all the logistical aspects for hosting such a high school contest. Documentation covering all aspects of the contest will be provided to participants. The workshop organizers include a faculty advisor, a high school coach, and a former student who both participated in – and later ran – the contest. At least one organizer has been in every one of the roles in this type of contest. We have successfully run seven such contests, with the last four having 200 high school contestants.