CSCI-Y 390
ACM-ICPC Training
Spring 2013

Esfandiar Haghverdi
Lindley Hall 330C

Chris Raphael
Lindley Hall 215


5:30-7:00 p.m.
Room: LH 008



Weekly schedule

Description: This is a seminar course with the specific goal of training undergraduate students for ACM-ICPC (International Collegiate Programming Contest.) ICPC is a 2-tier competition and the first step is to pass the regionals that take place in the Fall, every year. This course will be taught by multiple instructors to ensure that students get the best instructions on each topic. For details about the competition see this page. Note that coding competitions are good preparation for technical interviews, since both require problem solving and writing code in a high-pressure, time-limited setting.

Prior exposure to programming and the consent of the instructor.

Tentative Syllabus:

  • Array and iteration problems
  • Data structures
  • String problems
  • Sorting problems
  • Arithmetic problems
  • Combinatorics problems
  • Number theory problems
  • Backtracking problems
  • Graph traversal problems
  • Graph algorithms
  • Dynamic programming
  • Grid problems
  • Geometry problems
  • Computational geometry


    We will be using many books and problem sets. Thus there is no single textbook for the course, however we will closely follow the material and presentation that can be found in the following books that are strongly recommended.
  • Programming Challenges: The Programming Contest Training Manual, S. Skiena and M. Revilla, Springer 2003.
  • The Algorithm Design Manual, second edition, S. Skiena, Springer-Verlag, 2008.
  • Art of Programming Contest, 2nd edition, A.S. Arefin, Gyankosh Prokashoni, Bangladesh. Available Online.

Handouts and Homework: All handouts and homework assignments will be posted on Oncourse.


  • Homework assignments: 50%
    • There will be weekly homework assignments.
    • Solutions must be written LEGIBLY.
    • It is encouraged to discuss the problem sets with others, but everyone needs to turn in a unique personal write-up.
  • Problem sets: 50%

Associate Instructor:

  • Tianhao Cao

Ground rules:

  • Collaborative work:
    One of the best ways to learn new material is to collaborate in groups. You may discuss the homework problems with your classmates, and in this way make the learning process more enjoyable. However, the homework you hand in must be your own work, in your own words and your own explanation. As for projects completed by groups, the contributions of each member must be clearly explained on a separate page.
  • Here is the link to The Code of Student Conduct.