Procedural programming is a programming paradigm that focuses on functions or procedures as the primary means of organizing and executing code. It is based on the concept of procedure calls and involves writing programs as a sequence of instructions or steps to be performed.