In computer science, we often deal with problems that are too complex to solve directly, so we break them down into smaller, more manageable parts.