This document discusses the transition from structured programming to object-oriented programming. Structured programming relies on control structures like if/else and while loops rather than goto statements. It advocates top-down development through stepwise refinement of procedures. However, structured programming is narrowly focused on solving a single problem. It also bases program structure on decomposition of functionality rather than stable data structures. Object-oriented programming orients programs more broadly towards reuse. It focuses on data structures, which tend to be more stable than control structures. OOP provides an alternative to the top-down approach through multiple conceptual "tops" in a system.