- Spring 2026 Textbook
- Contributors
- DISCLAIMER
- 1. Introduction
- 2. Defining and Using Classes
- 3. References, Recursion, and Lists
- 4. Testing
- 5. SLLists
- 6. DLLists and Arrays
- 7. Resizing ArrayList
- 8. Inheritance I: Interface and Implementation Inheritance
- 9. Inheritance II: Subtype Polymorphism, Comparators, Comparables, Generic Functions
- 10. Inheritance III: Iterators, Object Methods
- 11. Asymptotics I
- 12. Asymptotics II
- 13. Asymptotics III
- 14. Disjoint Sets
- 15. Binary Search Trees
- 16. B-Trees
- 17. Red Black Trees
- 18. Heaps and Priority Queues
- 19. Tree Traversals and Graphs
- 20. Graph Traversals and Implementations
- 21. Shortest Paths
- 22. Minimum Spanning Trees
- 23. Reductions and Decomposition
- 24. Hashing I
- 25. Hashing II
- 26. Prefix Operations and Tries
- 27. Software Engineering I
- 28. Software Engineering II
- 29. Basic Sorts
- 30. Quicksort
- 31. More Quick Sort, Sorting Summary
- 32. Sorting and Algorithmic Bounds
- 33. Radix Sorts
- 34. Sorting and Data Structures Conclusion
- 35. Software Engineering III
- 36. Software Engineering IV
- 37. Compression and Complexity
- 38. Compression, Complexity, P = NP