Course Outline

CSci3110 Introduction to Algorithms

Dr. Andrew Rau-Chaplin (arc@cs.dal.ca)

Official Outline
This course covers techniques for the design and analysis of efficient algorithms and data structures. Topics include: recursion, divide and conquer, greedy methods, dynamic programming, hashing, and randomization. The techniques are applied to problems such as sorting, searching, set/graph manipulation, and data structure design and use.

Marking
Problem Sets (4) 20%
Performance Challenge (1) 10%
In Class Test (1) 15%
Take Home Test (1) 15%
Final Exam (1) 40%

Note: Outside of the performance challenge there will be no programming problems in this course. Grading scheme subject to change at any time. A calculator and a personal "cheat sheet" consisting of an 8.5" * 11" sheet of paper (writing both sides) will be permitted in the in class test and final exam.

NO LATE ASSIGNMENTS ACCEPTED WITHOUT A DOCTORS NOTE.

Collaboration
It is a good idea to form study groups. Talk to your friends, but write up your own work. Acknowledge all collaborators in the write up for each problem. Acknowledge any other sources. Plagiarism and other anti-intellectual behavior will be dealt with severely. ALL CASES OF SUSPECTED PLAGIARISM WILL BE IMMEDIATELY HANDED OVER THE UNIVERSITY'S
SENATE DISCIPLINE COMMITTEE. Please read the university policy on intellectual honesty  (http://www.registrar.dal.ca/calendar/front/ureg.htm#10) and for more information and resources see the Dalhousie Plagiarism page (http://plagiarism.dal.ca/).

Textbook
Introduction to Algorithms (2
nd Edition) by Cormen, Leiserson , Revest, and Stein (MIT Press).

Reference Texts
The Design and Analysis of Algorithms by Aho, Hopcroft and Ullman. Introduction to Algorithms by Manber. The Design and Analysis of Algorithms by Kozen.

The Lectures
The course consists of approximately 22 lectures. Lecture attendance not required, but historically non-attendance = poor grade. Attendance and participation will be used when considering how to handle grade cusp situations.

Tutorials
Attendance at the tutorials is not required but likely very useful. Tutorials will be typically lead by the teaching assistant and will be mostly problem solving sessions. The in class test may also be held in the tutorial period.