Prerequisites: CS 310 and permission of instructor
In this class, students will refine their problem solving and programming skills, while gaining experience in teamwork. The central focus will be on putting familiar and new algorithms with their data structures to use in novel circumstances.
This is a 1-credit, half semester course.
Each session in the first part of the course will begin with an interactive lecture on a particular problem type and continue with a lab session on implementing problems of this type in C, C++ or Java. Example domains include graph algorithms, optimization, basic computational geometry, semantic analysis.
The remainder of the course will be homeworks and labs conducted as programming contests for individuals and teams. In these sessions, the students will be given a set of problems of different types and they will have to figure out what techniques are needed for the problems and implement solutions.