Computer Science 385
Competitive Programming

Spring 2015, The College of Saint Rose



Dr. James D. Teresco, Albertus Hall 400-2, (518) 485-3755
Electronic mail: terescoj AT (best contact method)
Instructor: Dr. Mark R. Gilder, Albertus 400-1, (518) 454-5191
Electronic mail: gilderm AT
Class URL: [Link]
Class hour: Monday 2:40-3:55, Albertus 114
Office hours: TBD, and by appointment


Everything on this syllabus is subject to change. Changes will be announced in class and updated in the online version of the syllabus.

Course Objectives

From the course catalog: "This course allows students to hone their general programming skills while learning techinques to design and implement programs to solve a specific problem as quickly as possible. Programming in "competitive" environments, such as programming contests, is one place such skills are especially useful. However, the same skills are valuable in many situations across a wide variety of disciplines. Students in the course are expected to complete weekly programming tasks, culminating in a local programming contest where they will have a chance to compete for a spot on the school's regional programming contest team."



There is no text for this course.


Everyone is expected to attend class and participate in discussions. There is no formal attendance policy, but a lack of regular attendance will result in a lower participation grade. Supplemental readings are listed on the lecture and reading schedule.

Be prompt, prepared, and ready to focus on the day's work. This should go without saying, but this means your phones and other devices not being used exclusively to follow along with class materials and/or to take notes must be powered off. As we meet in a computer lab, no food or drink will be allowed.

The lecture and reading schedule has a link to a web page for each lecture highlighting the day's topics, listing any class examples, assigned readings, and links to assignments. The notes used to guide any in-class presentations are also available as PDF files linked from the lecture and reading schedule.


Homework will be assigned most weeks, due the following week. The number of points available will vary with the complexity of the assignment.

Most of your work will be to complete practice programming tasks, much like those found in competitive environments (most are taken from old ACM or other programming contests). You will also be required to do some strategy work and to prepare materials that would be useful in a contest environment.

All assignments are to be submitted electronically using the procedure specified on each assignment handout. Please submit written work in portable formats (plain text where appropriate and PDF otherwise). If in doubt about a file format, please check before submitting. Keep a copy of all submissions for yourself. For submissions consisting of more than one file, you will normally be required to submit a single archive (.zip, .7z, and .tar.gz files are acceptable) containing all necessary files.


Grades for individual assignments and exams are not scaled. Any scaling deemed appropriate will take place at the end of the semester by adjusting the thresholds. The following thresholds may be adjusted downward (thereby raising grades) but will never be adjusted upward.


Participation 20% A >= 93% A- >= 90%
Practice Programs 50% B+ >= 87% B >= 83% B- >= 80%
Solution Presentations 10% C+ >= 77% C >= 70%
Strategy and Resource Documents 20% D >= 65%
F < 65%

College policy forbids changing of course grades after they are submitted except in very specific cases (such as an error in grading of an assignment or in computation of a grade). Any such errors that slip through must be found and rectified quickly after grades are submitted. In rare circumstances, a student request for an incomplete grade may be approved at the discretion of the instructor. Requests must be made one week prior to the end of the semester, and terms of such arrangements must be mutually agreed upon before grades are submitted.


Every college student should be motivated to attend every lecture and lab meeting for all the right reasons (e.g., desire for knowledge, desire to get the most out of every very expensive minute, etc.). As college students, you understand that regular attendance is essential to your ability to master the course material.

Therefore, there is no formal attendance policy. You are expected to attend regularly, and should still see the instructor about any excused absences. An excused absence may be any of the following:

  1. A documented athletic or academic event that conflicts with a class meeting. The required paperwork must be presented in person at least one week prior to the event.
  2. A family emergency.
  3. Personal illness.

While there is no formal penalty for unexecused absences, missing class regularly, frequent tardiness, or being distracted in class (e.g., checking your phone or Facebook) will be considered a sign that you are not taking the course seriously. Common sense suggests and experience validates that students who are frequently absent, late, or inattentive perform poorly on graded work. Do not expect compassion when final grades are assigned or extensive extra help if you do not understand a topic that was covered while you were absent without a valid excuse.

Disability Accomodations

If you are a student with a documented disability and require academic accommodations please register with Lynn Cantwell, the Director of Services for Students with Disabilities, located in the Academic Support Center on the 2nd floor of St. Joseph Hall (campus extension 2335 or 518-337-2335, off campus) for disability verification and for determination of recommended reasonable academic accommodations. After you have made arrangements with that office, please see me to discuss your accommodations. Please remember that timely notice will help avoid a delay in your receipt of accommodations.

Academic Integrity

You are encouraged to discuss the concepts related to course assignments and exams with your classmates. This is an essential part of a healthy academic environment. However, work submitted for grading must be your own (or the combined work of group members, for group assignments). Any unauthorized copying or collaboration is considered a breach of academic integrity and will not be tolerated. Plagiarism, cheating, academic misconduct, or any other submission of another's work as one's own are unacceptable. Students working in groups are each individually responsible for the academic integrity of the entire group project. Academic dishonesty cases are unpleasant and uncomfortable for everyone involved. You are responsible for reading and understanding The College of Saint Rose Policy on Plagiarism and Academic Integrity.

The minimum penalties for a first violation will include failure (0 grade) for the assignment or exam in question and the filing of a Academic Dishonesty Report Form with the Registrar's office. A second violation will result in failure of the course and a second Academic Dishonesty Report Form.

If there is any doubt about the degree of collaboration allowed or the permitted sources for a particular assignment, please ask for clarification before collaborating or consulting the source. Any such collaborations or sources must be cited properly.