This document discusses the longest common subsequence problem and presents an algorithm for solving it using dynamic programming. Specifically, it introduces the longest common subsequence problem, describes how it is different from the substring problem, and presents a dynamic programming algorithm that uses a matrix to store the lengths of the longest common subsequences between prefixes of the two strings in order to efficiently find the longest common subsequence between the full strings.