E-22
Data Structures
  • Home
  • Lectures
  • Sections
  • Problem Sets
  • Syllabus
  • Schedule
  • Staff
  • Policies
  • Resources
  • Canvas
  • Ed Discussion
  • Gradescope

Lectures

Students can attend lecture in person on campus (5:40–7:40 p.m. Eastern time in One Brattle Square, room 204), participate live online at the time the class meets via web conference, or watch a recorded video on demand.

  • To access the live lecture meetings, go to the course’s site on Canvas and click on the Zoom link in the left-hand navigation bar. This will take you to a tool called Gather. Under Course Events, find the event labeled Class: HELIX Classroom and click its Join button.

  • The lectures will be recorded and made available within 24 hours. Use the Class Recordings link on Canvas to access them.

Full coursepack
Optional readings

Introduction
notes, ArrayBag.java
Recursion and backtracking
notes, code, solutions to removeVowels practice exercise
Sorting and algorithm analysis I
notes, code
Sorting and algorithm analysis II
notes, code
Linked lists
notes, StringNode.java
two simpler versions of StringNode that can be traced using Java Tutor:
  • one tracing a call to toUpperCase
  • one tracing calls to copy and deleteChar
Lists, stacks and queues
notes, code, completed slides on list efficiency
Binary trees and Huffman encoding
notes, code, solutions to extra traversal problems
Search trees
notes, code
Heaps and priority queues
notes, code
Hash tables
notes, code
Graphs
notes, code

Last updated on October 29, 2025.