| C.S. 4956 |
| Competitive Programming |
Variable Credit |
As the world transitions to a truly global economy, competition for the best programming jobs at the highest salaries is increasing shifting to a world-wide market place. Programmers around the world can now "show their stuff" in international competitions held on the internet. The top global software companies such as Microsoft, Google, and Electronic Arts among others are sponsoring contests and offering large cash prizes in order to find and hire the talent that will build the next generation of advanced software systems. The purpose of this course is to ensure that Montana Tech computer science and software engineering students are not left behind, and to provide them with the experience and techniques they need to compete with the best around the world.
This is actually three classes offered by the same instructor at the same time; one for sophomores, one for juniors, and one for seniors. The weekly lecture is the same for all levels, but the individual weekly assignments are different for each level. The first part of the course is focused on the ACM International College Programming Contest which is held in an nearby city sometime before Thanksgiving. In the first part of the course there is a weekly team practice for 2 ½ hours (half the time for the real contest with half the number of problems) The practice problems will be different for each level. The second part of the course will be focused on TopCoder (www.topcoder.com). TopCoder assignments will also vary by level. The purpose of the course is to improved each students ability to quickly and successfully (as judged by robot judge acceptance) solve single module (or class) programming problems drawn from ALL of computer science. For those wising to compete in the ACM contest, the course provides invaluable strategies for successfully attacking these problems, especially if a team of three practices together. All of the generic programming techniques for single module or class problems are covered, and all students receive a contest problem play book of attack strategies. Prerequisites: CS2116 for sophomores; CS2156, CS2546, CS2656, CS3166, and CS3316 for juniors; CS3326, CS3356, and CS4306 for seniors.
Expectations:
E1. Besides the listed prerequisites students should genuinely enjoy creating working solutions to sophisticated programming problems.
E2. Besides the listed prerequisites students should be able to assiduously and correctly carry out detailed instructions for problem submission, both to robot judges and to the instructor.
E3. Besides the listed prerequisites students should have the time to (1) regularly attend the weekly class and practice session and (2) to successfully complete one programming problem a week.
Course Outcomes |
|
R1. Students will have a basic understanding of the nature of both individual and team contest computer programming, and how to achieve a high score when competing in these contests. (CS/SE 2, CS/SE 3, CS 6, CS/SE 7, CS/SE 11, CS 14)
R2. Given an ACM or TopCoder contest problem, students can recognize which of the handful of generic techniques are appropriate for a time and space constrained solution to the problem. (CS/SE 3, CS/SE 11, SE 14)
R3. Using the course contest problem play book, and a program development environment of their choice, students can quickly design, code, test, and debug a solution that we be accepted by a contest robot judge. (CS/SE 3, CS 6, CS/SE 11, SE 14)
|