Focus on process or actions a program takes - Typically collection of functions - Data declared separately - Data passed as arguments into functions - Each statement tells the computer to do something # Limitations - Functions need to know structure of data - If structure changes, functions need to change - Larger programs are more - difficult to - understand - maintain - extend - debug - reuse - fragile