This course takes an immersive approach to learning both the principles and practices of computer systems with much of the material based around examples and practical exercises. Students completing this course will have a firm grasp of the current practices and directions in computer systems and will be able to design and build for example, distributed systems for the Web using Internet, Intranet and other technologies.
Programme Objectives To provide the foundations for understanding of core ideas, methods and technologies in computer science. To provide the technical skills and background material so that the postgraduate will be able to conduct a near state-of-the-art research or development project; To provide the graduate with a range of specialist and transferable skills; To provide the educational base for further professional development and lifelong learning. Course Topics Data networks and communications, project foundations and management tools, broadband communication systems, technologies for Internet systems, agent technologies and Artificial Intelligence, introduction to distributed systems and mobile systems, project and dissertation.
Java programming: This module provides students with an in-depth understanding of current and emerging Java programming concepts and programming variations. The module teaches the basic and advanced structures of Java and makes use of the object-oriented approach to software implementation. It also gives an in-depth understanding of advanced Java concepts in the area of user interfaces and will enable students to apply the theoretical knowledge of the Java language onto a test-case software development scenario.
Introduction to distributed systems: This module will introduce key ideas in distributed Systems and its role and application in operating systems and middleware. On completion of this module students will have an understanding of the key issues for distributed systems at OS level or as middleware, they will understand core concepts of concurrency, be able to program multithreaded and distributed applications and understand the issues and use of algorithms for transactional systems.
Data networks and communications: This module will provide an in-depth understanding of how real communication networks are structured and the protocols that make them work. It will give the students an ability to understand in detail the process required to provide an end-to-end connection.
Technologies for Internet Systems: In this module, students will be introduced to state of the art technologies and tools for Internet Systems and in particular e-commerce systems.
Agent Technologies: This module provides an in-depth understanding of technologies from Artificial Intelligence research such as machine learning, data mining, information retrieval, natural language processing, and evolutionary programming. It will look at the application of agent-oriented technologies for Artificial Life, for building Web search engines, for use in computer games and in film (such as the MASSIVE software developed for the Lord of the Rings movies), and for robotics. It will also provide an introduction to agent-oriented programming using the NetLogo programming language.
Foundations of computer graphics: This module will teach techniques, algorithms and representations for modelling computer graphics and enable students to code 2D and 3D objects and animations.
Database systems: Students completing this module will gain an in depth understanding of DBMS/Distributed DBMS architecture, functionality, recovery and data storage techniques. Students will also have a full understanding of how queries are processed and the importance of database maintenance. This module is designed to enable students to perform research into one or two areas of databases; for example, object oriented databases and deductive databases.
Project foundations and management tools: This module prepares students for their MSc research project, including reference search and survey preparation and familiarisation with project management tools.
MSc Research project: After the successful completion of the taught component of the MSc programme, students will spend the remainder of the time undertaking a research project and producing an MSc Dissertation. During this process, students will conduct project work at state-of-the-art research level and to present this work as a written dissertation. Completing a project and dissertation at this level will train students in: problem solving; researching new topics; organizing knowledge; exercising elementary time and project management skills; reporting and writing skills.