Lecture Schedule

The course can be broken up into nine general topics:

  1. Introduction
  2. Algorithm Analysis
  3. Lists
  4. Trees
  5. Heaps
  6. Hash Tables
  7. Sorting Algorithms
  8. Graphs Algorithms
  9. Algorithm Design Techniques

There are 36 lectures in a semester and the material covered in each of the lectures is listed in Table 1. There are five 15-minute quizzes given throughout the semester; the material taught during the first 31 lectures is tested in the quiz number given in the third column.

Table 1. Lectures for ECE 250 Data Structures and Algorithms.

Week LectureTopics
1 1. Course Introduction
2 A Mathematical Review
3. C++
3 4. Containers, Relations and Abstract Data Types
5. Data Structures and Algorithms
6. Asymptotic Analysis
3 7. Algorithm Analysis
8. Algorithm Analysis
9. Lists and Stacks
4 10. Queues and Deques
11. General Trees and Tree Traversals
12. Binary Trees, Perfect Binary Trees, Complete Binary Trees, and N-ary Trees
5 13. Binary Search Trees
14. Balanced Trees and Average Binary Search Trees
15. AVL Trees
6 16. AVL Trees
17. B-Trees
18. B-Trees
7 19. Priority Queues and Heaps
20. Insertion Sort and Bubble Sort
21. Heap Sort and Merge Sort
8 22. Quick Sort
23. Bucket Sort and Radix Sort
24. Hash Functions and Chained Hash Tables
9 25. Open Addressing and Linear Probing
26. Double Hashing
27. Graphs and Topological Sorting
10 28. Minimum Spanning Trees (Prim's Algorithm)
29. Shortest Path Algorithms (Dijkstra's Algorithm)
30. Greedy Algorithms
11 31. Divide and Conquer
32. Dynamic Programming
33. Randomized Algorithms
12 34. Backtracking Algorithms
35. NP Completeness and Sparse Matrix Implementations
36. Review