Introductory Data Structures and Algorithms
Lecture Notes
- 1. Chapter 01: Introduction
- 2. Chapter 02: Working with Arrays
- 3. Chapter 03: Complexity of Algorithms and Order Notation
- 4. Chapter 04: Divide-and-Conquer Algorithms
- 5. Chapter 05: Binary Heaps and Priority Queues
- 6. Chapter 06: Abstract Data Types
- 7. Chapter 07: Hashing-Based Data Structures
- 8. Chapter 08: Searching in Strings
- 9. Chapter 09: Backtracking and Dynamic Programming
- 10. Chapter 10: Data Encoding and Compression
- 11. Chapter 11: Binary Search Trees
- 12. Chapter 12: Graph Algorithms
- 13. Chapter 13: Elements of Computational Geometry
Textbooks (Optional)
On Algorithms and Data Structures
Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein
Algorithms, 4th edition by Robert Sedgewick and Kevin Wayne. This book has some great in-depth examples of basic algorithms.
On OCaml
Introduction to Objective Caml by Jason Hickey
Real World OCaml by Yaron Minsky, Anil Madhavapeddy, and Jason Hickey