Developing a Beginner's guide to the ACM International Collegiate Programming Competition
The purpose of this project was to develop a beginner’s level guide to the ACM International Collegiate Programming Competition. This guide provides an overview of the competition and helpful information to students first getting involved; it does not teach problem solving concepts such as graph algorithms or dynamic programming. Included with the guide are solutions and explanations to past regional programming competitions. This project was developed in part from my own experience competing and helping other students prepare for the competition, a survey distributed to students who are involved in the programming competition, and analysis of past regional competition results. I found that many students are not aware of tools which can help with practicing for competitions, and many students who are new to the competition have issues with the semantics of what is expected from competition programming. I also found that how students rank their familiarity with various problem types that appear in the competition differs significantly from the actual problem distribution observed in past regionals. In writing this guide, I hope to provide answers to common problems and guidance to students newly involved in competitive programming, helping them practice and compete more effectively and score higher in competitions.