Teaching is in the form of lectures, seminars, tutorials and practical workshops.
Outline Course Content: Taught components
The aim is to equip you with the theory and skill-sets required by application designers and developers, and systems integrators for the enterprise computing platforms emphasizing both the front-end (Client- Side) and the back-end (Server-Side) aspects of enterprise computing. The course is built on modules utilising state-of-the-art techniques, tools and development platforms.
Agile Software Development (20 credits):
This module aims to provide you with knowledge of the techniques and steps used in the analysis, design, and implementation of an object-oriented software system. You'll be introduced to an appropriate conceptual framework (methodology) for undertaking software engineering projects which you'll use in subsequent work. The use of analysis artefacts to inform and influence a design that is represented by appropriate artefacts is covered before implementing the design in an object oriented programming language. An underlying theme will be the application of sound Software Engineering Practice and the use of an appropriate methodology in the production of a small software system.
Component-based Software Engineering (20 credits):
An opportunity to analyse, design and develop an object-oriented software system and gain experience of team work close to what you'll find when joining the software industry. This module’s aim is to enhance your ability to develop, within a group, a software application through the use of disciplined and methodological approaches to analysis, design, coding and testing. You'll have an opportunity to present to your peers the artefacts produced by the various phases of the software development cycle. The individual members of the project development team are given responsibility to implement parts of the total system by decomposing the specification. The exercise is completed by integrating the component artefacts into a fully working and tested application. An innovative assessment scheme is used, reflecting the contribution of each of the team members to the overall project implementation.
Distributed Enterprise Computing (20 credits):
The necessary theoretical and practical skills required to both understand and provide well recognised solutions to the distribution of information across the network. The first half of the module will focus on the utilisation of network APIs suitable for delivering viable client server interactions. You're first introduced to the client server architecture from a low level networking perspective, and then to the use of network programming APIs. The second half of the module aims to develop your knowledge and understanding of Distributed Enterprise Computing. This involves the development of generic software solutions to industrially scaled problems. This is a growing trend in industry reinforced by the academic research within the field of distributed computing systems. You're introduced to the service oriented and object based architecture (SOA and OMA) that support enterprise software systems. In this context middleware such as GRID computing are covered. You're then introduced to emerging trends in enterprise computing. Throughout this module your understanding and skills in industry standard technologies such as AJAX, EJB, CORBA, Web Services and Web 2 are developed. You'll be required to apply at least one advanced distribution technique to deploy a software system.
Professional and Ethical Computing (10 credits):
Developing an appreciation of the major professional and ethical factors affecting the people working in computing applications and highlighting the choices and consideration that individuals and organisations must make in their operation. You'll be exposed to codes of conduct of professional bodies associated with computing and laws related to computer use.
Corporate Database Design and Development (10 credits):
A theoretical appreciation and practical application of the fundamental issues involved in database design and implementation. Conceptual database design (using entity relationship (ER) modelling) and logical database design will both be covered to a reasonably advanced level while physical database design will be covered only briefly. Implementation will be in Structured Query Language (SQL). On the practical front you'll design, implement and test a small relational database application system in a multi-user environment using an industry-standard database management system (DBMS).
Advanced Database Design and Development (10 credits):
The module builds directly on the prerequisite Database Design and Development module and provides a more in-depth treatment of the underpinning concepts of the Relational Data Model, the role and structure of relational database management systems (RDBMS) including how these impact on physical database design and consolidates/ extends the practical/analytical skills required to carry out more advanced physical database design to improve the performance of a database application system partly by making efficient use of software tools integrated within a modern Relational Database Management System (RDBMS). It also keeps you abreast of recent developments in this field.
Computer Security (20 credits):
Advanced knowledge and understanding required to analyse and formulate solutions regarding computer systems and networking security. You'll learn how to analyse security requirements and creatively apply solutions and evaluate them under various constraints. Current solutions to complex information and computer security problems are investigated.
E-Commerce for Integrated Enterprise Solutions (10 credits):
This module serves to provide a case study for the integration of the three core themes taught elsewhere in the course, namely: Analysis, Design and Implementation of Software Solutions, Distributed Computing in the Enterprise and Database Design and Development.
Research Methodologies (20 credits):
This module aims to enable you to produce a critical and reasoned academic project proposal underpinned by a systematic methodology, in preparation for your final project work. Very few lectures are delivered but your learning is supported by a combination of presentations, seminars, workshops on selected topics; in particular the University's Policy on ethical practices, and conference attendance where appropriate. This module also aims to enhance your skills in critiquing research and presenting your findings. You'll illustrate how you've utilised project planning and project management techniques for the successful completion of your project dissertation.
Project (40 credits):
The culmination of your earning experiences. Under the guidance of a supervisor, you'll undertake an extended piece of focussed research, building on work completed elsewhere by means of either an in- depth study of one aspect of such work or by the exploration of a new area. It allows you to individually manage, analyse, design, program and test a substantial system (within an academic context), of good quality, of your own choice using a software development life cycle/methodology of your own choice. As such it provides a context for the unification, consolidation, analysis, synthesis, integration and further development of the knowledge and practical skills cultivated elsewhere in the courseas well as an opportunity for both creativity and innovation. The final submission is in the form of a Report with a software artefact and all the deliverables associated with the development and subsequent use of that artefact along with a presentation. Successful projects can act as a portfolio to show prospective employers, or may lead to higher research degrees.