It is evidently necessary to generate and test candidates for solutions in some systematic manner.
Software development is technical activity conducted by human beings.
Reliable and transparent programs are usually not in the interest of the designer.
Nevertheless, I consider OOP as an aspect of programming in the large; that is, as an aspect that logically follows programming in the small and requires sound knowledge of procedural programming.
I have never designed a language for its own sake.
Clearly, programming courses should teach methods of design and construction, and the selected examples should be such that a gradual development can be nicely demonstrated.