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