Time: 18:00 - 21:00
Location: Hybrid (choose either online or in-person)
This course will be delivered online or in person. See the ‘What is the course about?’ section in course details for more information.
This course has now finished
Course Code: COFP01
Duration: 6 sessions (over 11 weeks)
What is the course about?
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.
You can choose to attend this course either live online or in person.
- Internet connection. The classes work best with Chrome.
- A computer with microphone and camera.
We will contact you with joining instructions before your course starts.
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.
When I've finished, what course can I do next?
Please click here to view our Programming and Maths 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.
Tim is a PhD candidate in the field of High-energy physics. He attained an MSci degree from Imperial College London with a thesis on the formation of exoplanet moons. He has studied Python in the context of physics simulations, data analysis, statistical modelling, and Machine learning. For the past three years he has taught A-level students, undergraduates, and some university staff how to use Python effectively for modelling and data analysis. He has also tutored a variety of students in physics and mathematics from KS3 level to first-year undergraduate. His supervision in the undergraduate computing and physics laboratories of Imperial College London earned him a nomination for a Student Choice Award. “I was not exposed to programming until starting my undergraduate, but mere weeks into my degree it became an invaluable tool which I have used ever since.”
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.