Computer Systems examines the underlying fundamentals of computer system’s 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: teamwork, presentation and research.
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.
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.
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.
This module continues on from Introduction to Programming 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.
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. You 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 of 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.
The aim of this module is to explore the business paradigm shift that arises from application of emerging information and communication technologies. The module looks more deeply at gaining an understanding of business activities and interaction between business and the business environment and how technologies can be deployed to enhance these activities.
Interactive Web Programming
This module continues the software programming stream from year one 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 one (typically C#) the module deepens your knowledge of how to use the power of this development language.
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.
Individual Project (20 or 40 credits)
The individual project allows you to create a substantial software development using elements of your learning so far. You choose your own particular topic area, with guidance from academic staff. You will work largely on your own, again with guidance and some input from a supervising member of academic staff.
Distributed Architectures and Web Programming
This module deepens the work started in Interactive Web Programming to look at larger scale developments and processing that is split between different systems can be effectively designed and deployed. The Java programming language is used in order to do this alongside the PHP programming language learned in the previous module.
Current Issues in Web Technology
This module aims to develop your understanding of underlying issues faced by web technology developers. The assumption is that technology is not neutral and its design can be motivated for reasons that are not always immediately apparent. By looking at the latest technological ideas you should understand the broader implications of its application to society.
HumanComputer 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 their own interfaces. Further, once designed or implemented you will learn effective techniques for evaluating the effectiveness of the interfaces in order to improve them.
Advanced Database Development with Oracle
This module deepens your knowledge of database development, following on from Developing Database Systems with SQL, giving you a greater understanding in order to maximise the benefits of using a database management system.
Likely optional modules
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.
Mobile App Development (subject to approval)
Mobile App Development looks at the development of Apps under the Android operating system using the Java like Android development language and libraries. You will also be introduced to the networking concepts required to develop such applications so that they may interact over mobile or wireless networks.
Placement in Industry or Commerce (subject to approval)
The placement module is a flexible module that allows you to gain experience and put your knowledge into practice outside the 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.