The most important distinction:

  • procedural programming uses procedures to operate on data structures
  • object-oriented programming bundles the two together, so an “object”, which is an instance of a class, operates on its “own” data structure