ACM Programming Team Class, Fall 2013

Skip to Enrollment Rules

The ACM international collegiate programming contest brings together over 29,000 students world-wide who compete at regional competitions for a coveted spot in the world finals, which is held every year in spring. For more information & background, see this 2013 Fact Sheet.

The ACM Programming Competition focuses on algorithmic problem solving - teams of three, using just one computer, solve as many of 8 problems during 5 hours as they can. Teams are ranked by the number of problems solved, with cumulative time needed used as a tiebreaker. The judge provide sample input/output data, but the input/output used for judging is kept secret. Most problems used in these competition require the application (or adaptation) of traditional algorithms and techniques. Very often, the problems are designed such that the application of an algorithm with inappropriate complexity (e.g., implementing an O(n^2) algorithm where a linear algorithm is possible) leads to failure due to time-out for the judge's input data.

Besides the ACM programming contest, many other contests have sprung up in the past years, such as Google Code Jam, and various contests sponsored by companies. Though those contests vary in the specific format and choice of programming languages, their focus is usually also on how to quickly implement programmatic solutions to algorithmic problems. Companies like this format because it requires a combination of algorithmic thinking and concrete implementation skills that they value in their employees. Consequently, many job interviews have come to include questions that require both developing algorithms and code for problems that are presented to interview candidates.

In this class, we'll work on problem solving with a specific focus on implementing algorithm solutions to problems in the style provided by the ACM programming contest. It is expected that the teams participating in the regional competitions (scheduled for early Nov 2013) are comprised of students taking this class. We usually send about 5-6 teams of 3 students each.

Enrollment Rules

Precondition for taking this class is a) enthusiasm for solving problems in a competitive atmosphere, and b) the skills (or potential) for doing so. This is not a make-up class for students who feel they need to improve their programming skills. Enrollment in the class is by instructor permission only.

We will not be holding try-outs to enter the class this year. (We will be having a regional qualifier to determine who'll make the teams). To enroll, please show up for our first class on Monday, Aug 26, 5:30pm McBryde 322

There are two ways to obtain degree credits.

In addition, you must meet the general qualifications for CS 2974/CS 4974, such as an in-major GPA of at least 2.5. See here for more information.

The class is open to students of any year (freshmen to seniors). Many successful teams at the competition became successful only at their second, third, or even fourth year of participation.

Instructor: Dr. Godmar Back Meeting Times: Monday and Wednesday, 5:30pm-6:45pm Room: McB 308

Please enroll in piazza at CS PROGTEAM for updates and/or send me email with questions.