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?
You may be interested in some Maths for programming and data analysis such as: Linear algebra and optimisation for machine learning, Probability and statistics for data analysis, Algorithms in Python and introduction to machine learning or you might want to Data analytics with Python: introduction ot Introduction to R programming.