CM2201: Object Oriented Applications

School Cardiff School of Computer Science and Informatics
Department Code COMSC
Module Code CM2201
External Subject Code 100960
Number of Credits 10
Level L5
Language of Delivery English
Module Leader Dr Andrew Jones
Semester Autumn Semester
Academic Year 2017/8

Outline Description of Module

Aims to teach the principles of good Object-Oriented Programming (OOP) practice. Provides an introduction to ways in which computing concepts can be realized in an object-oriented fashion, and to the development and application of re-usable code and designs. Explores how multi-threaded object-oriented programs and user interfaces can safely be implemented.

On completion of the module a student should be able to

  1. Explain and justify key OO principles.
  2. Appreciate the main features that are needed in a programming language in order to support the development of reliable, portable software.
  3. Apply principles of good OO software design to the creation of robust, elegant, maintainable code.
  4. Explain and utilise a range of design patterns.
  5. Demonstrate understanding of object-oriented abstractions for concurrency and user interaction.
  6. Appreciate key abstractions and issues relating to software architectures for multi-threaded user interface implementation

How the module will be delivered

The module will be delivered through a combination of lectures, supervised lab sessions, example classes and tutorials as appropriate.

Skills that will be practised and developed

A. Design and implement fully OO Java programs.

B. Model systems using UML class diagrams.

C. Create and extend re-usable, maintainable code, applying appropriate “rules of thumb”.

D. Evaluate and make effective use of classes (such as data structures) from pre-existing libraries.

E. Develop and apply design patterns.

F. Use the facilities provided by Java to create threaded and interactive programs.

How the module will be assessed

Coursework: The coursework will allow the student to demonstrate their knowledge and practical skills and to apply the principles taught in lectures.

Exam: A written exam (2 h) will test the student's knowledge and understanding as elaborated under the learning outcomes.

Assessment Breakdown

Type % Title Duration(hrs)
Written Assessment 30 Programming And Modelling Assignment N/A
Exam - Autumn Semester 70 Object Oriented Applications 2

Syllabus content

The influence of basic OO principles, including abstraction, encapsulation, inheritance and re-use, on design and implementation of OO programs.

"Rules of thumb" for good OO program design, including interface versus implementation, and cohesion & coupling.

OO modelling and communication of design using UML diagrams.

Refactoring.

Design Patterns.

Object-oriented concurrent programming (tasks/executors, synchronization)

Single-threaded sub-systems, the model-view-controller pattern for graphical user interfaces (including SWING), and safe multi-threading of interactive applications.

Java is the primary programming language which will be used in concrete examples of the above topics.

Essential Reading and Resource List

Please see Background Reading List for an indicative list.

Background Reading and Resource List

M Fowler, UML Distilled, 3rd ed., Addison-Wesley, 2004.

Core Java Volumes 1 & 2  Horstman and Cornell, Addison Wesley 

D Skrien, Object-Oriented Design using Java, McGraw-Hill, 2009.

Brian Goetz, Java Concurrency in Practice, Addison Wesley, 2006.

Online design patterns repository:  http://www.oodesign.com/

Bruce Eckel, Thinking in Java, 3rd edition – downloadable from http://www.mindview.net/Books/TIJ/

Bruce Eckel, Thinking in Patterns – downloadable from http://mindview.net/Books/TIPatterns/


Copyright Cardiff University. Registered charity no. 1136855