The course can be broken up into nine general topics:

- Introduction
- Algorithm Analysis
- Lists
- Trees
- Heaps
- Hash Tables
- Sorting Algorithms
- Graphs Algorithms
- 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 | Lecture | Topics |
---|---|---|

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 |