The document discusses recursion and binary trees. It defines recursion as a function that calls itself, directly or indirectly. A recursive function must have a base case and recursively break the problem into smaller subproblems until the base case is reached. Binary trees are discussed as a data structure where each node has at most two children. Properties of binary trees like the root, left and right subtrees, ancestors and descendants are explained. Complete and strictly binary trees are defined, where a complete binary tree fills each level except possibly the last.