Procedural programming

  • procedures, use the optimal algorithms

Modules

  • hide the data, provide functional abstractions

Data abstraction

  • types, provide a sufficiently complete set of operations

Object-oriented -- organize your types

  • make commonality explicit by using inheritance

slide: Paradigms of programming