Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.
You’ll also explore functional programming features such as closures and generators, an...
Learning modes and locations may be different depending on the course start date. Please check the location of your chosen course and read our guide to learning modes and locations to help you choose the right course for you.
Start Date:11 Jul 2026
End Date:18 Jul 2026
Sat (Daytime):10:30 - 17:30
Choose either online or in-person
Location: Hybrid (choose either online or in-person)
Please note: We offer a wide variety of financial support to make courses affordable. Just visit our online Help Centre for more information on a range of topics including fees, online learning and FAQs.
The first half of this course introduces Object Oriented Programming (OOP), the dominant approach to modern software development. OOP helps development teams manage the complexity of large projects and encourages a design-led approach to coding. We will look at both the theory of OOP and how it is practically implemented it in Python.
We then look at an approach that is complementary to OOP, which is the use of unit tests to organise a development project. A test-driven approach helps clarify which tasks need to be done and manage the risk associated with code changes, giving you confidence that new code is correct and doesn’t have adverse side effects.
We end with some additional topics related to Python functions that, while not always needed, will reveal more about how Python works “under the hood”.
All the topics on this course are popular in the technical parts of job interviews. This course is intended to set you on the path from writing short Python scripts on your own to working on larger software projects where robustness and complexity can raise issues.
Participants who will attend the full course will receive a City Lit certificate of attendance electronically for their CV or CPD records. The certificate will show your name, course title and dates of the course you have attended.
What will we cover?
• The fundamental theory of Object Oriented programming • Practical implementation of an OO model in Python • Unit testing and test-driven development • Using closures and generators.
What will I achieve? By the end of this course you should be able to...
• Explain the following concepts and how the interrelate: class, object, interface, implementation, abstraction, encapsulation, overloading, overriding, polymorphism, inheritance, composition. • Design a class hierarchy for a programme and implement it with Python code. • Set up and use unit tests and describe their benefits. • Describe test-driven development and weigh up its pros and cons for a particular project. • Write closures and generators in Python and describe use cases for each.
What level is the course and do I need any particular skills?
This is an advanced course. You should be confident with the main elements of Python as covered on City Lit’s Introduction to Python and Intermediate Python: • If, else and elif; • While and for loops • Lists and dictionaries • Functions (using def) You should be able to write a short programme to solve a problem given in words.
To follow the class, you should be able to follow spoken instructions, read written information and discuss your work with your tutor in English.
How will I be taught, and will there be any work outside the class?
There is some theoretical material on the course but it is mostly practical. The class is delivered through a mixture of tutor demonstration, practical exercises and discussion. Work outside class is not compulsory but is strongly recommended and example challenges will be provided.
Are there any other costs? Is there anything I need to bring?
Pen and notepad for note taking.You may choose to bring your own laptop if you prefer.
When I've finished, what course can I do next?
City Lit offers a variety of progression courses in this subject area. Please click hereto view our courses
Disclaimer: Use of Third-Party Software This course might require you to either use your own personal account or create an account for the purposes of this course. City Lit cannot accept any responsibility for any failings of the third party or provide technical support. Whilst using the software you will be responsible for abiding by the providers terms and conditions and maintaining your own work.
We’re sorry. We don’t have a bio ready for the tutor of this class at the moment, but we’re working on it! Watch this space.
Thepan RavindranSee moreSee less
Thepan Ravindran is a Senior Generative AI engineer at KPMG UK. He holds an MSc in Big Data Science from Queen Mary University of London and completed the Applied Data Science Programme at the Massachusetts Institute of Technology (MIT). During his Master's, he served as a teaching demonstrator for Principles of Machine Learning. Originally from Malaysia and the first in his family to study abroad, he earned a full scholarship for his undergraduate degree before moving to London to further his academic and professional journey. At KPMG UK, Thepan designs and implements AI systems for global clients and trains non-technical professionals to confidently adopt AI. He has also contributed to data-driven projects with the World Health Organisation, Ministry of Health Malaysia and United Nations University. Thepan enjoys the creative problem-solving that programming offers and the impact it can create in society. He is passionate about teaching Python, machine learning, data science, financial modelling, and AI, and is known for helping learners who believe “coding isn’t for people like me” realise that they can do it too.
Please note: We reserve the right to change our tutors from those advertised. This happens rarely, but if it does, we are unable to refund fees due to this. Our tutors may have different teaching styles; however we guarantee a consistent quality of teaching in all our courses.
product
https://www.citylit.ac.uk/advanced-python155807Advanced Pythonhttps://www.citylit.ac.uk/media/catalog/product/p/y/python-course.jpg259259GBPInStock/Courses/Courses/Business, marketing & technology/Courses/Business, marketing & technology/Web design and programming/Programming/Courses/Business, marketing & technology/Web design and programming/Courses/vm/Skills for Work - Online Employability Courses/Courses/vm/Web design & programming offer/Courses/Business, marketing & technology/Web design and programming/Python/Courses/vm/Summer offers228512111408168717912012133971361412285121116871653<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p> <div data-content-type="html" data-appearance="default" data-element="main">Object Oriented programming is a technique that allows both individuals and teams of programmers to best organise their code to reduce complexity and improve maintainability. It is the keystone of modern software development and on this course, we will delve into both the theoretical concepts underpinning OO and also its practical implementation in Python.<br />
<br />
Though this course is mainly an exploration of the Object Oriented approach we will also explore the increasingly popular functional paradigm to programming. Like most modern general-purpose programming languages Python implements a number of these concepts to improve the efficiency of programs and the elegance of the code produced.</div>44.32950757Advanced Python259259https://www.citylit.ac.uk/media/catalog/product/p/y/python-course_32.jpgInStockDaytimeSatHybrid (choose either online or in-person)Available courses1 to 4 weeksWeekend2026-07-11T00:00:00+00:00AdvancedJul 2026Business, marketing & technologyCOFP01259259Advanced Python207168259Kathryn Coldhamadvanced-python/cofp01-2526<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>0000-Available|2026-07-11 00:00:00The first half of this course introduces Object Oriented Programming (OOP), the dominant approach to modern software development. OOP helps development teams manage the complexity of large projects and encourages a design-led approach to coding. We will look at both the theory of OOP and how it is practically implemented it in Python. <br><br>We then look at an approach that is complementary to OOP, which is the use of unit tests to organise a development project. A test-driven approach helps clarify which tasks need to be done and manage the risk associated with code changes, giving you confidence that new code is correct and doesn’t have adverse side effects.<br><br>We end with some additional topics related to Python functions that, while not always needed, will reveal more about how Python works “under the hood”. <br><br>All the topics on this course are popular in the technical parts of job interviews. This course is intended to set you on the path from writing short Python scripts on your own to working on larger software projects where robustness and complexity can raise issues.<br><br>Participants who will attend the full course will receive a City Lit certificate of attendance electronically for their CV or CPD records. The certificate will show your name, course title and dates of the course you have attended.<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>• The fundamental theory of Object Oriented programming<br>• Practical implementation of an OO model in Python<br>• Unit testing and test-driven development<br>• Using closures and generators.• Explain the following concepts and how the interrelate: class, object, interface, implementation, abstraction, encapsulation, overloading, overriding, polymorphism, inheritance, composition.<br>• Design a class hierarchy for a programme and implement it with Python code.<br>• Set up and use unit tests and describe their benefits.<br>• Describe test-driven development and weigh up its pros and cons for a particular project.<br>• Write closures and generators in Python and describe use cases for each.This is an advanced course. You should be confident with the main elements of Python as covered on City Lit’s Introduction to Python and Intermediate Python:<br>• If, else and elif; <br>• While and for loops<br>• Lists and dictionaries<br>• Functions (using def)<br>You should be able to write a short programme to solve a problem given in words.<br><br>To follow the class, you should be able to follow spoken instructions, read written information and discuss your work with your tutor in English.There is some theoretical material on the course but it is mostly practical. The class is delivered through a mixture of tutor demonstration, practical exercises and discussion. Work outside class is not compulsory but is strongly recommended and example challenges will be provided.<p>Pen and notepad for note taking.You may choose to bring your own laptop if you prefer.</p><p>City Lit offers a variety of progression courses in this subject area. Please click <a href="https://www.citylit.ac.uk/media/wysiwyg/pdf/2627_New_Programming_Courses.pdf" target="_blank" rel="noopener noreferrer"><u>here</u> </a>to view our courses</p><p>Disclaimer: Use of Third-Party Software<br>This course might require you to either use your own personal account or create an account for the purposes of this course. City Lit cannot accept any responsibility for any failings of the third party or provide technical support. Whilst using the software you will be responsible for abiding by the providers terms and conditions and maintaining your own work.</p>Web design and programmingProgrammingvirtual3031588Advanced Python279279https://www.citylit.ac.uk/media/catalog/product/p/y/python-course_33.jpgInStockDaytimeSunHybrid (choose either online or in-person)Available courses1 to 4 weeksWeekend2026-12-06T00:00:00+00:00AdvancedDec 2026Business, marketing & technologyCOFP02279279Advanced Python223181279advanced-python/cofp02-2627<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>0000-Available|2026-12-06 00:00:00The first half of this course introduces Object Oriented Programming (OOP), the dominant approach to modern software development. OOP helps development teams manage the complexity of large projects and encourages a design-led approach to coding. We will look at both the theory of OOP and how it is practically implemented it in Python. <br><br>We then look at an approach that is complementary to OOP, which is the use of unit tests to organise a development project. A test-driven approach helps clarify which tasks need to be done and manage the risk associated with code changes, giving you confidence that new code is correct and doesn’t have adverse side effects.<br><br>We end with some additional topics related to Python functions that, while not always needed, will reveal more about how Python works “under the hood”. <br><br>All the topics on this course are popular in the technical parts of job interviews. This course is intended to set you on the path from writing short Python scripts on your own to working on larger software projects where robustness and complexity can raise issues.<br><br>Participants who will attend the full course will receive a City Lit certificate of attendance electronically for their CV or CPD records. The certificate will show your name, course title and dates of the course you have attended.<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>• The fundamental theory of Object Oriented programming<br>• Practical implementation of an OO model in Python<br>• Unit testing and test-driven development<br>• Using closures and generators.• Explain the following concepts and how the interrelate: class, object, interface, implementation, abstraction, encapsulation, overloading, overriding, polymorphism, inheritance, composition.<br>• Design a class hierarchy for a programme and implement it with Python code.<br>• Set up and use unit tests and describe their benefits.<br>• Describe test-driven development and weigh up its pros and cons for a particular project.<br>• Write closures and generators in Python and describe use cases for each.This is an advanced course. You should be confident with the main elements of Python as covered on City Lit’s Introduction to Python and Intermediate Python:<br>• If, else and elif; <br>• While and for loops<br>• Lists and dictionaries<br>• Functions (using def)<br>You should be able to write a short programme to solve a problem given in words.<br><br>To follow the class, you should be able to follow spoken instructions, read written information and discuss your work with your tutor in English.There is some theoretical material on the course but it is mostly practical. The class is delivered through a mixture of tutor demonstration, practical exercises and discussion. Work outside class is not compulsory but is strongly recommended and example challenges will be provided.<p>Pen and notepad for note taking.</p><p>City Lit offers a variety of progression courses in this subject area. Please click <a href="https://www.citylit.ac.uk/media/wysiwyg/pdf/2627_New_Programming_Courses.pdf" target="_blank" rel="noopener noreferrer"><u>here</u> </a>to view our courses</p><p>Disclaimer: Use of Third-Party Software<br>This course might require you to either use your own personal account or create an account for the purposes of this course. City Lit cannot accept any responsibility for any failings of the third party or provide technical support. Whilst using the software you will be responsible for abiding by the providers terms and conditions and maintaining your own work.</p>Web design and programmingProgrammingvirtual3043831Advanced Python279279https://www.citylit.ac.uk/media/catalog/product/p/y/python-course_34.jpgInStockDaytimeSatHybrid (choose either online or in-person)Available courses1 to 4 weeksWeekend2027-03-13T00:00:00+00:00AdvancedMar 2027Business, marketing & technologyCOFP01279279Advanced Python223181279Thepan Ravindranadvanced-python/cofp01-2627<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>0000-Available|2027-03-13 00:00:00The first half of this course introduces Object Oriented Programming (OOP), the dominant approach to modern software development. OOP helps development teams manage the complexity of large projects and encourages a design-led approach to coding. We will look at both the theory of OOP and how it is practically implemented it in Python. <br><br>We then look at an approach that is complementary to OOP, which is the use of unit tests to organise a development project. A test-driven approach helps clarify which tasks need to be done and manage the risk associated with code changes, giving you confidence that new code is correct and doesn’t have adverse side effects.<br><br>We end with some additional topics related to Python functions that, while not always needed, will reveal more about how Python works “under the hood”. <br><br>All the topics on this course are popular in the technical parts of job interviews. This course is intended to set you on the path from writing short Python scripts on your own to working on larger software projects where robustness and complexity can raise issues.<br><br>Participants who will attend the full course will receive a City Lit certificate of attendance electronically for their CV or CPD records. The certificate will show your name, course title and dates of the course you have attended.<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>• The fundamental theory of Object Oriented programming<br>• Practical implementation of an OO model in Python<br>• Unit testing and test-driven development<br>• Using closures and generators.• Explain the following concepts and how the interrelate: class, object, interface, implementation, abstraction, encapsulation, overloading, overriding, polymorphism, inheritance, composition.<br>• Design a class hierarchy for a programme and implement it with Python code.<br>• Set up and use unit tests and describe their benefits.<br>• Describe test-driven development and weigh up its pros and cons for a particular project.<br>• Write closures and generators in Python and describe use cases for each.This is an advanced course. You should be confident with the main elements of Python as covered on City Lit’s Introduction to Python and Intermediate Python:<br>• If, else and elif; <br>• While and for loops<br>• Lists and dictionaries<br>• Functions (using def)<br>You should be able to write a short programme to solve a problem given in words.<br><br>To follow the class, you should be able to follow spoken instructions, read written information and discuss your work with your tutor in English.There is some theoretical material on the course but it is mostly practical. The class is delivered through a mixture of tutor demonstration, practical exercises and discussion. Work outside class is not compulsory but is strongly recommended and example challenges will be provided.<p>Pen and notepad for note taking.</p><p>City Lit offers a variety of progression courses in this subject area. Please click <a href="https://www.citylit.ac.uk/media/wysiwyg/pdf/2627_New_Programming_Courses.pdf" target="_blank" rel="noopener noreferrer"><u>here</u> </a>to view our courses</p><p>Disclaimer: Use of Third-Party Software<br>This course might require you to either use your own personal account or create an account for the purposes of this course. City Lit cannot accept any responsibility for any failings of the third party or provide technical support. Whilst using the software you will be responsible for abiding by the providers terms and conditions and maintaining your own work.</p>Web design and programmingProgrammingvirtual207,223259,279168,181COFP01,COFP02NONESat,Sun11/07/26 - 18/07/2610:30 - 17:3010:3017:302 sessions (over 2 weeks)21 to 4 weeksDaytimeWeekendHybridHybrid (choose either online or in-person)AdvancedAvailable courses2026-07-11T00:00:00+00:00,2026-12-06T00:00:00+00:00,2027-03-13T00:00:00+00:00Jul 2026,Dec 2026,Mar 2027Business, marketing & technology259259,279Advanced Pythonadvanced-python/cofp01-2526,advanced-python/cofp02-2627,advanced-python/cofp01-2627<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>0000-Available|2026-07-11 00:00:00The first half of this course introduces Object Oriented Programming (OOP), the dominant approach to modern software development. OOP helps development teams manage the complexity of large projects and encourages a design-led approach to coding. We will look at both the theory of OOP and how it is practically implemented it in Python. <br><br>We then look at an approach that is complementary to OOP, which is the use of unit tests to organise a development project. A test-driven approach helps clarify which tasks need to be done and manage the risk associated with code changes, giving you confidence that new code is correct and doesn’t have adverse side effects.<br><br>We end with some additional topics related to Python functions that, while not always needed, will reveal more about how Python works “under the hood”. <br><br>All the topics on this course are popular in the technical parts of job interviews. This course is intended to set you on the path from writing short Python scripts on your own to working on larger software projects where robustness and complexity can raise issues.<br><br>Participants who will attend the full course will receive a City Lit certificate of attendance electronically for their CV or CPD records. The certificate will show your name, course title and dates of the course you have attended.<p>Strengthen your Python programming skills with this advanced course focused on Object-Oriented Programming (OOP)-a key approach in modern software development. Learn how to design and implement class hierarchies, understand core OOP concepts like abstraction, encapsulation, inheritance, and polymorphism, and apply them effectively in Python.</p><p>You’ll also explore functional programming features such as closures and generators, and gain practical experience with unit testing and test-driven development. Ideal for learners with prior Python experience, this course equips you with the tools to write clean, scalable, and maintainable code for real-world applications.</p>• The fundamental theory of Object Oriented programming<br>• Practical implementation of an OO model in Python<br>• Unit testing and test-driven development<br>• Using closures and generators.• Explain the following concepts and how the interrelate: class, object, interface, implementation, abstraction, encapsulation, overloading, overriding, polymorphism, inheritance, composition.<br>• Design a class hierarchy for a programme and implement it with Python code.<br>• Set up and use unit tests and describe their benefits.<br>• Describe test-driven development and weigh up its pros and cons for a particular project.<br>• Write closures and generators in Python and describe use cases for each.This is an advanced course. You should be confident with the main elements of Python as covered on City Lit’s Introduction to Python and Intermediate Python:<br>• If, else and elif; <br>• While and for loops<br>• Lists and dictionaries<br>• Functions (using def)<br>You should be able to write a short programme to solve a problem given in words.<br><br>To follow the class, you should be able to follow spoken instructions, read written information and discuss your work with your tutor in English.There is some theoretical material on the course but it is mostly practical. The class is delivered through a mixture of tutor demonstration, practical exercises and discussion. Work outside class is not compulsory but is strongly recommended and example challenges will be provided.<p>Pen and notepad for note taking.You may choose to bring your own laptop if you prefer.</p>,<p>Pen and notepad for note taking.</p><p>City Lit offers a variety of progression courses in this subject area. Please click <a href="https://www.citylit.ac.uk/media/wysiwyg/pdf/2627_New_Programming_Courses.pdf" target="_blank" rel="noopener noreferrer"><u>here</u> </a>to view our courses</p><p>Disclaimer: Use of Third-Party Software<br>This course might require you to either use your own personal account or create an account for the purposes of this course. City Lit cannot accept any responsibility for any failings of the third party or provide technical support. Whilst using the software you will be responsible for abiding by the providers terms and conditions and maintaining your own work.</p>Web design and programmingProgrammingconfigurable
14081687Programminghttps://www.citylit.ac.uk/courses/technology-science-and-business/web-design-and-programming/programming1/2/285/1211/1687/14081/Courses/Business, marketing & technology/Web design and programming/Programming