Time: 13:00 - 16:15
This course is FREE if a) you live in London and your job is at risk of redundancy or b) you are either on Jobseekers' Allowance (JSA) or Employment & Support Allowance(ESA) or c) you receive other state benefits (including Universal Credit) and your monthly take home pay is less than £343. For more information click here
This course will be delivered online. See the ‘What is the course about?’ section in course details for more information.
Course Code: CADP16
Please choose a course date
Duration: 4 sessions (over 4 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.
This is a live online course. You will need:
- 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?
You may be interested in some Maths for Programming courses such as: Introduction to Vectors, Linear Algebra and Optimisation for Machine Learning, Probability and Statistics for Data Analysis or the more coding-oriented Algorithms in Python. You may also want to follow our Data Science or Machine Learning pathways, or add a new language to your repertoire.
Rich is a programmer, writer and educator with a particular interest in creative practice. In his previous career he worked as a software developer in the CIty, first at a dot-com startup and later at a top-tier investment bank where he worked mostly on trading floor systems and got to play with a wide range of languages and technologies. He now teaches coding and maths-related courses full time. Besides his work at City Lit he also teaches at Central Saint Martins, the Architecture Association and the Photographer's Gallery and is the author of two books about mathematics. His technical collaborations with artists have been shown at, among others, the Hayward gallery, the V&A, the ICA and Camden Arts Centre. He has a BSc in Mathematics from the Open University. He also has a BA in English Literature and a PhD in philosophy (both from Cardiff). He continues to teach a little philosophy and literature, especially as they intersect with his other interests, and as a partner in Minimum Labyrinth he has brought these ideas to wider audiences in collaboration with the Museum of London, the Barbican and various private sponsors.
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.