Comp 314/315 -- Problem Solving Strategies -- Fall Semester

Instructor : Dr. Andrew Harrington  Contact information:


This course started as a means to give undergraduate ACM programing team members academic credit for their participation. The class work will be designed to help these people. We will mostly work old programming team competition problems, alone and in groups, and discuss strategies for solving such problems effectively. You do not need to be interested in the official team to find these problems and the discussions about them interesting. You do NOT need to agree to be on the team to be in the class. You are welcomed to be in the class if you just want to sharpen your problem solving skills. The competition problems are reasonable ones to work on with or without the competition.  The problems are at a level requiring that you have already had an introductory programming course and have taken or are enrolled in Comp 271, or an equivalent Data Structure course.

By participating twice, you can get 3 elective credits toward the majors in the Computer Science Department (one credit course the first time,314, and two credits the second time, 315).

The ACM programming competition

Every year the ACM puts on a programming competition for up to two teams from each school, with three members per team.  The competition is generally the first Saturday in November, all day. See the page for the ACM programing team for a better introduction and for detailed information.

It is my responsibility to choose the teams. You can join the class and then see if you are chosen for a team, based on how you work, and work together in groups as in the competition.  I encourage students without a lot of experience to come and learn and strive to be on a team in a later year. (You can come back for Comp 315.)

First Meeting

See the description of the first meeting, and what to do if you cannot attend, here.


This is a course with clear objectives, where I should be able to see your participation every week. There will be no midterm or final exam. I expect everyone who participates fully to get an A or a B. To participate you DO need to attend, coming on time and not leaving early. Also you need to complete problems successfully. A long list of things started and not finished is not helpful.

Semester schedule

The general semester schedule and practice information are given in the page for the  ACM programing team.   The practice schedule is generally agreed on in an inital meeting the first week of class.  The time should be listed on the department's Fall web schedule of classes under both 314 and 315. If you are clearly not interested in the team, but only gaining experience, we may make some accomodation for you to participate less in our formal practice time and do more independent work, though working together is a big part of the experience.