In this unit, students learn how functions are used in different capacities to decompose and simplify models. They see how functions facilitate the application of computational thinking techniques, so that abstraction is applied not only to objects but also to processes. Students learn how to design functions by starting with concrete examples, adding variations to the examples, and then expressing those variations as independent variables in a generalized model.