A logical subdivision of a larger, more complex system.
Modules are a convenient way to break down a larger problem and divide it into smaller problems/solutions. This way the main problem can be broken down into separate parts that can be worked on independently. For example, one module could consist of a the printing functionality of program, which can be handed to one programmer. The GUI (Graphical User Interface) could be another module, handed to another programmer, and so forth.
Modular design is meant to improve efficiency and speed of development by allowing programmers to work on specific aspects of the program independently of each other.