CMSC 351 - Algorithms


Course Description

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.


Homeworks are due at the start of class.

The following tips are borrowed from CMSC754, instructed by Dr. Dave Mount.

Some tips about writing algorithms: Henceforth, whenever you are asked to present an "algorithm," you should present three things: (1)the algorithm,(2)an informal proof of its correctness, and (3)a derivation of its running time. Remember that your description is intended to be read by a human, not a compiler, so conciseness and clarity are preferred over technical details. Unless otherwise stated, you may use any results from class, or results from any standard algorithm text. Nonetheless, be sufficiently complete that all critical issues are addressed, except for those that are obvious. (See the lecture notes for examples.)

General Information

Class Time/Location
The class meets MTuWThF, 9:30am-10:45am in CSI 1122
Clyde Kruskal (Email: kruskal@cs)
Office Hours
Monday, Wednesday, and Friday: 10:45am–12:00pm; AVW 3215
Teaching Assistant
Jun-Cheng Chen (Email: pullpull@cs)
Office Hours
Tuesday and Thursday: 11:00am-1:00pm; AVW 1112
Cormen , Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford. Introduction to Algorithms, second(or third) edition, MIT Press and McGraw-Hill


Syllabus (pdf)


grade server