UMBC CMSC641, Design & Analysis of Algorithms, Fall 1997
Introduction to Algorithms, Cormen, Leiserson and Rivest. McGraw-Hill.
An undergraduate course on algorithms is a prerequisite for this
class. At UMBC, the undergraduate course (CMSC 441) uses the same
textbook and covers Chapters 1-5 (Big-O notation, recurrences and
summations), Chapters 6-10 (Heapsort, Quicksort, "linear-time"
sorts and linear-time median algorithms), Chapters 11-14 (hash tables
and red-black trees), Chapter 16 (dynamic programming) and Chapters
23-26 (graph search algorithms, minimum spanning trees and shortest
path algorithms). There will be minimal overlap in the material
covered in the two courses. If your are not familiar with some of
these topics, you must have enough preparation to review the material
on your own. Note that the syllabus for the graduate comprehensive
exam contains topics that are covered more thoroughly in the
undergraduate algorithms course (e.g., solving recurrences).
Since this is quite likely to be the last algorithms course that you
might ever take, the objective of this course is not to fill your
brains with every algorithm that you would ever need. Instead, this
course should prepare you to learn new algorithms --- either from the
literature or by designing your own new algorithms. As such, the
objectives of this course are:
- to master advanced algorithm analysis techniques
- to practice designing "new" algorithms
- to accumulate the background knowledge needed to read and
understand algorithms published in research journals
- to develop the writing skills for clear and logical
presentation of algorithms
Homework and Grading
Your performance in this course will be based upon weekly homework
assignments, two take-home tests and the final exam. There will be a
total of 11 homework assignments, but only the ten best homework
scores will count toward your final average. These ten scores will
count for 60% of your total grade. Two take-home tests (12% each)
and the final exam (16%) make up the remaining 40% of your grade.
The first take-home test is due on Wednesday, October 8; the second on
Wednesday, November 12. The format of the final exam will be
announced at a later date.
Much of learning how to analyze and design an algorithm takes place
outside the classroom. A very good way to learn the material is to
work on the weekly assignments. While you are encouraged to discuss
the homework problems with your classmates, you must write up your
solutions on your own---i.e., without looking at
other people's homework, other people's notes, your notes of
other people's homework, your notes of other people's notes, etc.,
etc., and so forth. The difference between a homework assignment and
a take-home test is that you are not allowed to discuss problems on a
take-home test with anyone.
Some of the questions in the weekly assignments will be very hard. It
is not necessary for you to complete every homework question in order
to receive a good grade in the class. Although, this is certainly
desirable. As a rule, questions on the take-home tests will be easier
than the homework questions since each student is expected to be able
to complete every test question without assistance.
In general, homework must be submitted when they are due. This allows
for timely discussion of the solutions and for the graded assignments
to be returned before the tests. As a concession to "real life,"
you may submit (without excuse) three assignments up to one week late
3 Sep 1997 20:43:12 EDT
to Fall 1997 CMSC 641 Homepage