At the core of professional programming practice is a thorough knowledge of software design patterns. In this course, Design Patterns with Python, you will learn eight classic patterns and how to implement them in Python. You will learn how to recognize problems that are solvable using design patterns, how to implement them professionally, and how they can be used to make your programs easier to write, easier to read, and easier to maintain. When you're finished with this course, you will have a better understanding of the elements of reusable object-oriented software design, which will help you as you move beyond simple scripts to complex systems built in Python. Software required: A Python interpreter in the 2.7 series or the 3.5 series and a Python-aware integrated development environment (IDE).