Course Outline

Algorithms and Data Structures
COMP 251      Winter 2014

link to public Course Web Page

Instructor: Professor Michael Langer
Lectures: Tues, Thurs  10:05-11:25 pm, BRONF 151
Office hours: Tues, Thurs 11:30-12:30 pm, or by appointment


The official prerequisite for this course is COMP 250 Introduction to Computer Science . It would be helpful (but not strictly speaking necessary) if you have some background in basic discrete mathematics such as set theory and logic which will be needed to follow some of the proofs and derivations that we cover, e.g. a course such as MATH 240, 363, or 235.

Course Material

The specific topics and lecture schedule can be found on the public course web page.

There is no required textbook. Lecture slides will be made available in PDF form on the public course web page along with links to other material including online courses (videos), and exercises which will reinforce and broaden your understanding of the material.

Discussion Board

Please follow common sense rules and etiquette for discussion board postings: be polite, avoid texting shorthand ("ur" instead of "you are", ...), choose a suitable subject line for your posting and use multiple postings for multiple subjects, keep your postings brief, etc. In addition, to try to maximize the usefulness of the discussion board and to minimize clutter:

Policy on collaboration

We greatly encourage you to discuss the assignment problems with each other. 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 considered public in the sense that anything you share with a friend should be sharable with any student in the class.


Your final grade will be calculated using the following percentage breakdown. The exams are closed book, except for a small number (say max 5) of doublesided pages of notes.

No electronic devices are allowed.

If your percentage grade on the Final Exam is greater than your percentage grade on the two midterms, then your Final Exam grade will count for 75 % of your final grade and the two midterms will count for 0%. This policy allows some flexibility, for example, if you do not write one or both of the midterms.

Policy on re-grading: if you wish me to re-grade a question on an exam (or assignment), I will do so. However, to avoid grade ratcheting, I reserve the right to re-grade other questions on your exam as well.

Policy on bonus points: It is helpful to me and to other students if you inform me of errors in the lecture slides, exercises, or assignments. For this reason, I will give a small bonus in your final grade if you point out such errors.

Policy on final grades: I realize that there are many factors that determine your grades. These include how interested you are, how hard you work and how talented you are, but also whether you have fewer hours to do the work because you have a part time job or other assignments/exams around the same time, whether you have a long commute to school, whether you were adequately prepared for the course by having done well in the prerequisites, what you health situation is, what sort of family issues or emergencies you have to deal with, etc. When I assign your final course grade, I do not take these factors into account. I assign the final grade only based on your assignment and exam scores. I use a formula and the same formula applies to everyone. That is the only way I can be fair. (The only exceptions are if you have a medical circumstance that is officially reported to McGill, and in this case I need to know beforehand, and the bonus points I mentioned above.)

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.

In accord 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.