1. Abelson, H., & Sussman, G. J. (1996). Structure and Interpretation of Computer Programs (2nd ed.). MIT Press. In Chapter 2, Section 2.1.1, the text introduces data abstraction, distinguishing between the way a data object is used (by a "client") and how it is represented (by an "implementor"). This principle directly applies to the module-program relationship.
2. Guttag, J. V. (2016). Introduction to Computation and Programming Using Python (2nd ed.). MIT Press. Chapter 8, "Abstract Data Types and Classes," discusses the separation of interface from implementation, a paradigm where the code using a defined data type or module is consistently referred to as the client code.
3. Python Institute. (2021). Python Essentials – Part 1 (PE1). In Module 4, which covers modules and packages for the PCEP-30-02 exam, the official courseware establishes the terminology where code making use of a module is called a client of that module.
4. Meyer, B. (1997). Object-Oriented Software Construction (2nd ed.). Prentice Hall. Chapter 3, "Modularity," extensively discusses the client-supplier model, where a module (the supplier) provides services to other modules (the clients). This is a foundational concept in modern software design.