CMSC420 Advanced Data Structures (Section 0201), Fall 2021

Instructor: Aravind Srinivasan
Class Venue and Time: ESJ 2208, TuTh 11AM - 12: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: IRB 4164, Phone: 301-405-2695
Instructor's Office Hours: By Zoom Mon, Wed 9-10AM (Zoom link will be shared on Piazza), or by appointment (please email Aravind)
TAs: Sweta Agrawal (sweagraw AT umd), Hong-Min Chu (hmchu AT CS), Yunheng Han (yhhan AT umd), Dhruva Sahrawat (dhruva7 AT umd), and Niall Luke Williams (niallw AT CS).
TA Office Hours: TBA.
Course Time and Location: Tue, Thu 11-12:15, ESJ 2208
Course Webpage:

Textbook, Lecture Notes and Related Resources

There is no required text; we will very closely follow Prof. David Mount's lecture notes at

The books below are suggested reference material.

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 fundamental data structures, the algorithms for building and maintaining them, and the mathematical methods for analyzing their efficiencies. Applications in areas such as information retrieval, text processing, operating systems, and geographic information systems will also be discussed. Course material will be reinforced through mathematically-oriented homework problems and programming assignments.

Topics include: Description, properties, and storage allocation functions of data structures including balanced binary trees, B-Trees, hash tables, skiplists, tries, kd-trees and quadtrees. Algorithms for manipulating structures. Applications from areas such as string processing, computer graphics, information retrieval, computer networks, computer vision, and operating systems.

We will closely follow Prof. David Mount's Spring 2021 class structure from

Grading, Homework, and Exams

There will be a combination of written homeworks (about three), programming assignments (about four), two midterm exams, and a final exam.

All homework and programming assignments are to be done individually, but discussions with classmates are encouraged: just list the classmates you discussed the assignment with.

Weight of assignments: two midterm exams (15% each), written homeworks (20-25% total), programming assignments (20-25% total), and final exam (25%).

The mid-term dates will be announced soon.

Unless otherwise noted, the following late policy shall be applied to all course work (written homework assignments and programming assignments).

Any online exams must be submitted by the deadline. Late exam submissions will receive zero points.

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 class or by email, a letter of accommodation from the Office of Disability Support Services (DSS) within the first two weeks of the semester.

COVID-19--related issues, Excused Absences, Academic Integrity, and Additional Info.

Please see the Masking mandate at

For COVID-19--related Disability Accommodations & Requests for Consideration, see

The policy on excused absences is at

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

Web Accessibility