Algorithms and data structures

Online materials, 2023

Overview: This course provide an introduction to algorithms and data structures. Links videos, slides and code can be found below, and on GitHub Stars on GitHub

1. Binary Search Trees

Notes: Samuel’s tutorial on binary search trees (traversals, search, insertion and deletion).
Slides: link (pdf)
Further resources and references: link
Code: link

2. Red-Black Trees

Notes: Samuel’s tutorial on red-black trees covering search, insert and delete operations.
Slides: link (pdf)
Further resources and references: link
Code: link

3. B-trees

Notes: Samuel’s tutorial on B-trees (memory hierarchy, disk accesses, search, insertion and deletion).
Slides: link (pdf)
Further resources and references: link
Code: link

4. Hash Tables

Notes: Samuel’s tutorial on hash tables (search by index, hash functions, chaining and open addressing).
Slides: link (pdf)
Further resources and references: link

5. Heapsort and binary heaps

Notes: Samuel’s tutorial on heapsort and binary heaps.
Slides: link (pdf)
Further resources and references: link
Code: link

6. Quicksort

Notes: Samuel’s tutorial on quicksort.
Slides: link (pdf)
Further resources and references: link
Code: link

7. Lower bounds for comparison sort

Notes: Samuel’s tutorial on lower bounds on the fastest possible comparison sorting algorithms.
Slides: link (pdf)
Further resources and references: link

8. Counting sort

Notes: Samuel’s tutorial on counting sort.
Slides: link (pdf)
Further resources and references: link

9. Radix sort

Notes: Samuel’s tutorial on radix sort.
Slides: link (pdf)
Further resources and references: link

10. Bucket sort

Notes: Samuel’s tutorial on bucket sort.
Slides: link (pdf)
Further resources and references: link

11. Task-parallel computing

Notes: Samuel’s tutorial on task-parallel computing.
Slides: link (pdf)
Further resources and references: link

12. NP-complete problems

Notes: Samuel’s tutorial on NP-complete problems.
Slides: link (pdf)
Further resources and references: link

Note: A portion of these materials will be used in the 4M26 course being developed jointly with Ignas Budvytis. The content below should not be considered the canonical reference for the 4M26 syllabus. If you are taking the 4M26 course, the canonical reference for the 4M26 syllabus can be found here.