This module and develops your programming skills in the main development language, e.g. the C# programming language. You will develop graphical user interface applications that run in the Windows operating system. A strong emphasis is placed on high quality development that provides a strong foundation for future more advanced software development skills.
Computer systems examines the underlying fundamentals of computer systems’ operations, including the number systems they use, how computer processors operate at a simple level and the relationship between different hardware components.
The Computing Professional
This module introduces you to the variety of roles there are in computing and some of the key skills required to work in those areas. You will also start to think about the ethical issues in the field of computing and start to develop your own ideas of appropriate responses to these. You will also start to look at some of the nontechnical skills that are involved in computing such as team work, presentation and research.
Maths for Computing
Math is the key stone for all technical and computationally expensive aspects of computing, it is the main driving force behind the advancement of computer architecture to date. This module will look at the fundamental aspect of mathematics and will demonstrate how they are used in modern computing via the C# programming language. You will learn the underlying theories, such as probability, linear algebra and calculus.
Principles of Software Development
We look at the basic ideas of software engineering – the processes that should be followed to go through to develop software solutions. You will also study the basic concepts of standard algorithms and data storage and the mathematics required to support this area.
Likely optional modules
Introduction to Programming
This is the first module of programming in the degree and teaches students who may have no prior programming experience some of the fundamental concepts in the area. You will work with two different programming languages – for example to develop Android apps using MIT App Inventor and traditional applications in the C# programming language.
E-commerce and Web Development
One area of computing that has grown enormously in the last fifteen years is that of ecommerce. Both business to business and business to consumer sales and marketing is now often done electronically using web sites and systems. This module looks at the concepts of ecommerce systems and looks at development of web sites using HTML 5/CSS and the use of content management systems (CMS) to produce end user informational websites.
This module deepens the theory learnt in math for computing module. In this module you will look further into the design, implementation and evaluation of advance algorithms used across the entire spectrum of computing, spanning simple string matching algorithms to NP hard problems.
The computer networks module introduces you to the theories and practical deployment of computer networks to enable more than one computer to communicate to share both data and processing. Students will be introduced to the OSI and TCP/IP models of network operation.
Developing Database Systems with SQL
This module looks at the concepts and theories behind the use the relational database model and how this is practically implemented in the Oracle Relational Database Management System using the SQL language. Oracle is the world’s most popular database management system by market share.
Objectoriented programming continues the software programming stream from year 1 by looking at a way of thinking about problems and development of solutions – using the class and object model. Continuing the use of the main programming language from year 1 (typically C#) the module deepens your knowledge of how to use the power of this development language.
Research methods looks at how we can research new areas in computing. You will be given a range of tools to glean data, such as interviews, questionnaires and experimentation. You will also be given the analysis tools to make sense of the data collected, such qualitative and quantitative statistics. By the end of the module you will have produced a fully articulated research proposal.
This module deepens the knowledge and understanding of how we go about building software in a controlled and measured way. At the end of the module you will have produced a fully articulated project proposal for your third year Individual Project, which forms a compulsory part of year three.
Advanced Programming looks at some very modern and complex techniques used in computer programming. Again, you will use the C# language, but will also be exposed to other programming languages in order to experience the full range of methods for software development. You can expect to look at a number of ‘patterns’ and study such areas as serialisation of objects to persistently store them and the use of reflection.
Individual Project (20 or 40 credit)
This module is the culmination of your learning experiences on the entire course. You will, under the guidance of a supervisor, undertake a piece of focussed research. This will build on work completed elsewhere on the course by an in-depth study of one aspect of such work or by the exploration of a new area.
Intelligent & Parallel Computing
This module looks at how a computer can model and understand data in abstract form. You will gain knowledge on how to transition your solutions from simply processing data to understanding it. This module will cover cutting edge techniques such as machine learning, probabilistic modelling, classification and ports it into the realm of parallel processing. You will learn how to implement solutions to work across multiple computers (clusters) in concert to accommodate even the most demanding algorithms that exists; for example, working on big data processing and artificial intelligence.
This module looks at the operation and underlying operations of the operating system in the use of modern, largescale computer systems. You will gain an understanding of how resources are managed by the operating system by looking at these in theory and the actual operation in systems such as Windows and Linux.
Likely optional modules
Cryptology is the study of codes and ciphers. These are highly important in the computer environment to protect information from malicious attack or unintended release. You will study the operation of modern computerbased ciphers and other cryptographic mechanisms, which when combined can form protective protocols for a number of computer and everyday problems.
Human-Computer Interaction looks at the interplay between the human user of a computer system and the computer system itself in order to maximise its effectiveness. You will study a number of theories of good design of computer systems and will deploy these in the design of your own interfaces. Further, once designed or implemented you will learn techniques for evaluating the effectiveness of the interfaces in order to improve them.
Placement in Industry or Commerce
The placement module is a flexible module that allows you to gain experience and put your knowledge into practice outside the university classroom setting. This can be done over the summer before your third year of study as a block of work; during your third year on a given number of hours each week; or some combination in agreement with the organisation and University.
You will be required to pass all your second year modules of study at first attempt; have a good overall average and must gain your placement place to be eligible to take this module. You will be given assistance in identifying and applying for placements.
Recent Advances in Computer Networks
This module deepens your understanding of computer networking by looking at a number of more recent mechanisms for computer networking, such as mobile networks and the latest versions of the TCP/IP protocols. This will enable you to make the most effective use of networking hardware to create distributed systems.