CS251: Data Structures
Gustavo Rodriguez-Rivera, CS116. Available any time for short
questions, or make an appointment.
An updated syllabus, class handouts, lecture notes, and other
information can be found at:
After successfully completing this course:
You will understand the foundations of computer data structures
You will improve your programming skills by programming these data structures
and using them in practical applications.
The course is organized in lecture sessions and help sessions
(PSOs). You are encouraged to attend the PSOs every week since the instructors
will explain details of the class projects and also answer questions.
Lists and Announcements:
All announcements will be sent via email. It is important
you add yourself to the cs251 mailing list. From your CS account type:
"mailer add me to cs251-pso1" or
"mailer add me to cs251-pso2" or
"mailer add me to cs251-pso3" or
"mailer add me to cs251-pso4" or
"mailer add me to cs251-pso5"
depending on your lab section.
The final grade will be about 50% midterm and final exams,
and 50% projects and homeworks.
Week 1. Design Principles. Data
structures and algorithms.
Week 2. Analysis Tools. Asymptotic
notation, asymptotic analysis.
Week 3. Stacks, Queues, and Linked Lists
. Including double-ended queues.
Week 4. Sequences. Ranked, positional,
and general sequences.
Week 5. Trees. Emphasis on binary
Week 6. Trees.
Week 7. Priority Queues. Implementations
using sequences and heaps.
Week 8. Dictionaries. Implementations
using skip lists, hash tables.
Week 9. Dictionaries. Implementations
using binary search trees, AVL trees.
Week 10,11. Sorting, Sets, and Selection.Merge-sort,
quick-sort, lower bound on comparison-basedsorting, bucket-sort, radix-sort.
Week 12. Graphs.Graph traversal, directed graphs.
Week 13. Graphs, weighted graphs.
Week 14. Strings. Strings, Pattern Matching.
Week 15: More Strings. Review