CSC 390 Programming Challenges

Objectives

Professor


Website


Attendance


Grades


Written Assignments




 


Objectives

  • To review algorithms and problem solving techniques for solving a variety of problems.
  • To improve concrete understanding of algorithmic techniques by using them to construct solutions to challenging problems.
  • To practice coding and testing solutions to the kinds of problems posed in programming contests

Professor

Dr. Christine Shannon 
Olin 115 
Phone: 5406 (Office) 238-7422 (Home) 
e-mail: shannon@centre.edu 
You might also be interested in visiting my home page at http://web.centre.edu/shannon/.

Office hours: I am generally on campus every day between 7:30 a.m. and 4 p.m. and often later than that.. If I am not in class, I am usually in my office or one of the computer labs. I will try to observe the following office hours and will notify you if I won't be available. 

M-W-F 9:00 -11:0 a.m.
T-Th 9:30 - 11:00 a..m.

Please feel free to come by at other times and you are always welcome to make an appointment. Textbooks and Software

Programming Website

You can find the archives for the Mid Central region of the ACM Programming contest at http://mcpc.cigas.net/archives.html

Attendance 

Because this class only meets one time per week, your attendance is very important. Every unexcused absence will lower your grade. Because we will get to try out what we learn at the programming contest which is in late October, this course will meet for 90 minutes for the first 10 weeks of the semester. Unless there is some extenuating circumstance, I assume you will participate in the programming contest and there will be no final. If you cannot participate, there will be an appropriate alternative during the final exam period..

Class will be devoted to a review and discussion of relevant material, student presentation of solutions, and the discussion of problems.

Grades

Your grade will be determined by the programs you write, the contribution you make to the problem solving discussions, and your presentations. I will give you a status report every two-three weeks. Generally, you should provide a solution to at least one of the problems each week.

Written Assignments 

Every year when we go to the programming contest, our teams are able to solve 2-4 problems and normally end up in the top half of the final placements -- sometimes coming in as high as third place. But we are usually stuck because we are unable to solve one of the harder problems that would push us up in the standings. In order to improve our ability to solve the problems, each week two pairs of students will be responsible for understanding the solution to one of the more difficult problems in a contest. These are available but the solution may be written in C++. You will present the main ideas of the problem -- without giving away the final code and then the rest of us will work in small groups to implement the solution. You can complete the solution by the next class meeting. Those who are taking the course for credit should submit electronic versions of the code.

The programming contest is actually done in teams but a great deal of the solution to problems is done individually. I want this to be collaborative but you should also work on solutions individually. When you write up the documentation for your problems, include a paragraph at the top to describe how much of this you did yourself and who helped you overcome difficulties. This kind of reflection is good. I suggest you each take a problem for which you are the leader. Work on it individually for a few days and then collaborate with others

The kind of programming that occurs in programming contests is NOT the kind of programming you will do on the job. BUT it is great for developing solid problem solving skills, reinforcing a knowledge of algorithms, and just plain having fun. Software houses like Microsoft and Exstream Software encourage their programmers to work on these kinds of problems.