#### UMBC CMSC641, Design & Analysis of Algorithms, Spring 2001

# Course Description

#### Textbook

*Introduction to Algorithms*, Cormen, Leiserson and Rivest. McGraw-Hill.

#### Prerequisites

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), Chapter 17 (greedy algorithms) 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 Ph.D.\ comprehensive exam contains topics that are
covered more thoroughly in the undergraduate algorithms course (e.g.,
solving recurrences).

#### Objectives

Although this might be the last course in algorithms that you 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 and two exams. There will be a total of 13 homework
assignments each worth 5% for a total of 65%. The midterm exam
is worth 15% and the final exam 20%.

#### Homework Policy

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) four assignments up to one week late
without penalty.

#### Email

When appropriate questions about homework and lectures may be
submitted by email. This is especially useful if you cannot make it
to office hours on a regular basis. Please note that unless you
request otherwise, the contents of your email message is likely
to be forwarded to the entire class --- especially if the question
is a good question.

Last Modified:
27 Jun 2001 13:25:55 EDT
by

Richard Chang
Back up
to Spring 2001 CMSC 641 Homepage