Lectures are held every Tuesday and Thursday throughout the term. Students are asked to attend their assigned lecture section, as seating in the classroom is limited.
Lecture slides will appear on this page. Sometimes these include animations/overlays, in case of which there will be both a Display version (with them) and a Print version (omitting them, but otherwise the same content).
The individual chapters of 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.
Where technology allows, screen-casts from the lecture, and scans of the scribbles on the slide-prints, will be posted on LEARN.
Winter 2024 Slides
The slides for each module will be posted as the term progresses.
Module # | Topic | Slides | Readings |
---|---|---|---|
Module 0 | Administrivia |
Print/Display Version |
None |
Module 1 | Introduction and Asymptotic Analysis |
Print/Display Version Edited Version (Jan 16, 11:19pm) |
Course notes Chapter 1 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 |
Print/Display Version |
Course notes Chapter 2 Optional: Sedgewick 9.1 - 9.4 |
Module 3 | Sorting, Average-Case and Randomized Algorithms |
Print/Display Version Edited Version (Feb 2, 10:21am) |
Course notes Chapter 1.5, 3 Optional: Goodrich & Tamassia 8.3 Optional: Sedgewick 6.10, 7.1, 7.2, 7.8, 10.3, 10.5 |
Module 4 | Dictionaries |
Print/Display Version Edited Version (Feb 8, 2:03 pm) |
Course notes Chapter 4 Optional: Goodrich & Tamassia 3.1, 4.1, 4.2 |
Module 5 | Other Dictionary Implementations |
Print/Display (edited) Version |
Course notes Chapter 5 Optional: Sedgewick 9.1-9.4 |
Module 6 | Dictionaries for Special Keys |
Print/Display Version Edited Version (Feb 15, 1:29pm) 2nd Edited Version (Feb 27, 4:27pm) |
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 |
Print/Display Version |
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 |
Print/Display Version Edited Print/Display Version 2nd Edited Print/Display Version |
Course notes Chapter 8 Optional: Goodrich & Tamassia 21.1, 21.3 |
Module 9 | String Matching |
Print/Display Version Edited Version |
Course notes Chapter 9 Optional: Goodrich & Tamassia 23 |
Module 10 | Compression |
Print/Display Version |
Course notes Chapter 10 Optional: Goodrich & Tamassia 10.3 |
Module 11 | External Memory |
Print/Display Version Edited Version |
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 any part of the course notes that is marked `(cs240e)' or that is in `Historical remarks' or `Appendix' (but see what your instructor actually covers 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 reference and additional resources:
- [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).