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:
  1. to master advanced algorithm analysis techniques
  2. to practice designing "new" algorithms
  3. to accumulate the background knowledge needed to read and understand algorithms published in research journals
  4. 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