Lecture 7: Decomposition, Abstraction, and Functions