This document discusses procedural programming. It defines procedural programming as specifying a sequence of steps to implement an algorithm, with code kept concise and focused on a specific result. Procedural programming breaks problems down into hierarchical sub-problems and sub-procedures. It focuses on processes, storing data and functions separately. Programs are made up of independently coded and tested modules. Procedural languages define procedures as imperative statements organized into functions. The document discusses advantages like reusability and modularity, and disadvantages like lack of data encapsulation and security. It provides an example Fibonacci series program in C using recursion.