Dynamic programming is a way to optimize results in less time.  It is more computationally efficient.  It has several properties including optimal structure and decomposition   That is structuring the problem more efficiently, into sub structure and breaking down the problems into sub-problems, respectively.   Substructures are breaking the problem into “pieces” such that a complex problem becomes more tenable and manageable.  Like substructures, the complex problem can be addressed as a set of sub-problems.  It is “decomposed” into more manageable smaller problems.  This too makes a complex problems more tenable.  Both are done more of less on the fly or dynamically rather that a static approach where things are done at a stop. 

Object oriented programming (OO) is where one can create objects and classes.  The key is “inheritance” where one class can inherit attributes from another class.  These other classes that inherit from another class are called instances.  The original has a defined data set that are kind of placeholders for data.  Usually when creating an “instance” the user will provide some initial data for the internal data. The class also has methods which, in my view are internal algorithms or min-programs that act on the data.  The power in OO, besides inheritance, is that users can create their own objects that combine data and procedures.

As presented with the discussion on object oriented programming, the concept of an “object” allows for the binding of data with methods.  The object has a defined data set that are kind of placeholders for data.  Usually when creating the object, he user will provide some initial data values (e.g., “123”, “abc” and “john”) for the internal data. The class also has methods which, “as I said, in my view are internal algorithms or mini-programs that act on the data as the method is called by other objects, perhaps other inherited objects.  A lot of these deal with strings or “lists.”  These lists use square brackets.  Lists can be modified.  That is, the values can be changed by other objects without manually having to edit the values.  This ability to change things is called mutability, derived from the word  “mutate.”
