The goal of this course is give students the opportunity to test their programming skills on tricky challenges, games and puzzles by means of programming competitions.




Office hours:

David BecerraFriday 2pm-3pmENGTR 3150

Course Webpage:

Course Material:
There is no required material; however, I recommend the following material:



Course Format:
The course consists of nine 1-hour lectures, and four 3-hour lab meeting / programming contests. In addition to the 21 hours of in-class work, the students will be given training problems to exercise their skills at home, which brings the total amount of work for the course to approximately 42 hours. The course material will be covered before the week of exams on April.

Your final grade will be calculated as follows:

The contests will consist of 5-10 problems of varyingly difficulty to be solved in three hours. The first contest is individual and the remaining two are taken in teams of three students. The team that solves the most problems in the fewest attempts in the least cumulative time will be declared the winner.


Release DateDue DateAnnounce
Jan 09The first class of COMP321 will be on January 17th
Jan 17Welcome to COMP321!
Jan 24January 31stAssignment 1 is out
Jan 31February 7thAssignment 2 is out
Feb 07February 14thAssignment 3 is out
Feb 15February 22thAssignment 4 is out
Feb 24March 7thAssignment 5 is out
Mar 08March 15thAssignment 6 is out
Mar 18March 25thAssignment 7 is out
Apr 06Apr 13thAssignment 9 is out


Lecture 1Jan 17Presentation of the courseLecture 1, KattisGuide
Lecture 2Jan 24Data StructuresLecture 2, Assignment 1
Lecture 3Jan 31Sorting + StringLecture 3, Assignment 2
Lecture 4Feb 07Algorithm Design Paradigms 1Lecture 4, Assignment 3
Lecture 5Feb 14Algorithm Design Paradigms 2Lecture 5, Assignment 4
Lecture 6Feb 21Algorithm Design Paradigms 3 Assignment 5
Lecture 7Mar 07Graph TheoryLecture 6, Assignment 6
Lecture 8Mar 14Computational GeometryLecture 7, Assignment 7
Contest 0Mar 18, 10:00am-1:00pm in ENGTR 3120
Lecture 8Mar 21Algebra + Number TheoryLecture 8, Assignment 8
Contest 1Mar 25, 10:00am-1:00pm in ENGTR 3120
Lecture 9Mar 28CombinatoricsLecture 9, Assignment 9
Contest 2Apr 01, 10:00am-1:00pm in ENGTR 3120
Contest 3Apr 08, 10:00am-1:00pm in ENGTR 3120



Policy on discussion
We are in this course to learn. We are all a team. Then, we must respect the ideas, questions and opinions of our mates. All the ideas about how to solve a problem are valuable and welcome.

Policy on collaborations
I greatly encourage you to discuss the assignment and contest problems with each other in your team. You are also encouraged to discuss with other teams members (but not during the last three contests). However, these discussions should not so far that you are sharing code or giving away the answer. A rule of thumb is that your discussions should be considered public in the sense that anything you share with a friend should be sharable with any student in the class. It is highly possible that you will find solutions to the contests on-line. Please do not copy the answers. You are registered in this course to train your problem solving skills and copying code from others does not help you in this goal. If you will copy/paste code, you should atleast understand the code that you are copying.

Policy on re-grading
The grading will be given by the online judges. Judging is relentlessly strict and the grading will be based on the online judge acceptance criteria. There is no re-grading for this course.

Policy on final grades
I will use the same rules and formula for calculating the final grade for everyone. I understand that your performances may be influenced by many factors, possibly out of your control. However, that is the only way we can be fair. One exception will be medical exceptions. In that case, I will require a medical note, which has to be also reported to McGill, and to be informed as early as possible. Failure to comply to these rules, may results in the impossibility to invoke a medical exception.

Policy on Assignments
Due date/time, location/mode for returning your solutions, and accepted formats will be announced in class and indicated on the course web page.
Failure to return your assignment in time will results in penalties or even absence of grading. Late submission of 24h or less will receive a penalty of 25%. In all other cases, your assignment will be refused and not graded.

Use of French in assignments and contest
In accordance with McGill University’s Charter of Students’ Rights, students in this course have the right to submit in English or in French any written work that is to be graded. Based on the rules of the ICPC, the language of the Contest is English and all written contest materials will be in English.

McGill policies
McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offenses under the Code of Student Conduct and Disciplinary Procedures. See this link for more information.


If you have any additional question, you can contact the instructor:

David Becerra
3630 University Street, Room 3150, Montreal QC H3A 0C6

Based on a template from