This document compares procedure oriented programming (POP) and object oriented programming (OOP). POP focuses on functions and procedures, while OOP focuses on objects. In POP, data can move freely between functions, whereas in OOP objects control their own data and it does not transfer between objects. OOP provides better data hiding, encapsulation, inheritance and polymorphism compared to POP. Examples of POP languages include C and FORTRAN, while examples of OOP languages include C++, Java, and C#.