Winter 2025 Lectures
There will be 11 modules with lecture-content, each taking about 2 lectures (with module 1 taking less and modules 8-11 expected to take longer). Modules will be made available before class (links will get enabled as the course progresses).
The course notes are available from the protected files area. If you want further reading, a list of textbooks that cover the topics of the course well are listed below, and specific relevant areas are listed with each module.
Module # | Topic | Readings |
---|---|---|
Module 0 | Administrivia | None |
Module 1 | Introduction and Asymptotic Analysis |
Course notes Chapter 1 (skip 1.5 for now) Optional: Course notes Appendix A-B if you need a refresher. Optional: Goodrich & Tamassia 1.1, 1.2, 1.3 Optional: Sedgewick 8.2, 8.3 |
Module 2 | Priority Queues |
Course notes Chapter 2 (and parts of 1.5) Optional: Sedgewick 9.1 - 9.4 |
Module 3 (updated) |
Sorting, Average-Case and Randomized Algorithms |
Course notes Chapter 3 (and parts of 1.5) Optional: Goodrich & Tamassia 8.3 Optional: Sedgewick 6.10, 7.1, 7.2, 7.8, 10.3, 10.5 |
Module 4 | Dictionaries |
Course notes Chapter 4 (and parts of 1.5) Optional: Goodrich & Tamassia 3.1, 4.1, 4.2 |
Module 5 | Other Dictionary Implementations |
Course notes Chapter 5 Optional: Sedgewick 9.1-9.4 |
Module 6 | Dictionaries for Special Keys |
Course notes Chapter 6 Optional: Goodrich & Tamassia 23.5.1-23.5.2 Optional: Sedgewick 12.4, 15.2-15.4 |
Module 7 | Dictionaries via Hashing |
Course notes Chapter 7 Optional: Goodrich & Tamassia 6.4 Optional: Sedgewick 12.2, 14.1 - 14.4 |
Module 8 | Range-Searching in Dictionaries of Points |
Course notes Chapter 8 Optional: Goodrich & Tamassia 21.1, 21.3 |
Module 9 | String Matching |
Course notes Chapter 9 Optional: Goodrich & Tamassia 23 |
Module 10 | Compression |
Course notes Chapter 10 Optional: Goodrich & Tamassia 10.3 |
Module 11 | External Memory |
Course notes Chapter 11 Optional: Goodrich & Tamassia 20.1-20.3 Optional: Sedgewick 16.4 |
Textbooks
Course notes:- CS240: Data Structures and Data Management by Therese Biedl
with the help of many fellow CS 240 instructors is available
from the protected files area.
Module X corresponds roughly to Chapter X of the course notes, but occasionally a different order made more sense for the notes---follow the instructions given in the notes. Usually you can skip 'Historical remarks' or 'Supplemental material' (but see what is actually covered in class).
- For some of its figures, the latex source is available. This may be freely used when writing assignments.
The following books are on reserve in the DC library for a different viewpoint and/or further details:
- [Goodrich & Tamassia] Algorithm Design and Applications (2015)
by Michael T. Goodrich, Roberto Tamassia (mountain scene)
- [Sedgewick] Algorithms in C++, Third Edition (1998)
by Robert Sedgewick, Addison-Wesley
- [BKOS] Computational Geometry: Algorithms and Applications
by Mark de Berg, Otfried Cheong, Marc van Kreveld and Mark Overmars.
Reference for multi-dimensional data structures. - [CLRS] Introduction to Algorithms, 2nd edition (2001)
by T.H. Cormen, C.E. Leiserson, R.L. Rivest and C. Stein, McGraw-Hill
Introduction to Algorithms, 2nd edition is also avaliable online (in campus).