How Object Oriented Programming (OOP) works
Object Oriented Programming is a design philosophy or “paradigm” which is organized around reusable chunks of code called “objects” rather than a procedural list of instructions to be completed. OOP has four main concepts:
- Encapsulation – hiding data implementation by restricting access
- Abstraction – decomposing complex systems into smaller components
- Inheritance – a way to reuse code of existing related objects
- Polymorphism – processing objects differently depending on their data type
This may all sound a bit technical, but essentially OOP is a way of breaking complex data and logic down into simpler, smaller pieces which are modular, reusable, and easy to maintain and modify.
Why is OOP useful on the web?
These advantages of Object oriented programming also carry over to web development in the following ways:
- Large complex systems have to be broken down into smaller simpler objects, which makes writing the code much less scary!
- OOP is easily maintainable due to the organized code format – it makes adding new features much quicker.
- This structure should also make it easier for someone else to pick up and edit your code later on, great for team-working and open source projects.
- Data should be more secure, as access to it is controlled by encapsulation
- Object oriented code is easier to test using unit-testing, and it is much easier to hunt down errors within your code due to its well-defined structure.
- Code is reusable, both through inheritance within the same system, or it should be easy to slot into other object oriented systems.
Why is it useful for eLearning?
Objects have been a core principle within eLearning development for many years, with the creation of RLOs, or “Reusable Learning Objects”. The idea of these objects are to make small self-contained chunks of learning that are stand-alone, reusable, and easy to integrate into wider systems – exactly matching some of the principles behind the OOP paradigm. Therefore, when we code our RLOs using OOP it adds further layers of reusability and maintainability.
Object orientation is not too dissimilar to trends already going on within the eLearning Industry. SCORM (Shareable Content Object Reference Model) is an XML-based eLearning framework which defines access information about RLOs so they can be easily shared among different Learning Management Systems (LMS). SCORM has been used within the eLearning industry for many years now, and it is loosely based on OOP principles; breaking complex things down into smaller chunks that are in a standard format and so easy to update and reuse.
After SCORM, the next step on is the Tin Can API (or xAPI) which is a web service which allows for statements of learning experience to be delivered and stored in a Learning Record Store (LRS). Tin Can is, according to their own statement, the future of eLearning, and it’s libraries have an entirely object oriented architecture – so it looks like it’s about time us eLearning Developers got our heads around it!