Time: 18:00 - 21:00
Location: Keeley Street
Course Code: CADP16
Available start dates
Duration: 4 sessions (over 4 weeks)
What is the course about?
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.
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.
What will we cover?
• Object Oriented Principles and Theory
• Practical implementation of an OO model in Python
• Functional Programming concepts
• Practical implementation of Python functional programming.
What will I achieve?
By the end of this course you should be able to...
Describe and implement in Python the following key concepts of OO programming:
- Abstraction, information hiding and encapsulation
- Class and Objects
- Association (inheritance), Aggregation and Composition
Describe and implement in Python the following key concepts of functional programming:
- Statelessness and immutability
- First class and higher order functions
We will also use list comprehensions and the map function.
What level is the course and do I need any particular skills?
You will need to be able to use sequence (if, elif statements), repetition (for and while loops), lists, dictionaries and be also able to create your own subroutines using the def statement in Python. You should also be able to follow spoken instructions, read written instructions and information, and discuss work with your tutor in English.
How will I be taught, and will there be any work outside the class?
There will be some theoretical underpinning to the course, but it is nearly all practical, through teacher demonstration and practical programming and problem solving activities. There is no official work set outside the class but it is a good idea to practise the skills you have learnt to reinforce classroom learning.
Are there any other costs? Is there anything I need to bring?
Computers are provided for each student with all the necessary software installed. All the software used on the course is free to download and use and your tutor will recommend where to find this software for home use. Unfortunately due to the range of hardware and software used by students at home, the College is unable to provide advice on installation issues.
If you wish to copy the programs you produce on the course please bring a USB key or have access to a cloud service such as Google Drive or Dropbox. A pen and notepad for note taking is also advised.
When I've finished, what course can I do next?
Please click here to view our Programming and Maths courses.
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.