Year in Computer Science
Taking a year in computer science is a great way to increase your computing skills and gain more experience in programming. Students do their first two years of the Natural Sciences programme, spend their third year in Computer Science as an intercalated year, and then return to third year of the Natural Sciences programme following this.
Any Natural Sciences student can apply to transfer to this programme in the second year.
What do you gain
- Increase your information and digital media literacy.
- Gain useful skills in programming, data visualisation and modelling.
- Get experience of data management, software design and information systems.
- Learn new programming languages which you can apply to your other subjects.
- Experience a fourth area of study.
- Develop skills which open new areas of study and help with the rest of your degree.
- Supercharge your career prospects with a new suite of skills you can offer to employers.
Student study 60 credits of compulsory modules.
This module gives you a comprehensive overview of the principles of programming, including such concepts as procedural logic, variables, flow control, input and output and the analysis and design of programs. Instruction will be provided in an object-oriented programming language. A basic introduction to Object Oriented concepts will be provided in a commercially relevant environment.
Systems & Networks
The module gives an introduction to the role of the operating system and how it manages computer resources such as memory, processes and disks. Unix is introduced in terms of the Unix file structure, Input and Output and the Command Line Interface that is used to manipulate these. Computer communication is taught with respect to the Client-Server Architecture and applications that use this. Underlying protocols, such as those in the TCP/IP protocol suite, are introduced, as commonly used in the Internet to provide a universal service. This includes IPv4 and IPv6, the need for IPv6 and how the two differ. Types of computer networks are covered in terms of scale, such as LANs and WANs; and in terms of wired and wireless networks. Mechanisms for connecting networks such as routers, switches and bridges are covered. Other topics include the role of gateways, proxies, Virtual Private Networks and cloud computing. Potential security risks are examinedce them, including the use of firewalls.
Databases, Interfaces & Software Design
Databases are everywhere and we interact with many different databases every day, using the web, using electronic calendars, diaries or timetables, making appointments, searching for contact details, shopping online, looking up directions, and many more things. These databases need to be both easy to use and fast. This module considers both the structure of databases, including how to make them fast, efficient and reliable, and the appropriate user interfaces which will make them easy to interact with for users. Students will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how they can best utilise them and then develop an interactive application to access their database. Database/software design principles will be introduced with an emphasis on the importance of understanding user requirements and specifications. Throughout the lectures and computing sessions students will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.
Students have 60 credits of optional modules they can choose
Introduction to Human Computer Interaction - 10 credits
This module aims to teach an understanding of people's interactions with technology and how to apply this knowledge in the design of usable interactive computer systems. The module will introduce the concept of usability and will examine different design approaches and evaluation methods. Specifically, this module will cover an understanding of different styles of interaction with technology, an analysis of user needs, design standards, low fidelity prototyping techniques and a comparison of evaluation techniques.
Introduction to Image Processing - 10 credits
This module introduces the field of digital image processing, a fundamental component of digital photography, television, computer graphics and computer vision. You will cover topics including: image representation and compression, image filtering, enhancement and analysis and image processing applications. You will spend around three hours in lectures and computer classes each week for this module.
Fundamentals of Artificial Intelligence - 10 credits
This module gives you a broad overview of the fundamental theories and techniques of Artificial Intelligence (Al). You will explore how computers can produce intelligent behaviour, and will consider topics such as the history of Al, search techniques, machine learning, game playing techniques, philosophical issues, and knowledge representation and reasoning.
Data Modelling and Analysis - 20 credits
This module will enable you to appreciate the range of data analysis problems that can be modelled computationally and a range of techniques that are suitable to analyse and solve those problems. Topics covered include: basic statistics; types of data; data visualisation techniques; data modelling; data pre-processing methods including data imputation; forecasting methods; clustering and classification methods (decision trees, naīve bayes classifiers, k-nearest neighbours); data simulation and model interpretation techniques to aid decision support.
Fuzzy Logic and Fuzzy Systems - 20 credits
This module aims to provide a thorough understanding of fuzzy sets and systems from a theoretical and practical perspective. Topics commonly include: type-1 fuzzy sets, type-1 fuzzy logic systems, type-1 fuzzy set based applications, type-2 fuzzy sets, type-2 fuzzy logic systems, type-2 fuzzy set based applications. Students will also be exposed to some of the cutting-edge research topics in uncertain data and decision making, e.g., based on type-2 fuzzy logic as well as other fuzzy logic representations. Students will develop practical systems and software in a suitable programming language.
Simulation and Optimisation for Decision Support - 20 credits
This module offers insight into the applications of selected methods of decision support. The foundations for applying these methods are derived from Operations Research Simulation, Social Simulation, Data Science, Automated Scheduling, and Decision Analysis. Throughout the module, you will become more competent in choosing and implementing the appropriate method for the particular problem at hand. You will spend five hours per week in lectures, workshops, and computer classes for this module.
Fundamentals of Information Visualisation - 10 credits
Information Visualisation is the process of extracting knowledge from complex data, and presenting it to a user in a manner that this appropriate to their needs. This module provides a foundational understanding of some important issues in information visualisation design. You will learn about the differences between scientific and creative approaches to constructing visualisations, and consider some important challenges such as the representation of ambiguous or time-based data. You will also learn about psychological theories that help explain how humans process information, and consider their relevance to the design of effective visualisations.