CMSC 641 Design & Analysis of Algorithms, Fall 2014

Course Description




An undergraduate course on algorithms is a prerequisite for this class. At UMBC, the undergraduate algorithms course (CMSC 441) uses the same textbook and typically covers Chapters 1-4, Appendix A (Big-O notation, recurrences and summations), Chapters 6-9 (Heapsort, Quicksort, "linear-time" sorts and linear-time median algorithms), Chapter 15 (dynamic programming), Chapter 16 (greedy algorithms) and Chapters 22-25 (graph search algorithms, minimum spanning trees and shortest path algorithms). In addition hash tables and balanced binary trees are covered in CMSC 341 Data Structures. There will be minimal overlap in the material covered in the CMSC 441 and CMSC 641. If you are not familiar with some of these topics, you must have enough preparation to review the material on your own.


The objective of this course is to prepare you to learn new algorithms — either from the literature or by designing your own new algorithms. Thus, this class will have you:
  1. master advanced algorithm analysis techniques,
  2. practice designing "new" algorithms,
  3. accumulate the background knowledge needed to read and understand algorithms published in research journals, and
  4. develop the writing skills for clear and logical presentation of algorithms.


Your performance in this course will be based upon 13 homework assignments, 5 tests and the final exam and will be weighted as follows:
 Final Exam30%

Tests and Exams

Tests will take place in the classroom. The first three tests will be held during the last 30 minutes of the class period. Test #4 and #5 will take the entire class period. Each test will be on a single pre-announced topic. The dates of the tests are provided on the class schedule. The final exam scheduled on Thursday, December 11, 8am – 10am.

Seating at the tests and final exam will be randomized.


The purpose of the lectures is to explain the parts of the reading that are difficult to understand. Lectures do not replace the reading. Lectures will mostly be presented on the whiteboard. You will need to take notes. It is not necessary to have Powerpoint slides with a detailed write up of the material because that is in your textbook (which you should read).

If you miss a lecture, you should borrow notes from a classmate. There is not enough time during office hours to repeat lectures for individual students.

Homework Policy and Academic Integrity

The purpose of homework is for you to practice solving problems and for you to receive feedback on your work before the tests. You should take advantage of this opportunity. It is unlikely that you will learn much from finding solutions online. If you do not learn from doing your homework, the tests will be difficult.

You are encouraged to discuss the homework problems with your classmates. However, 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, ... The minimum penalty for copying homework is that all students involved in copying will receive a grade of zero for the assignment. Cheating by graduate students is considered especially egregious because graduate students serving as teaching assistants are in a position of responsibility and must themselves uphold the university's academic integrity.

The UMBC Graduate School's academic integrity policy is available at: .

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 quizzes. If you have an excusable absence (e.g., travel for work, conference attendance, medical illness), please make arrangements with the instructor as early as possible.

Last Modified: 27 Aug 2014 00:49:57 EDT by Richard Chang
to Fall 2014 CMSC 641 Homepage