CMSC451 Design and Analysis of Computer Algorithms (Section 0301), Fall 2018

Instructor: Aravind Srinivasan
Class Venue and Time: CSIC 2117, TuTh 2-3:15PM

tl;dr -- Students: please add yourselves to the Piazza page for the class! We will use Piazza extensively.

Administrative Details

Instructor: Aravind Srinivasan
Office: AVW 3263, Phone: 301-405-2695
Instructor's Office Hours: Tue, Thu 10-11 in AVW 3263, or by appointment (please email Aravind)
(Half-)TA: Karthik A. Sankararaman (kabinav AT cs)
TA Office Hours: Friday 3-4PM at AVW 4185.
Course Time and Location: Tue, Thu 2-3:15, CSIC 2117
Course Webpage:

Textbook, Lecture Notes and Related Resources

The required textbook is Algorithm Design by Kleinberg and Tardos. We may also occasionally use, among others, the following excellent publicly-available resources: We thank the authors for these very-helpful resources.

Aravind's Pledge to the Students

Your education is very important to me, and I respect each of you regardless of how you do in the class. My expectations of you are that you attend class and pay full attention, and give enough time to the course. I strongly encourage you to ask questions in class, and to come to the office hours (mine or the TAs') with any further questions. We can have a very enjoyable educational experience if you pay attention in class, give sufficient time to our course, and bring any difficulties you have promptly to our attention. I look forward to our interaction both inside and outside the classroom.

Course Overview

This course presents the fundamental techniques for designing efficient computer algorithms, proving their correctness, and analyzing their complexity. General topics include the following.

CMSC 351 is the prerequisite. 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, heaps), and calculus (logarithms, differentiation, integration). We will assume knowledge of the basic algorithm-analysis techniques covered in CMSC 351. All course materials, including the homework and project, will be posted on Piazza. The coursework will consist of 5 homework assignments and three exams (two midterms and a comprehensive final). Homework problems will be mathematically oriented.

Homeworks are to be turned in at the start of class on the due date. Since homework solutions will be handed out on the day the homework is due, no late homeworks will be accepted. You can discuss homeworks with other students, but with no help from the Web or other sources. Assignments are to be written up independently by each student, regardless of collaboration. If you have questions, please talk to the TA or the Instructor. It is your responsibility to make sure that you pick up all homeworks and handouts. All course information and handouts will be available on Piazza.

Grading, Homework, and Exams

Final grades will be based on homework assignments, the two midterm exams, and the comprehensive final exam with relative weights as follows:

Course Evaluation

Students are strongly encouraged to complete their course evaluations; please do so at the CourseEvalUM website when it is ready.

Academic Accommodations for Disabilities

Any student eligible for and requesting reasonable academic accommodations due to a disability is requested to provide, to the instructor in office hours, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.

Excused Absences, Academic Integrity, and Additional Info.

Please see the university's policies on various important issues.

Web Accessibility