CS 494/594: Special Topics in Competitive Programming Techniques

Spring/Summer/Fall 2004

 

 

Course Summary:

 

There are two goals for this course:

 

 

There are many additional benefits, such as exposure to new algorithms, group programming techniques, and general concerns regarding good design of software in a team environment. The course will have numerous lectures on specific algorithms and techniques. The lectures are to be followed by group efforts that solve previous contest problems from an application of the algorithm/techniques studied. Students will learn to identify typical solution patterns for commonly recurring contest problems (e.g., dynamic programming, parsing). The techniques for efficient utilization of resources within a team environment will also be studied and practiced. Students will be expected to meet outside of class for 2-3 hours each week to work on practice problems that are assigned.

 

Instructor:

 

Jeff Gray, Ph.D.

Email: gray (at) cis.uab.edu

Web: http://www.gray-area.org

 

Credit:

 

1 hour per semester; 3 semester sequence beginning in Spring 2004

 

Class size:

 

Ideally, 9-12 students with a diverse range of academic levels (mainly Juniors, but a few grads and even Freshmen, if possible).

 

Pre-requisites:

 

Permission from instructor required; very selective, not open enrollment.

We are looking for highly motivated students who have excellent programming skills.

 

Students who did not take the first part of the sequence during the Spring cannot take the Summer or Fall offering (unless there are very special circumstances).

 

Textbooks:

 

Steven S. Skiena and Miguel A. Revilla, Programming Challenges: The Programming Contest Training Manual, Springer-Verlag, 2003.

 

Jon Bentley, Programming Pearls, Addison-Wesley, 2000.

 

Additional supplements include numerous handouts/papers on past competition problems and solution techniques.