Undergraduate Module Descriptors 2012/13
CO270: Object-Oriented Software Development
Module Title |
Object-Oriented Software Development |
Module Code |
CO270 |
Module Tutor |
Vicky Bush |
School |
Computing and Technology |
CAT Points |
30 |
Level of Study |
5 |
Pre-requisites |
Before taking this module you must pass CO120 |
Co-requisites |
None |
Restrictions |
None |
Brief Description |
This module aims to give students an understanding of the object-oriented programming paradigm in the context of developing software that is well specified, designed and tested. Students will be exposed to a variety of notations at different stages of the development process. |
Indicative Syllabus |
- Software development lifecycle.
- The need for formal specification. A formal notation applied to software specification examples.
- Object oriented concepts within a practical context. The capabilities of class, inheritance, polymorphism and software reuse are explored in relation to the requirement of programming in the large.
- Static and dynamic data structures such as arrays, records and trees. Programming language representation and library support.
- Introduction to methods for systems design, development and testing with an emphasis on an object-oriented approach.
A range of practical problems will be used to explain these concepts. Software quality and sound software engineering principles are emphasised throughout. |
Learning Outcomes |
i. Knowledge and Understanding By the end of this module a student should be able to: a) Understand the stages of the software development lifecycle b) Analyse a formally specified problem statement with a view to accuracy and completeness c) Design components and their interfaces according to system requirements using relevant notation d) Formulate a solution based on an appropriate choice of control and data structures e) Exploit re-usability through the use of the software library as well as inheritance and polymorphism f) Effectively test the software product g) Produce documentation accurately describing the software product in appropriate notation h) Evaluate an algorithm’s need for resources
ii. Skills Problem solving: derive solutions to a variety of system development problems Communication and literacy: Analyse and evaluate the software design and implementation; contribute to group activities Independent learning and working: use books and websites to support learning; manage own time to complete exercises Information and Communications Technology: use a CASE tool and software development environment; produce word-processed submissions Vocational: apply technical knowledge and skills in software development that are directly transferable to industry Numerical techniques: Manipulate relevant mathematical notation and symbols. Demonstrate problem-solving abilities in developing and manipulating computer system models using a formal notation. Complexity analysis of algorithms |
Learning and Teaching Activities |
Staff/Student contact: approximately 20%, including lectures, tutorials and practical sessions. Student private study: approximately 80%, including reading, investigation, exercises and assessment. |
Assessment (For further details see the Module Guide) |
001: 25% Coursework: Portfolio: 2000 words or equivalent
002: 25% Written Exam: End of year, unseen, closed book: Unknown hours
|
Special Assessment Requirements |
None |
Indicative Resources |
The Library Catalogue contains full details of the current reading list for this module. Further details may also be found in the Module Guide. |