M&C 1: Classes and objects don’t make programming easier

This is a common misconception students have when they see classes introduced.  Many have just learned how to use functions and now come classes! Even though students using Python have used classes before (e.g., when using lists or strings), the concepts are challenging. When writing small programs there is typically no need for classes and objects. However, when working on large projects and collaborating in a team environment, object-oriented programming as supported by Python becomes an essential part of effective software development.

In object-oriented programming, one class can be easily copied to another application and allows for easy reuse of its functionality. In addition, object-oriented programming and related tools allow programmers to model applications using the real world as well as abstract entities.  Recall that in the Appliance Store example, the Appliance class can be used to create different appliances such as stoves, computers, refrigerators, and so on.