Application Development

Module summary

Module code: COMP1551
Level: 5
Credits: 15
School: Liberal Arts and Sciences
Department: Computing and Mathematical Sci.
Module Coordinator(s): Elena Popa

Specification

Pre and co requisites

Level 4 object oriented programming such as COMP1752 Object Oriented Programming.
Level 4 software design with UML such as COMP1713 Database Systems Development

Aims

A solid understanding of programming techniques is essential for practitioners across a range of computer science and IT disciplines. Building on fundamental level 4 programming skills and experience with UML and object oriented languages; this course considers advanced OO techniques together with issues of user interface design, software re-use, software quality and a structured approach to software design and implementation. Emphasis is given to use of a modern integrated development environment to develop data-driven applications with a graphical user interface. Programming techniques will be taught following a problem solving, case-study based approach to learning programming skills.

Learning outcomes

On successful completion of this course a student will be able to:
1 Use UML and to design object oriented, interactive, data-driven, applications.
2 Use a modern IDE with an object oriented programming language to create interactive, data-driven, applications.
3 Demonstrate theoretical and practical skill in the design, implementation and testing of applications making use of object oriented approaches such as classes, message passing, overloading, data connectivity, inheritance, threads and patterns.



Indicative content

Features of object-oriented programming languages, comparison and evaluation of programming languages.
UML in practice: class, component, activity, use case, sequence and state diagrams.
Use of an Integrated Development Environment to implement UML based designs.
Events, errors and exceptions, classes revisited.
Inheritance, containers and collections.
User interface design, facilities for building GUI interfaces, user input validation.
Database connectivity, querying and protection.
Multithreading, issues of concurrency.
Debugging and testing of object-oriented programs, TDD.
Object Oriented design patterns.