introduce the idea of user-defined functions by dividing them into groups: void functions with no parameters, void functions with parameters, data-returning functions with no parameters, and data-returning functions with parameters. discuss default parameters and function overloading in which two or more functions can be defined with different signatures. discuss the scope of entities in a program: local and global. define and use reference variables. discuss the lifetime of entities in a program, including automatic and static variables. design and write programs using multiple user-defined functions. use a while loop to obtain and validate user input.