This document provides an introduction to user defined functions and modules in Python. It begins with an overview of function basics, including what a function is, why functions are useful, and how functions are defined, called, and return values in Python. It then discusses more advanced topics like functions that call other functions, scope and namespaces, and how the LEGB rule determines which namespace to use when looking up a variable name. The document uses examples and exercises to illustrate key concepts related to defining, using, and understanding the scope of functions in Python.