Python, the programming language that we are working with in this course, is an Object-Oriented Programming language. Object-Oriented Programming, explained in an oversimplified way, focuses on making an object for everything required in a program. An object can be literally anything, usually corresponding to something in real life, along with relevant attributes and methods. For example, as we saw as an example in class, we can make an object of a Point on a Cartesian plane, which includes the x and y coordinates as attributes.
Organizing a program in terms of classes and objects has the advantage of making code very easy to follow, as all lines of code related to a specific class and grouped together. It also allows for easy connections between classes, such as the concept of Inheritance that we have discussed in the course so far, allowing a new subclass, and thus new objects, to behave similarly to its parent class in addition to its own attributes and methods.
Outside of Python I have practiced programming in Visual Basic and a very limited amount of Java, so I do have some experience working with object-oriented programming language, at least on a basic level, and even without having worked on particularly complex programs, I can appreciate how the ability to organize my programs in such an efficient way is very valuable for making it understandable and easy to modify in the future if necessary. However, there is much more to Object-Oriented Programming that I am unaware of, or less proficient at than I could be, and thus am looking forward to the rest of the course in order to further my understanding of what Object-Oriented Programming has to offer.