Event-driven programming is a paradigm where the flow of the program is determined by events such as user actions, sensor outputs, or message passing from other programs. It allows for highly interactive and responsive applications, especially useful in graphical user interfaces and real-time systems.