As an object-oriented programming language, Python requires you to deal with classes extensively. Classes themselves are an abstraction provided by the language for your convenience, and they do a lot of work for you under the hood, particularly when it comes to inheritance; in particular, multiple inheritance. In this course, you will get a better understanding of what goes on under the hood so as not to build a class hierarchy with unintended consequences. We'll also look at the concept of "mixins", a useful way to think about reusable classes.
Students should already be comfortable with Python language fundamentals, including: writing and using classes, methods, and functions, using container objects (e.g., list or dictionary), using decorators, using string formatting, using conditional operators
Michael Dougherty is an experienced full-stack engineer, functional programming aficionado, and musician. When he was 13 he brought a "Learn C++ in 21 days" book with him on a family vacation, and he has been writing code ever since.
For the past few years, Michael has worked as a Web Development Mentor, as a Full Stack Senior Software Engineer, as well as on several side projects.