This document summarizes a lab on data structures and algorithms that focuses on heaps and heap sort. It introduces heaps as almost complete binary trees stored in an array that obey the max-heap or min-heap property. Basic heap operations like insertion and deletion are described along with filtering an element up or down the heap to maintain the property. Heap sort is then introduced as using a heap to iteratively extract and place the minimum element. The objectives are to implement functions for getting a node's parent and children in a heap as well as implement and test heap sort.