Required recitation for CSCI-UA.480-004. Many of the top firms in the technological and financial sectors are using algorithmic problems as interview questions for assessing candidate skill. In this course we take this idea one step further and use algorithmic problem solving as way to hone programming skills. Students will use the material covered in the data structures and algorithms courses and learn new algorithmic techniques to solve challenging problems quickly. Each week will be devoted to a particular type of algorithm. Weekly problem sets will reinforce the lecture, and require students to implement their solutions in Java or C++. Students completing this course will be well prepared to participate in programming competitions such as the ACM Inter-Collegiate Programming Contest, TopCoder, and Google's Code Jam.