Object Oriented Software Design and Development
This module equips students with the essential knowledge and skills required to understand core computer science concepts and to construct efficient object-oriented (OO) software systems. Students will explore key object-oriented programming (OOP) techniques, algorithms, data structures, and design principles necessary for modern software development.
Educational Aims
The module aims to: - Demonstrate an understanding of computer science theory and object-oriented concepts. - Introduce trends in software development and the advantages of object-oriented approaches. - Teach the creation of object-oriented designs using standardized formats such as UML. - Develop efficient and maintainable software solutions based on object-oriented principles. - Ensure programs are tested and meet specified requirements.
You will cover:
- Fundamental Computer Science Concepts: Algorithms, data structures, Big O notation, and complexity analysis.
- Object-Oriented Concepts: Key principles such as modularity, re-use, abstraction, encapsulation, inheritance, and polymorphism.
- Trends in Software Development: Focus on the perceived advantages of object-oriented approaches.
- Object-Oriented Design: Using recognized formats like UML to create object-oriented designs.
- Efficient Software Development: Writing object-oriented software that adheres to coding standards and meets project specifications.
- Testing and Documentation: Producing detailed test plans and ensuring code is maintainable and testable.
Delivery
All resources can be found on Blackboard.
Assessment Strategy
Component A: Practical Portfolio
This module is assessed through a single practical portfolio, which requires students to apply object-oriented programming techniques to design, develop, and test a software solution. The portfolio emphasizes creating efficient and maintainable code. The completed solution must adhere to industry best practices and include extensive testing and documentation.