We've only gotten back into the semester, yet we're already finished a quarter of the course. Oops, guess I've seem to have lost track of time. Ah, OOP. Object-oriented programming. What is it? Simply put, it's a method of computer programming that treats certain pieces of codes as objects. In Python's case, these objects are instances of classes, and we give these objects properties/attributes and methods (functions). So instead of looking and programming and codes as logical procedures and steps, we can treat it in a more visual form; we can treat code as if they were objects. We are able to modify and interact with the instance/object we have created. In my opinion, object-oriented programming is very unique in that it really allows a person to visualize and understand the interactions between pieces of code.
During these lectures, we've managed to create a few objects. One of these objects we created was a Stack ADT (abstract data type). This stack object was a list that we were able to interact with. We could push item into the to the top of the stack, and we could pop an item from the top of the stack. Normally, one would think of coding stack logically with procedures and step. Create this list, and create functions to do things to it (i.e. push and pop). But with object-oriented programming, we are able to instead think: hey, let's visualize a stack. Think of a stack of rocks, and how we are able to only add (push) things to the top of the stack, and remove (pop) things off the top of the stack.
(Before I move on, this reminds me of one of the exercises that I actually really liked during the lectures. We were given a paragraph and told to keep track of the most important noun, verb and adjective. With this we were able to create a class, having the main noun as the class name, the verbs as the methods, and adjectives as attributes. Just putting it out there, I thought it was a unique and interesting approach to building a class, and in a way it seemed like it could be applied to a real life situation.)
So, back to the stack of rocks. With the visualization of the stack of rocks, we can really understand what this stack adt is supposed to be like, and how it can work. That's what I really like about object-oriented programming. I'm a visual person, so I understand things better when I can visualize the situation, and object-oriented programming is perfect when it comes to visualizing code and seeing how it interacts with other things.
TL;DR: Python is an object-oriented programming language. I think object-oriented programming is great in that it helps visualize code, and it makes code more clearer.
Oh, also more lights should be turned on. I'm not a morning person, and the dim lighting makes it hard to stay awake at times when the lecture slows down. Just sayin'.