Not logged in. Login

CMPT 225 D1

Data Structures and Algorithms
Summer 2019
Official course site

Information will be added as the course progresses.

Lecture Slides

Most of these slide sets correspond 1-to-1 with lectures. A few of them will cover two or three lectures.

Lecture Slides 1. Course Overview
Lecture Slides 2. Object-Oriented Design
Lecture Slides 3. Inheritance and Polymorphism
Lecture Slides 4. Interfaces, Templates, Exceptions
Lecture Slides 5. Arrays
Lecture Slides 6. Linked Lists
Lecture Slides 7. Recursion
Lecture Slides 8. Analysis
Lecture Slides 9. Stacks
Lecture Slides 10. Queues and Deques
Lecture Slides 11. Adapters
Lecture Slides 12. Array Lists
Lecture Slides 13. Lists
Lecture Slides 14. Iterators, Sequences, Trees
Lecture Slides 15. Trees
Lecture Slides 16. Binary Trees
Lecture Slides 17. Priority Queues
Lecture Slides 18. Heaps
Lecture Slides 19. Adaptable PQs and Maps
Lecture Slides 20. Hash Tables
Lecture Slides 21. Ordered Maps and Skip Lists
Lecture Slides 22. Dictionaries and Binary Search Trees
Lecture Slides 23. AVL Trees and 2-4 Trees
Lecture Slides 24. Splay Trees
Lecture Slides 25. Merge Sort and Lower Bound
Lecture Slides 26. Quick Sort, Bucket Sort, Radix Sort
Lecture Slides 27. Divide-and-Conquer
Lecture Slides 28. Sets and Union-Find
Lecture Slides 29. Selection
Lecture Slides 30. Dynamic Programming
Lecture Slides 31. Greedy, Text Compression, Tries

Laboratories

Lab 1. The Point Class
Lab 2. Array I/O and Sorting
Lab 3. Exceptions
Labs 4-5. Adapter
Lab 6. Deep Copies, Destructors, and Memory Leaks
Lab 7. Heaps
Lab 8. Operator Overloading and Fractions
Lab 9. C++ Template Classes
Lab 10. Element Uniqueness

Assignments

Assignment 1
Assignment 2
Assignment 3
Assignments are to be submitted via CourSys.

Late Penalties on Assignments

Assignments are due at 11:59pm on the date specified. Late penalties are -10% / day, for up to five days. This includes weekend days. Submissions more than five days late will earn a 0.

Marking Disputes

In the event of a marking dispute (you think your mark isn’t fair) first contact the marking TA to try to resolve it. If that doesn’t resolve it, then bring it to the professor.

Marking

15% Midterm exam
35% Final exam
10% Lab exam
30% Homeworks (3)
10% Lab exercises (10)

Lab exercises are marked 0 or 1; either you get the lab completed or you don't. Other marks are graded on a finer scale.

The final covers the entire course (it is cumulative).

Required Text

Data Structures and Algorithms in C++
by Goodrich, Tamassia, and Mount. 2nd Edition.

Updated Wed July 31 2019, 11:26 by shermer.