This module builds on stage one and introduces learners to the concepts of object-oriented programming. The module extends prior knowledge of the principles of data structures and application design and furthers technical competence in implementing various computing artefacts. The module looks at the programming paradigm defining data and operations together as objects and enables the learner to reuse objects within the same or other programmes.
This module will ensure learners meet the following objectives:
- Establish development skills using Object-Oriented Programming.
- Introduce a number of fundamental data structures and program designs and their applications in software development.
- Create an understanding of object creation and design.
- Ensure the appropriate storage of objects in an array or data structures.
- Progress file input, output and testing.
- Develop further technical competence in Object-Oriented Programming.
Principles of Object-Oriented Programming
- Class, Object and Instances
- Attributes and Methods.
- Basic OOP principles: Abstraction, Encapsulation, Polymorphism.
- Relationship between the classes, class hierarchies. Derived and Inherited classes.
- Packages and interfaces
- Data structures, iterators and containers
Libraries and Data Structures
- Data structures: arrays and lists, hash tables.
- IO and streams
- Exception handling and debugging code
- System and utility libraries
Testing and Debugging
- Black Box
- White Box & stress testing
- Unit testing
- Integration testing Manual walk-throughs
- Exception class hierarchy
- Unhandled exceptions
- Catching/Throwing exceptions
- Finally clause
- The call stack
- Saving data to a file
- File input and output
Object-Oriented Applications Design
- Introduction to Object-Oriented software development and design
- Object Relation Mapping
- Roles of Classes in Software Engineering.
- Program design: Inheritance versus composition
- Java platform and variants