CMSC 351: Algorithms
Spring 2004


Instructors:

Clyde Kruskal Fawzi Emad
Section: 0101 Sections: 0201, 0301
Office: AVW 3215 Office: AVW 1109
Office phone: 301-405-2683. Office phone: 301-405-8411
E-mail: kruskal@cs.umd.edu. E-mail: fpe@cs.umd.edu
Office hours: MW 9:30-11. Office hours: Tu 11-12, Th 2-4


Teaching Assistants:

Sunny Shin Tamer Elsayed Nikhil Swamy
Office phone: 301-405-2775 Office phone: 301-405-2722 Office phone: 301-405-2716
Email: sunny@cs.umd.edu Email: telsayed@cs.umd.edu Email: nswamy@cs.umd.edu
Office hours: F 10-12, Th 1-3 Office hours: MW 2-4 Office hours: MW 12-2


Course Overview:

This course presents an introduction to the techniques for designing efficient computer algorithms and analyzing their running times. General topics include asymptotics, solving summations and recurrences, algorithm design techniques, analysis of data structures, and introduction to NP-completeness.


Text:

Thomas Cormen, Charles Leiserson, Ron Rivest, and Clifford Stein, Introduction to Algorithms, McGraw Hill and MIT Press, Second Edition, 2001.


Prerequisites:

CMSC 214 and CMSC 250. Each student is expected to know the basic concepts of programming (e.g. loops, pointers, recursion), discrete mathematics (proof by induction, sets), simple data structures (lists, stacks, queues, trees), and calculus (logarithms, differentiation, integration).


Course Work:

Course work will consist of written homework assignments, and three exams (two midterms and a final). You may discuss homework problems and general solution strategies with classmates, but you must write up the solutions yourself.

As a courtesy to the grader, homeworks are to be written clearly and neatly. Poorly written work will not be graded. When writing algorithms be sure not only that your solution is correct, but also that it is easy for the grader to understand why your solution is correct. Part of your grade will be based not only on correctness, but also on the simplicity, clarity, and elegance of your solutions.


Grading:

Final grades will be based on the written assignments, the two midterm exams, and the final exam. The relative weights of these will be approximately 10% for the homework total, 25% for each midterm, and 40% for the final exam.


Topics Covered:

The following is a tentative list of topics and readings in approximate order. The chapters in parenthses are the chapter numbers from the First Edition. The topics in square brackets may or may not be covered.

  1. Introduction, Ch. 1,2 (Ch. 1)
  2. Growth of Functions, Ch. 3 (Ch. 2)
  3. Summations, Appendix A (Ch. 3)
  4. Recurrences, Ch. 4 (Ch. 4)
  5. Heapsort, Ch. 6 (Ch. 7)
  6. Quicksort, Ch. 7 (Ch. 8)
  7. Sorting in Linear Time, Ch. 8 (Ch. 9)
  8. Medians and Order Statistics, Ch. 9 (Ch. 10)
  9. Graphs and Trees, Appendix B (Ch. 5)
  10. {Sorting Networks, Ch. 27 (Ch. 28)}
  11. {String Matching, Ch. 32 (Ch. 34)}
  12. Brief introduction to NP-completeness, Ch. 34 (Ch. 36)

About this document ...

This document was generated using the LaTeX2HTML translator Version 2K.1beta (1.61)

Copyright © 1993, 1994, 1995, 1996, Nikos Drakos, Computer Based Learning Unit, University of Leeds.
Copyright © 1997, 1998, 1999, Ross Moore, Mathematics Department, Macquarie University, Sydney.

The command line arguments were:
latex2html -show_section_numbers -split 0 -no_navigation -no_footnode 351syllabus

The translation was initiated by Fawzi Emad on 2004-02-12


Fawzi Emad 2004-02-12