About the course
- One of a range of advanced courses within our postgraduate masters programme in Computer Science, this particular course provides you with a specialism in the expanding and in-demand field of mobile computing.
- Advanced topics studied include mobile network technologies and development platforms, mobility in computer networks, and the associated usability and security issues, plus a wide range of specialist options in computer science.
- Practical work to reinforce the theory taking advantage of our excellent laboratory facilities includes the use of one of the major mobile development platforms such as J2ME or Windows CE and network programming in Java.
- Taught by a highly-regarded and long-established computer science department with strong links to business.
Entry requirements
A recent, good bachelors degree (e.g. honours degree from the UK) or equivalent in Computer Science or closely-related subject
Applicants who do not wholly meet these requirements, but who are considered to have the professional experience, motivation or potential to succeed at the programme, may also be accepted.
Study routes
- Full-time 15 months (Oct start)
- Part-time 3 years
Location(s)
More about the course
Mobile computing is experiencing very rapid growth with applications ranging across all sectors, from the individual to the enterprise.
On this course you will become familiar with the principles behind a variety of mobile network technologies. You will learn how to apply traditional software development techniques to mobile devices and how to use emerging technologies for the creation of innovative multi-user distributed applications.
The course covers the major development platforms, the different approaches to providing mobility in computer networks, and the associated usability principles and security issues. You will have the opportunity for practical programming work in one of the major development platforms for mobile computing.
Course Structure:
The course lasts for 15 months over three semesters from October to March of the next year, with a three months break during the summer. This break can be used for further study, work experience or a holiday. In the first two semesters there are four or more taught modules, to make a total of 120 credits, and there is a 60 credit project in the third.
There are two core modules fixed for this course. You will also take two or more optional modules, making up 60 credits, which you can choose from the full list of advanced, specialist modules in Computer Science.
Core Modules:
- Mobile, Multicast and Multimedia Networking (15 credits)
- Wireless, Mobile and Ad-hoc Networking (15 credits)
- Mobile Standards, Interfaces and Applications (15 credits)
- Secure Systems Programming (15 credits)
- Project (60 credits): In the third semester (October to January of the next year), you complete a project in your chosen specialism under the guidance of an experienced individual supervisor.
Through the project you will demonstrate your understanding of the principles and concepts you have learned in the taught modules and your ability to apply them to a substantial piece of development or investigative work.
Careers
Our masters programme is designed to give Computer Science graduates the specialist, up-to-date skills and knowledge sought after by employers, whether in business, industry, government or research.
This particular course will prepare you for a career such as a mobile computing system designer or developer.
Teaching methods
Classes consist of lectures, small group seminars, and practical work in our well-equipped laboratories. We use modern, industry-standard software wherever possible. There are specialist facilities for networking and multimedia and a project laboratory especially for masters students.
In addition to scheduled classes, you will be expected a significant amount of time in self-study, taking advantage of the extensive and up-to-date facilities.
Core modules
How can we cope with users and computers that move from place to place, and yet wish to remain in contact with the net? How do we deal efficiently with applications that have to send the same data to many different destinations? How can a network mix applications with very different quality of service requirements? This module addresses these and other problems that must be solved if we are to integrate the gamut of diverse network applications onto a single network infrastructure. It exposes students to some of the most important developments in computer networking. By the end of the module, you will be familiar with most of the important issues and ideas in applying high-speed network technology to applications with diverse quality of service requirements.
This module provides how can students cope with users and computers that move from place to place, and yet wish to remain in contact with the net? This module looks at a range of wireless communications technologies, and addresses some of the problems of mobile ad-hoc and wireless networks. It exposes students to some of the most important developments in computer networking.
Mobile and pervasive computing is a rapidly evolving area and so the main body of knowledge will be taught through the close reading of the most up-to-date research in the area. Themes covered could include pervasive computing, mobile HCI, privacy and security, location and context awareness, technological transparency vs proactivity, mobile development platforms, networking and data standards. Ensuring deep and broad background in these ideas constitutes the seminar part of the course. Alongside this runs a practical course in programming for mobile devices based on one of the popular development platforms. Following this, students in groups create a substantial mobile application project involving the research, specification, design, implementation and evaluation of a system using real mobile devices, or conversely an emulation of such a system should the technological hardware not be available for the system envisaged.
The variety and proliferation of passive and active malicious attacks made against users of networks and distributed systems has led to a need for pro-active defence mechanisms against such attackers. For an individual, the inconvenience of being attacked can range from being extremely frustrating to downright expensive with slow to no service at all on their computer. For a company it too can be frustrating and costly both financially and to their reputation. This module will be both theoretical and practical, exploring concepts and applications from the fields of computer systems and their security weaknesses. Content will vary according to current research directions.
Optional modules
This module is primarily designed for students with existing knowledge and experience of database design and implementation, and an understanding of the underlying theory and practice. The aim of the module is to enhance the students’ existing understanding and knowledge through focussed study of selected current and emerging issues in the database field. The study will be grounded in sound understanding of relevant theory, practice and principles and promote a practical understanding and critical awareness of the selected issues.
A range of topics will be covered in this module. The detailed content will vary according to current research directions. Case studies will be used throughout. Issues will be considered in relation to each topic as appropriate. These pervasive issues are- models, design, standards, protocols, and performance.
In this module advanced issues of software engineering theory and practice are examined. The range of software engineering products and processes making up a software project are measured and modelled. Typical software engineering products explored in the module may include- user requirements, design documents, code etc. Typical software engineering processes explored in the module may include- testing, de-bugging etc. The aim of the module is to use the modelling and measuring of such products and processes to allow quantified decision-making during software development. The module offers students the opportunity to explore both the state-of-the-art and thestate- of-the-practice in software engineering. The module will examine the most up to date research findings about software engineering as well as investigate the current practices of many software engineering companies.
The Multimedia Specification Design and Production module is intended to develop an advanced understanding of the stages in the development of multimedia computer applications. This will include the analysis, design, implementation and evaluation of interactive multimedia software as well as the design and development of the component media used in such software. There is a large practical element to the module within which students will develop advanced skills in a multimedia programming tool and use this tool in conjunction with the theoretical principles gained on the course to develop an interactive multimedia computer application.
This module introduces the basic facilities found in imperative and object-oriented programming languages, and develops the skills needed to use such languages to build and verify high quality programs to solve clearly-specified problems. It assumes no previous programming experience, and uses a practical approach, and up-to-date tools, to explore the basic principles underlying modern approaches to program development.
This module introduces students to industry standard and current best practice tools and techniques used in the development of software systems. The Unified Modelling Language (UML) is used to produce models of the system at various stages in a software project, and to illustrate how these models can be elaborated from analysis through to design, implementation and deployment. Patterns and frameworks that occur across a range of problems and applications are explored. Alternative models of the process of software development are introduced. This is a practical module with an emphasis on the use of suitable software tools.
This module explores the use of object-oriented methods and tools in the design and implementation of software systems, particularly the appropriate use of inheritance to support code reuse and to promote flexible designs. Practical work involves these and other advanced features of modern programming languages (such as programming graphical user interfaces, using threads, and using generic library classes). The module assumes some prior programming experience and an understanding of basic object-oriented concepts.
This module provides a broad understanding of information systems (IS) project management. The module will look at the various IS development methodologies in use and will cover project control activities and techniques includingestimation of development resources, risk management, systems quality assurance and human resource management. This module also covers the relationship between technological change, society and the law, emphasising the powerful role that computers and computer professionals play in a technological society. It also covers the laws in EC which are relevant to the discipline of computer science, and an understanding of important ethical concepts and dilemmas of relevance to computer professionals.
This module is primarily designed for those with an existing knowledge and understanding of fundamental computer networking concepts, protocols and architectures and aims to extend that knowledge in practice. Students will be able to gain a deeper understanding and appreciation in computer networks and the Internet by having hands-on experience with real networks and will learn how to configure and maintain network systems.
This module gives students the opportunity to extend their understanding and experience of software engineering practice. It offers students exposure to the development and evolution of software. The module is very practical and is based around a substantial piece of software. The aim of the module is to enable students to develop software engineering knowledge and skills that are transferable to software companies. The module covers each element of the software engineering process. It explores the use of overarching development approaches such as eXtreme Programming and Component Based Software Engineering. Leading edge practices are introduced such as using program slicing to find code faults. Specialised software development approaches are investigated such as those required for application areas such as safety critical systems. Process models popular with industry, such as one of the SEI models, are also used and evaluated during this module.
The term web services is used to define a number of protocols and technologies used to implement a service oriented architecture. These standards are designed to support the notion of using standardised interfaces to allow communication, integration and co-ordination of information between applications distributed over and accessible through a decentralised network environment. This module develops students’ understanding of the fundamental architectures of web services and the protocols and standards that underpin them. The module provides only a brief introduction to the basic technologies and associated practical skills before moving on to focus on architectural issues and evaluation of different technologies and their developments. This will be done in the context of specific application and/or enterprises. Examples could include applications within e-commerce, information retrieval and knowledge management.
A study of a selection of research topics centred around evolutionary neural networks, neural network design, machine learning and some interesting applications, for example, Data Mining, Biocomputation, Robotics, Evolutionary Algorithms, Neural Networks as models of human cognition, and data visualization. Actual topics taught may vary from year to year.