UMBC CMSC441H, Design & Analysis of Algorithms, Spring 2005, Honors Section

Course Description


Algorithm Design, preprint, Jon Kleinberg and Éva Tardos. Addison-Wesley.
Note:The textbook is not yet in print. We have the publisher's permission to make copies of the preprint.


Students taking CMSC 441H should have mastered the material covered in the following courses: CMSC 201 & 202 (Computer Science I & II), CMSC 203 (Discrete Structures), CMSC 341 (Data Structures) and MATH 152 (Calculus and Analytic Geometry II). In particular, proficiency in the implementation of the elementary data structures (e.g. stacks, queues, linked lists, heaps, balanced binary trees and graphs) in C/C++ or Java is assumed.


In this course students will

  1. learn the quantitative methods used in the analysis of algorithms;
  2. sharpen their problem solving skills through the design of algorithms; and
  3. learn to write explanations for the correctness of algorithms and justifications for their performance.
A secondary goal of this course is to familiarize students with a range of fundamental algorithms. Since this is the honors section of the course, it will place greater emphasis on algorithm design.


Final grades will be based upon homework assignments (36% total), quizzes (36% total) and the final exam (28%). The syllabus lists 13 homework assignments and 6 quizzes. However, if a homework assignment or quiz is canceled and not made up (e.g., because school is closed for snow or hurricane), the proportion of your grade from homework, quizzes and the final exam will remain the same. That is, homework will still count for 36% of your grade and quizzes 36% of your grade (each homework or quiz will have greater weight). In any case, the lowest homework grade will be dropped.

The final letter grades are based on the standard formula:

0 <= F < 60,    60 <= D < 70,    70 <= C < 80, 80 <= B < 90,    90 <= A <= 100

Grades will not be "curved" in the sense that the percentages of A's, B's and C's are not fixed. As a guideline, a student receiving an "A" should be able to solve the homework problems with facility; design and analyze new algorithms in written exams; and demonstrate an understanding of the impact of theoretical analysis in practical programming settings.

Grades are given for work done during the semester; incomplete grades will only be given for medical illness or other such dire circumstances.


In-class quizzes are scheduled for Thursday 2/24, 3/10, 3/31, 4/14, 4/28 and 5/12. Please make every effort to attend --- unexcused absences will result in a grade of zero for that quiz. Each quiz will be held during the last 30 minutes of the class period. The quiz will consist of a single question (possibly with multiple parts) on a pre-announced topic.

Lecture and Homework Policy

Students are expected to attend all lectures and are responsible for all material covered in the lecture as well as those in the assigned reading. However, this subject cannot be learned simply by listening to the lectures and reading the book. In order to master the material, you must spend time outside the classroom, to think, to work out the homework and understand the solutions.

Assignments are due at the beginning of lecture. Late homework will not be accepted --- this is to allow for timely grading and discussion of the homework solutions. Reasonable provisions will be made for students who are delayed by traffic, who are on travel, ... Late homework will be rejected from students who have obviously been working on homework instead of attending lecture. Partial credit will be given for serious attempts on the homework problems. So you should simply turn in whatever you have accomplished by the beginning of class. If you cannot attend lecture when homework is due, for some honorable reason, you must make arrangements to submit your homework directly to the instructor. Do not ask another student to submit your homework for you. This is to reduce the temptation to cheat (see below).

Working Together

Students are allowed, and even encouraged, to collaborate on homework problems. Collaborators and reference materials must be acknowledged at the top of each homework assignment. However, homework solutions must be written up independently. A student who is looking at someone else's solution or notes, whether in print or in electronic form, while writing up his or her own solution is considered to be cheating. Cases of academic dishonesty will be dealt with severely.

The UMBC academic integrity policy is available at


The final exam will be given on Tuesday, May 24, 1:00pm-3:00pm.

Last Modified: 28 Jan 2005 13:55:03 EST by Richard Chang
to Spring 2005 CMSC 441H Section Homepage