Learning Outcomes:
On successful completion of this module the learner will:
1. Be familiar with the core concepts in OOP as implemented in Python (classes, instances, inheritance, multiple inheritance, encapsulation, polymorphism and methods).
2. Be able to implement software systems that incorporate these concepts.
3. Be able to develop code in a Python Notebook.
4. Be able to debug OO programs to find errors.