1. Course Overview
  2. 1. Introduction
  3. 2. Live Classes
  4. 3. Assessments
  5. 4. Getting Help
  6. 5. Giving Help
  7. 6. Academic Integrity
  8. 7. Course Tools
  9. Week 1: Goals and Building Blocks
  10. 8. Introduction
  11. 9. Data structures and algorithms
  12. 10. Space and time efficiency
  13. 11. The memory hierarchy
  14. 12. Units of space and time
  15. 13. Memory model
  16. 14. Abstract data types
  17. 15. Interviewing
  18. 16. Practice
  19. 17. Week 1 Quiz
  20. 18. Assignment 1
  21. 19. Week 1 Interviews
  22. Week 2: Algorithm Analysis and Sorting
  23. 20. Introduction
  24. 21. Big-O notation
  25. 22. Heuristics for big-O
  26. 23. Searching
  27. 24. Sorting
  28. 25. Selection sort
  29. 26. Insertion sort
  30. 27. Radix sort
  31. 28. Practice
  32. 29. Week 2 Quiz
  33. 30. Assignment 2
  34. 31. Week 2 Interviews
  35. 32. Reading
  36. Week 3: Recursion I
  37. 33. Introduction
  38. 34. A loop alternative
  39. 35. Why use recursion?
  40. 36. Recursion in Python
  41. 37. Tracing recursion
  42. 38. Infinite recursion
  43. 39. Fibonacci sequence
  44. 40. Recursion and efficiency
  45. 41. Practice
  46. 42. Week 3 Quiz
  47. 43. Peer Interview 1 Reflection
  48. 44. Reading
  49. Week 4: Recursion II
  50. 45. Introduction
  51. 46. String recursion
  52. 47. List recursion
  53. 48. Merge sort
  54. 49. Web crawling
  55. 50. Practice
  56. 51. Week 4 Quiz
  57. 52. Peer Interview 2 Reflection
  58. 53. Reading
  59. Week 5: Linked Lists
  60. 54. Introduction
  61. 55. Arrays
  62. 56. Linked lists
  63. 57. Building linked lists
  64. 58. Traversing linked lists
  65. 59. Modifying linked lists
  66. 60. Doubly linked lists
  67. 61. Practice
  68. 62. Week 5 Quiz
  69. 63. Assignment 3
  70. 64. Reading
  71. 65. Midterm Preparation
  72. Week 6: Midterm Exam
  73. 66. Introduction
  74. 67. Midterm Exam
  75. Week 7: Lists, Stacks, and Queues
  76. 68. Introduction
  77. 69. Lists
  78. 70. Iterators
  79. 71. Stacks
  80. 72. Queues
  81. 73. Stacks & queues in Python
  82. 74. Practice
  83. 75. Week 7 Quiz
  84. 76. Peer Interview 3 Reflection
  85. 77. Reading
  86. Week 8: Trees
  87. 78. Introduction
  88. 79. Tree basics
  89. 80. Trees in Python
  90. 81. Traversals
  91. 82. Level-order traversal
  92. 83. Huffman encoding
  93. 84. Week 8 Quiz
  94. 85. Assignment 4
  95. 86. Peer Interview 4 Reflection
  96. Week 9: Binary Search Trees
  97. 87. Introduction
  98. 88. BSTs
  99. 89. Search
  100. 90. Insertion
  101. 91. Deletion
  102. 92. Efficiency
  103. 93. 2-3 Trees
  104. 94. Week 9 Quiz
  105. 95. Assignment 5
  106. 96. Reading
  107. Week 10: Final Exam
  108. 97. Introduction
  109. 98. Final Exam

Data Structures and Algorithms

Reading

Read Chapter 5 of An Open Guide to Data Structures and Algorithms.