Modular programming and data abstraction were already being used in programming.
Test sets are used in artificial intelligence, machine learning, genetic programming and statistics.
Another example is that of currying, used in functional programming.
There have been several attempts at formalizing the concepts used in object-oriented programming.
It was first used in public programming in 2004.
This is exactly the implementation that is used in purely functional programming.
Training sets are used in artificial intelligence, machine learning, genetic programming, intelligent systems, and statistics.
They are used in structured programming to arrange program modules into a tree.
Design patterns are used in object oriented programming.
Of course, because object oriented, you can modify the behavior by yourself too, using either classes or corresponding functions in procedural programming.