Computer Science Bsc (Hons)
Available with:
- Foundation Year
Accreditations
You are viewing Course summary
Course Summary
Prepare yourself for the challenges facing today's computer-dominated world through a theoretical and practical understanding of the science behind computers.
Throughout our course you will explore how computers work, how computer software is developed, how computers communicate with each other, and the ways in which software manipulates, stores and processes data. You will work effectively in teams, working on diverse projects, which is the most important skill that employers require.
Studying Computer Science will take you from learning practical computing skills in programming, data management, hardware and networking to understanding and developing software solutions for many of the new challenges in today’s world, such as safe online shopping, computer graphics, mobile app development and artificial intelligence.
What You'llStudy
Module content:
- Reading and writing critically.
- Constructing and evaluating an argument.
- Note-taking techniques for reading and listening.
- Understanding plagiarism and academic integrity.
- Introduction to reflective practice.
- Preparing for, and delivering, powerpoint presentations.
- Referencing and citation.
- Summarising and paraphrasing written sources.
- Literature searching.
- Report writing.
- The culture and expectations of higher education.
- The assessment process including the role of assessment criteria and feedback.
- The nature of research journal publishing.
Whilst much of the content above is generic, students will be encouraged to situate skills within the context of the undergraduate discipline they are entering, which leads to some variation in emphasis for certain skills.
Module aims:
1.To raise awareness of the range of study skills required for successful higher education studies, including the process of academic writing, reading strategies, seminar skills, organisation of time and materials, planning for and meeting deadlines, understanding and responding to feedback.
2. To introduce students to concepts such as plagiarism, academic integrity and appropriate use of artificial intelligence tools.
3. To facilitate an effective transition into higher education by exploring, and providing guidance in, the key elements of successful undergraduate studentship including students' understanding of taking responsibility for their own learning.
4. To teach students how to undertake a literature, visual or data review for their discipline and be able to differentiate between a valid, reliable source and an unsubstantiated or irrelevant source.
Module content:
- Reading and writing critically.
- Constructing and evaluating an argument.
- Note-taking techniques for reading and listening.
- Understanding plagiarism and academic integrity.
- Introduction to reflective practice.
- Preparing for, and delivering, powerpoint presentations.
- Referencing and citation.
- Summarising and paraphrasing written sources.
- Literature searching.
- Report writing.
- The culture and expectations of higher education.
- The assessment process including the role of assessment criteria and feedback.
- The nature of research journal publishing.
Whilst much of the content above is generic, students will be encouraged to situate skills within the context of the undergraduate discipline they are entering, which leads to some variation in emphasis for certain skills.
Module aims:
1.To raise awareness of the range of study skills required for successful higher education studies, including the process of academic writing, reading strategies, seminar skills, organisation of time and materials, planning for and meeting deadlines, understanding and responding to feedback.
2. To introduce students to concepts such as plagiarism, academic integrity and appropriate use of artificial intelligence tools.
3. To facilitate an effective transition into higher education by exploring, and providing guidance in, the key elements of successful undergraduate studentship including students' understanding of taking responsibility for their own learning.
4. To teach students how to undertake a literature, visual or data review for their discipline and be able to differentiate between a valid, reliable source and an unsubstantiated or irrelevant source.
Module content:
- Research and planning skills.
- Becoming familiar with topics that comprise their undergraduate degree subject.
- Developing a knowledge base for a discipline of study.
- Identifying areas of interest.
- Application and development of critical analytical skills.
- Development of self-directed study.
- Use of learning resources.
Module aims:
1. To develop students' skills in planning and writing an essay.
2. To familiarise students with the process of tutor supervision for a written piece of work.
3. To give students an opportunity to focus on a topic within their undergraduate degree subject.
4. To write a piece of work that allows the student to broaden and deepen knowledge on a topic of their choice.
5. To prepare and deliver an academic poster presentation outlining the student's research topic.
Module content:
- Research and planning skills.
- Becoming familiar with topics that comprise their undergraduate degree subject.
- Developing a knowledge base for a discipline of study.
- Identifying areas of interest.
- Application and development of critical analytical skills.
- Development of self-directed study.
- Use of learning resources.
Module aims:
1. To develop students' skills in planning and writing an essay.
2. To familiarise students with the process of tutor supervision for a written piece of work.
3. To give students an opportunity to focus on a topic within their undergraduate degree subject.
4. To write a piece of work that allows the student to broaden and deepen knowledge on a topic of their choice.
5. To prepare and deliver an academic poster presentation outlining the student's research topic.
Module content:
- Binary and Hexadecimal number systems, including conversions and mathematical functions.
- Introduction to set and graph theory.
- The Fetch-Decode-Execute cycle
- CPU architecture
- Hardware components in a computer system.
- Key algorithms for searching and sorting
- Introduction to formal languages used to describe algorithms
- Assessing algorithm efficiency with Big O notation
- Website creation with HTML and CSS with an introduction to website hosting.
- Network protocols and data transmission techniques.
- Boolean Algebra and the use of logic gates within the computer system.
Module aims:
To introduce the purpose of the processor and breakdown the steps taken to execute a single instruction in a computer program
To develop familiarity with key algorithms that search through or sort data, and to become aware of how an algorithms efficiency can be measured.
To be aware of the different number systems utilised by computers and be able to convert numbers between the respective number systems
To develop an awareness of how websites are created using HTML and learn how website data is transferred between a server and the end-users computer.
Module content:
- Binary and Hexadecimal number systems, including conversions and mathematical functions.
- Introduction to set and graph theory.
- The Fetch-Decode-Execute cycle
- CPU architecture
- Hardware components in a computer system.
- Key algorithms for searching and sorting
- Introduction to formal languages used to describe algorithms
- Assessing algorithm efficiency with Big O notation
- Website creation with HTML and CSS with an introduction to website hosting.
- Network protocols and data transmission techniques.
- Boolean Algebra and the use of logic gates within the computer system.
Module aims:
To introduce the purpose of the processor and breakdown the steps taken to execute a single instruction in a computer program
To develop familiarity with key algorithms that search through or sort data, and to become aware of how an algorithms efficiency can be measured.
To be aware of the different number systems utilised by computers and be able to convert numbers between the respective number systems
To develop an awareness of how websites are created using HTML and learn how website data is transferred between a server and the end-users computer.
Module content:
- Cybersecurity terminology
- Cybersecurity tools and technical security solutions
- Programming from a cybersecurity perspective
- Introduction to Information and System Security
- Core threats to Information and System Security (technical, social engineering, organisational structures)
- Introduction to Information Security Management Systems (ISMS) e.g. the CIA triad, risk management, security policies and standards
- Introduction to penetration testing
- Social engineering
Module aims:
1. To provide students with an understanding of the core concepts within cybersecurity.
2. To identify core threats and their impact.
3. To familiarise students with the basics of Information Security Management Systems (ISMS).
4. To present how hackers operate and cybersecurity tools.
Module content:
- Cybersecurity terminology
- Cybersecurity tools and technical security solutions
- Programming from a cybersecurity perspective
- Introduction to Information and System Security
- Core threats to Information and System Security (technical, social engineering, organisational structures)
- Introduction to Information Security Management Systems (ISMS) e.g. the CIA triad, risk management, security policies and standards
- Introduction to penetration testing
- Social engineering
Module aims:
1. To provide students with an understanding of the core concepts within cybersecurity.
2. To identify core threats and their impact.
3. To familiarise students with the basics of Information Security Management Systems (ISMS).
4. To present how hackers operate and cybersecurity tools.
Module content:
Algebra
Geometry
Trigonometry
Calculus
Matrices
Vectors
Probability
Statistics
Module aims:
- To provide a good grounding in mathematical application, method and technique.
- To prepare students with the mathematical skill required for undergraduate degrees in Computing.
Module content:
Algebra
Geometry
Trigonometry
Calculus
Matrices
Vectors
Probability
Statistics
Module aims:
- To provide a good grounding in mathematical application, method and technique.
- To prepare students with the mathematical skill required for undergraduate degrees in Computing.
Module content:
- Understanding the full software development lifecycle from requirements definition to implementation
- Focusing on developing Python programming techniques.
- The use of Artificial Intelligence as an aid to faster and higher quality programming.
- Developing an understanding of different data and collection types.
- Utilising control flow, loops and functions.
- Working with the NumPy and Pandas libraries for Data Science
- Exploring data visualisation with Seaborn and Matplotlib
- Data pre-processing for machine learning
- Building regression models to explore and utilise trends within data
- Using a range of common techniques to measure performance of machine learning models
- Exploring real life uses and practical examples of machine learning
Module aims:
To understand the full software development lifecycle from business requirements definition, to functional specification, programming, quality assurance (testing) and implementation
To develop an understanding of programming in Python and to be able to code to a high degree of fluency independently and with assistance from AI tools where appropriate
To be able to use popular data science libraries in Python in order to be able to process and analyse real world data.
To understand the difference between regression and classification algorithms and be able to utilise their outcomes to make accurate predictions with data sets.
To develop technical skills in the Seaborn graphing library in order to show charts and graphs to visualise data and to show accuracies of models.
Module content:
- Understanding the full software development lifecycle from requirements definition to implementation
- Focusing on developing Python programming techniques.
- The use of Artificial Intelligence as an aid to faster and higher quality programming.
- Developing an understanding of different data and collection types.
- Utilising control flow, loops and functions.
- Working with the NumPy and Pandas libraries for Data Science
- Exploring data visualisation with Seaborn and Matplotlib
- Data pre-processing for machine learning
- Building regression models to explore and utilise trends within data
- Using a range of common techniques to measure performance of machine learning models
- Exploring real life uses and practical examples of machine learning
Module aims:
To understand the full software development lifecycle from business requirements definition, to functional specification, programming, quality assurance (testing) and implementation
To develop an understanding of programming in Python and to be able to code to a high degree of fluency independently and with assistance from AI tools where appropriate
To be able to use popular data science libraries in Python in order to be able to process and analyse real world data.
To understand the difference between regression and classification algorithms and be able to utilise their outcomes to make accurate predictions with data sets.
To develop technical skills in the Seaborn graphing library in order to show charts and graphs to visualise data and to show accuracies of models.
You will learn: professional skills; programming languages and how to solve problems; software/hardware component interaction; object-oriented programming; and web design.
Module content:
- Defining user experience design and the various subsets; including usability.
- An introduction to human factors and human-centred design standards.
- History of HCI and issues surrounding technology and innovation.
- Practical design and prototyping of user interface solutions to solve 'real world' problems.
- Experimenting with iterative team-based design and development exercises covering insights gathering, design processes, industry-approved frameworks, and user testing and evaluation.
- Introduction to careers in UX.
Module aims:
- To encourage critical reflection on the needs of humans as users/consumers, and the demands and relevant constraints imposed.
- To ensure awareness of the rate of technological change, the effects on users/consumers, and the issues relevant to user experience designers.
- To promote inquiry into current leading digital technologies and possible future developments in ubiquitous computing.
- To give practice in the design and prototyping of user experiences and user interfaces, especially for web-based, console, desktop systems, and mobile devices.
- Gain "real-world" experience of taking part as a team member in a software development project.
Module content:
- Defining user experience design and the various subsets; including usability.
- An introduction to human factors and human-centred design standards.
- History of HCI and issues surrounding technology and innovation.
- Practical design and prototyping of user interface solutions to solve 'real world' problems.
- Experimenting with iterative team-based design and development exercises covering insights gathering, design processes, industry-approved frameworks, and user testing and evaluation.
- Introduction to careers in UX.
Module aims:
- To encourage critical reflection on the needs of humans as users/consumers, and the demands and relevant constraints imposed.
- To ensure awareness of the rate of technological change, the effects on users/consumers, and the issues relevant to user experience designers.
- To promote inquiry into current leading digital technologies and possible future developments in ubiquitous computing.
- To give practice in the design and prototyping of user experiences and user interfaces, especially for web-based, console, desktop systems, and mobile devices.
- Gain "real-world" experience of taking part as a team member in a software development project.
Module content:
- Internet and web terminology, protocols and infrastructure
- Web document structure and content (e.g. HTML)
- Web aesthetics (e.g. CSS)
- Web scripting (e.g. JavaScript)
- Web requests (e.g. use of HTTP verbs)
- Using Internet and Web tools (e.g. IDEs, FTP clients)
Module aims:
- To provide the student with a firm foundation for continuing study in the area of the web and Internet.
- To make students aware of the range of tools available for developing Website content.
- To put the Website/Web application development process in context within the infrastructure of the Internet.
- To enable students to develop static web sites in line with web standards
Module content:
- Internet and web terminology, protocols and infrastructure
- Web document structure and content (e.g. HTML)
- Web aesthetics (e.g. CSS)
- Web scripting (e.g. JavaScript)
- Web requests (e.g. use of HTTP verbs)
- Using Internet and Web tools (e.g. IDEs, FTP clients)
Module aims:
- To provide the student with a firm foundation for continuing study in the area of the web and Internet.
- To make students aware of the range of tools available for developing Website content.
- To put the Website/Web application development process in context within the infrastructure of the Internet.
- To enable students to develop static web sites in line with web standards
Module content:
- Multi-tier architectures.
- Software design best practices and design patterns.
- Security risks, threats and vulnerabilities (for example buffer overflows, integer overflows and race conditions) to systems as well as security standards.
- Computer ethics and the law in relation to information systems.
- Common pitfalls and mitigations in software engineering.
Module aims:
- To be able to develop software, we first need to understand some of the theories and approaches that will need to be applied in subsequent modules. This module will enable you to understand software architecture, security, and the law that governs information systems.
Module content:
- Multi-tier architectures.
- Software design best practices and design patterns.
- Security risks, threats and vulnerabilities (for example buffer overflows, integer overflows and race conditions) to systems as well as security standards.
- Computer ethics and the law in relation to information systems.
- Common pitfalls and mitigations in software engineering.
Module aims:
- To be able to develop software, we first need to understand some of the theories and approaches that will need to be applied in subsequent modules. This module will enable you to understand software architecture, security, and the law that governs information systems.
Module content:
- Referencing
- Plagiarism
- Literature searching
- Professional Bodies
- Employability
- Ethics
- Law (data protection, computer misuse act)
- Copyright and intellectual property
- Personal reflection
- CPD
- Feedback
- Questionnaire design: Likert scale, numerical data, coding,
- Correlation
- Parametric and non-parametric tests
Module aims:
To introduce the key skills required of the computing professional, comprising oral and written communication, along with an awareness of professional aspects of computing practice.
The two components of the module address respectively:
- Introducing students to the concept of professional ethics and behaviour, the place of computers in society and the legal aspects of computing;
- Developing skills in summarising, quoting, paraphrasing, critical analysis, grammar, referencing, poster construction and oral presentation, and teaching writing as a process approach to composing academic papers.
Module content:
- Referencing
- Plagiarism
- Literature searching
- Professional Bodies
- Employability
- Ethics
- Law (data protection, computer misuse act)
- Copyright and intellectual property
- Personal reflection
- CPD
- Feedback
- Questionnaire design: Likert scale, numerical data, coding,
- Correlation
- Parametric and non-parametric tests
Module aims:
To introduce the key skills required of the computing professional, comprising oral and written communication, along with an awareness of professional aspects of computing practice.
The two components of the module address respectively:
- Introducing students to the concept of professional ethics and behaviour, the place of computers in society and the legal aspects of computing;
- Developing skills in summarising, quoting, paraphrasing, critical analysis, grammar, referencing, poster construction and oral presentation, and teaching writing as a process approach to composing academic papers.
Module content:
• Linear algebra: Vectors, Matrices (2D and 3D);
• Geometric and trigonometric problem solving;
• Logarithmic functions;
• Simple differential equations;
• Set theory;
• Simultaneous equations;
Module aims:
A good mathematical grounding is essential for all computing scientists. The mathematics in this syllabus provides the foundation for deeper analysis and understanding of computing subjects, and enhances the student’s ability to make sound judgements regarding the appropriate technology that they will use in the course of their career. Wherever possible, mathematical theory is taught by considering a real example, to provide students with the context for the mathematical tools they will use. Solutions are considered by both analytical and numerical techniques. Where basic principles are involved, some proofs will also be taught.
Module content:
• Linear algebra: Vectors, Matrices (2D and 3D);
• Geometric and trigonometric problem solving;
• Logarithmic functions;
• Simple differential equations;
• Set theory;
• Simultaneous equations;
Module aims:
A good mathematical grounding is essential for all computing scientists. The mathematics in this syllabus provides the foundation for deeper analysis and understanding of computing subjects, and enhances the student’s ability to make sound judgements regarding the appropriate technology that they will use in the course of their career. Wherever possible, mathematical theory is taught by considering a real example, to provide students with the context for the mathematical tools they will use. Solutions are considered by both analytical and numerical techniques. Where basic principles are involved, some proofs will also be taught.
Module content:
- SQL - Structured Query Language
- CRUD Operations - Create Read Update and Delete
- Queries
- Normalisation
- Database design
- Data types
- Relational databases
- Keys
- Entity relationship diagrams
- Database Security
- Database Administration
Module aims:
To increase awareness of different models of database management systems, and of their potential uses.
To make the student aware of the need for rigorous methods for the design of database systems.
To give the student further opportunities to gain practical skills in the design and implementation of database systems.
Module content:
- SQL - Structured Query Language
- CRUD Operations - Create Read Update and Delete
- Queries
- Normalisation
- Database design
- Data types
- Relational databases
- Keys
- Entity relationship diagrams
- Database Security
- Database Administration
Module aims:
To increase awareness of different models of database management systems, and of their potential uses.
To make the student aware of the need for rigorous methods for the design of database systems.
To give the student further opportunities to gain practical skills in the design and implementation of database systems.
Module content:
- Computer architecture
- State machines
- Basic computing mathematics - binary and hexadecimal number systems; simple uses of binary/hexadecimal; basic probability and random numbers
- Computer systems components, data representation, fetch-execute cycle, logic gates and Boolean algebra, how computer systems work, interrupts and Input/Output
- Levels and types of software, memory and secondary storage, operating systems (local and network), user interfaces, process management, memory management, file management
- Computer performance, modern computer systems and concepts
- Foundations of networking (Routing, IP Addressing, Network topologies, OSI model, TCP/IP)
- Network traffic, packets, headers, encapsulation
- Virtual Private Networks
Module aims:
To gain a knowledge and understanding of how various software and hardware components interact to produce working computer systems.
To gain an understanding of the fundamentals of networking
Module content:
- Computer architecture
- State machines
- Basic computing mathematics - binary and hexadecimal number systems; simple uses of binary/hexadecimal; basic probability and random numbers
- Computer systems components, data representation, fetch-execute cycle, logic gates and Boolean algebra, how computer systems work, interrupts and Input/Output
- Levels and types of software, memory and secondary storage, operating systems (local and network), user interfaces, process management, memory management, file management
- Computer performance, modern computer systems and concepts
- Foundations of networking (Routing, IP Addressing, Network topologies, OSI model, TCP/IP)
- Network traffic, packets, headers, encapsulation
- Virtual Private Networks
Module aims:
To gain a knowledge and understanding of how various software and hardware components interact to produce working computer systems.
To gain an understanding of the fundamentals of networking
Module content:
- Integrated Development Environments
- Syntax, semantics, basic debugging
- Data Types - primitives and objects
- Control Flow - conditional and iterative (including collection iterators)
- Basic Collection types, e.g. Arrays
- Input and Output (Console and File based)
- Method calls and parameter passing
- Object Orientation - Behaviour and State
- Class implementation - properties, methods and constructors
- Static methods and variables
- Unit testing
- Inheritance, subtyping and method overriding
- Basic refactoring
- Recursion
- GUIs, Event handlers and event driven programming
Module aims:
- To introduce a high level programming language, such as Java
- To introduce the concept of Object Oriented Programming
- To enable students to gain familiarity with the key constructs of a programming language
- To enable students to recognise and differentiate between different types of errors in programming code
- To introduce event-driven programming in the context of a Graphical User Interface
Module content:
- Integrated Development Environments
- Syntax, semantics, basic debugging
- Data Types - primitives and objects
- Control Flow - conditional and iterative (including collection iterators)
- Basic Collection types, e.g. Arrays
- Input and Output (Console and File based)
- Method calls and parameter passing
- Object Orientation - Behaviour and State
- Class implementation - properties, methods and constructors
- Static methods and variables
- Unit testing
- Inheritance, subtyping and method overriding
- Basic refactoring
- Recursion
- GUIs, Event handlers and event driven programming
Module aims:
- To introduce a high level programming language, such as Java
- To introduce the concept of Object Oriented Programming
- To enable students to gain familiarity with the key constructs of a programming language
- To enable students to recognise and differentiate between different types of errors in programming code
- To introduce event-driven programming in the context of a Graphical User Interface
Module content:
An introduction to the Cybersecurity realm:
- Foundations of computer systems, software, and networking, with respect to the Cybersecurity perspective
- Threats, resolutions, and auditing, relating to IT systems and governance
- Speaking Cyber - Core understanding of Cybersecurity terminologies
- Implementing secure systems. Illustrative of what may be covered include:
- Design and development considerations
- Selecting and applying core technologies
- Cryptography
- Human factors
- Auditing (security audits, logging, digital investigation
etc.) - Defense-in-depth
- Pentesting
- Access control
Module aims:
- To give a solid whole-picture foundation which can then be harnessed later in CO5606 and CO5607 where the modules build upon challenging concepts
- To empower the students with core understanding of the key terminologies in cybersecurity
- To provide students with the understanding of the common cybersecurity concepts and technical security controls available to prevent, detect and recover from security incidents
Module content:
An introduction to the Cybersecurity realm:
- Foundations of computer systems, software, and networking, with respect to the Cybersecurity perspective
- Threats, resolutions, and auditing, relating to IT systems and governance
- Speaking Cyber - Core understanding of Cybersecurity terminologies
- Implementing secure systems. Illustrative of what may be covered include:
- Design and development considerations
- Selecting and applying core technologies
- Cryptography
- Human factors
- Auditing (security audits, logging, digital investigation
etc.) - Defense-in-depth
- Pentesting
- Access control
Module aims:
- To give a solid whole-picture foundation which can then be harnessed later in CO5606 and CO5607 where the modules build upon challenging concepts
- To empower the students with core understanding of the key terminologies in cybersecurity
- To provide students with the understanding of the common cybersecurity concepts and technical security controls available to prevent, detect and recover from security incidents
Your theoretical knowledge will be applied to real-world problems using databases, web systems and programming so that you can produce solutions for complex problems.
Module content:
The traditional academic programme structure is not applicable. The placement content is freely structured and determined by negotiation between the student, placement supervisor and host organisation. It is generally informed by the aims and learning outcomes and by the objective of optimising added value for both the host organisation and the student experience.
Module aims:
- To practise software development skills and apply the knowledge already acquired in a realistic, working environment.
Module content:
The traditional academic programme structure is not applicable. The placement content is freely structured and determined by negotiation between the student, placement supervisor and host organisation. It is generally informed by the aims and learning outcomes and by the objective of optimising added value for both the host organisation and the student experience.
Module aims:
- To practise software development skills and apply the knowledge already acquired in a realistic, working environment.
Module content:
- Application of the software engineering life-cycle: analysis, design, implementation, testing, documentation, maintenance.
- Team building & organisation; collective and individual responsibilities; negotiation & collaboration on attainable goals.
- Self management of teams; Agile project management; quality assurance; delivering to agreed standards and deadlines.
- Industry tools and techniques such as version control, collaborative working software, continuous integration
etc - Application and development of professional skills
Module aims:
- To prepare those students progressing to a Level 6 project/dissertation in a Computing related discipline for the process of undertaking a major piece of work involving the software engineering life-cycle.
- To prepare those students progressing to a Year in Industry placement.
- To give the student the opportunity to take an active part in planning and shaping a development project by participating in realistic individual and group activities.
- To reinforce the theoretical and practical elements of the fundamental modules studied earlier.
- To give the student a "real-world" experience of taking part as a team member in a major software development project.
Module content:
- Application of the software engineering life-cycle: analysis, design, implementation, testing, documentation, maintenance.
- Team building & organisation; collective and individual responsibilities; negotiation & collaboration on attainable goals.
- Self management of teams; Agile project management; quality assurance; delivering to agreed standards and deadlines.
- Industry tools and techniques such as version control, collaborative working software, continuous integration
etc - Application and development of professional skills
Module aims:
- To prepare those students progressing to a Level 6 project/dissertation in a Computing related discipline for the process of undertaking a major piece of work involving the software engineering life-cycle.
- To prepare those students progressing to a Year in Industry placement.
- To give the student the opportunity to take an active part in planning and shaping a development project by participating in realistic individual and group activities.
- To reinforce the theoretical and practical elements of the fundamental modules studied earlier.
- To give the student a "real-world" experience of taking part as a team member in a major software development project.
Module content:
- Further Boolean algebra and data representation.
- Logic optimisation
- Microarchitecture
- Network redundancy
- Spanning-Tree Protocol
- Virtual LANs
- Wireless LANs
Module aims:
- To enable students to develop a critical understanding and appreciation of the fundamental building blocks of computer systems and their internal structure and organisation.
- To encourage students to explore the nature of data and the techniques used to store, process and transport it.
- Students will develop an understanding of wired and wireless Ethernet LAN configuration and the protocols and devices used in their operation.
Module content:
- Further Boolean algebra and data representation.
- Logic optimisation
- Microarchitecture
- Network redundancy
- Spanning-Tree Protocol
- Virtual LANs
- Wireless LANs
Module aims:
- To enable students to develop a critical understanding and appreciation of the fundamental building blocks of computer systems and their internal structure and organisation.
- To encourage students to explore the nature of data and the techniques used to store, process and transport it.
- Students will develop an understanding of wired and wireless Ethernet LAN configuration and the protocols and devices used in their operation.
Module content:
- Business intelligence
- Data warehousing and multidimensional databases
- Alternate data stores (e.g. XML, Big data, Hadoop)
- Data ETL & transformation
- Data collection practice
- Data visualisation and tabulation
- Data distributions
- Hypotheses and statistically testing for differences
- Data modelling using basic machine learning tools (e.g. regression, logistic regression, decision trees)
Module aims:
- To give students an understanding of business intelligence and the role of data analytics in that context.
- To provide students practice at using data of various types (e.g. data warehouse, XML, CSV) using various coding frameworks (e.g. R, Python, Java).
- To provide an introduction to data analytics (e.g. data collection, data cleaning, visualisation, tabulation, hypothesis testing and machine learning).
- To provide students with an understanding of different data stores available (e.g. relational, data warehouse, NoSQL, Hadoop).
- To enable students to plan, organise and develop a data warehouse.
- To enable students to collect, clean and analyse data.
Module content:
- Business intelligence
- Data warehousing and multidimensional databases
- Alternate data stores (e.g. XML, Big data, Hadoop)
- Data ETL & transformation
- Data collection practice
- Data visualisation and tabulation
- Data distributions
- Hypotheses and statistically testing for differences
- Data modelling using basic machine learning tools (e.g. regression, logistic regression, decision trees)
Module aims:
- To give students an understanding of business intelligence and the role of data analytics in that context.
- To provide students practice at using data of various types (e.g. data warehouse, XML, CSV) using various coding frameworks (e.g. R, Python, Java).
- To provide an introduction to data analytics (e.g. data collection, data cleaning, visualisation, tabulation, hypothesis testing and machine learning).
- To provide students with an understanding of different data stores available (e.g. relational, data warehouse, NoSQL, Hadoop).
- To enable students to plan, organise and develop a data warehouse.
- To enable students to collect, clean and analyse data.
Module content:
- Abstraction, Encapsulation and Object Composition
- Access modifiers
- Polymorphism, dynamic dispatch
- Interfaces and Abstract classes
- Object composition
- Single Responsibility principle, Liskov Substitution Principle
- Type systems (static /dynamic typing)
- Type conversion & casting
- Use of libraries classes / packages and APIs
- Exception raising, propagation and handling
- Further refactoring techniques
- Integration & System testing
- Version control
Module aims:
- To introduce some of the more esoteric concepts of Object Oriented Programming
- To develop techniques for avoiding, handling and testing for errors
- To introduce type systems and static & dynamically typed languages
Module content:
- Abstraction, Encapsulation and Object Composition
- Access modifiers
- Polymorphism, dynamic dispatch
- Interfaces and Abstract classes
- Object composition
- Single Responsibility principle, Liskov Substitution Principle
- Type systems (static /dynamic typing)
- Type conversion & casting
- Use of libraries classes / packages and APIs
- Exception raising, propagation and handling
- Further refactoring techniques
- Integration & System testing
- Version control
Module aims:
- To introduce some of the more esoteric concepts of Object Oriented Programming
- To develop techniques for avoiding, handling and testing for errors
- To introduce type systems and static & dynamically typed languages
Module content:
- Client/server side scripting and coding
- Full-stack web application development and configuration
- Web application frameworks
- User-interface software design patterns
- Thin and thick client architectures
- Database-driven websites and database connectivity
Module aims:
- To introduce concepts of web-application development and configuration
- To extend and enhance students' knowledge of current web technologies.
- To develop student' proficiency and confidence in applying theoretical and practical methodologies for the design, implementation, evaluation of and management of web-based systems.
- To introduce the use of web-application frameworks towards the development of interactive web applications
Module content:
- Client/server side scripting and coding
- Full-stack web application development and configuration
- Web application frameworks
- User-interface software design patterns
- Thin and thick client architectures
- Database-driven websites and database connectivity
Module aims:
- To introduce concepts of web-application development and configuration
- To extend and enhance students' knowledge of current web technologies.
- To develop student' proficiency and confidence in applying theoretical and practical methodologies for the design, implementation, evaluation of and management of web-based systems.
- To introduce the use of web-application frameworks towards the development of interactive web applications
Module content:
- Time complexity and Big O notation
- Data structures and algorithms including linked lists, arrays, stacks, queues, heaps, hash tables, binary search trees, searching and sorting.
- Memory management
- Scope based resource management and RAII
- Code reuse (e.g. object orientation, templates/generics, functional programming)
- Multithreaded programming and synchronisation
- Pseudorandom number generation, inc. algorithms and thread safety
- Exception handling
- Organisation, documentation and management of larger codebases
Module aims:
- To introduce students to established methods for resolving common programming problems
- To develop further competence in the use of relevant programming paradigms and principles.
- To develop skill in the use of industry standard software tools, libraries and patterns
Module content:
- Time complexity and Big O notation
- Data structures and algorithms including linked lists, arrays, stacks, queues, heaps, hash tables, binary search trees, searching and sorting.
- Memory management
- Scope based resource management and RAII
- Code reuse (e.g. object orientation, templates/generics, functional programming)
- Multithreaded programming and synchronisation
- Pseudorandom number generation, inc. algorithms and thread safety
- Exception handling
- Organisation, documentation and management of larger codebases
Module aims:
- To introduce students to established methods for resolving common programming problems
- To develop further competence in the use of relevant programming paradigms and principles.
- To develop skill in the use of industry standard software tools, libraries and patterns
You will extend your understanding to encompass programming design patterns and professional principles. You will also undertake an individual project.
Module content:
- The student will undertake a large self-directed software project usually defined by the project supervisor. Projects can also be based at the Informatics Centre or with an industry partner.
- Assessing commercial viability and feasibility of innovative ideas and/or researching the current state-of-the-art.
- Business planning (assessment of business benefits, impacts, risks and return on investment, technology roadmap).
- Project documentation.
- Complete an innovative software development project following the software development life cycle, using project management techniques.
Module aims:
- The aim of this module is for a student to undertake a large software development project that contributes to the research of the project supervisor, or in collaboration with an industry partner or based within the Informatics Centre. This module encourages the student to explore current and emerging technologies to develop innovative solutions that will keep up with the ever-changing requirements of the industry.
Module content:
- The student will undertake a large self-directed software project usually defined by the project supervisor. Projects can also be based at the Informatics Centre or with an industry partner.
- Assessing commercial viability and feasibility of innovative ideas and/or researching the current state-of-the-art.
- Business planning (assessment of business benefits, impacts, risks and return on investment, technology roadmap).
- Project documentation.
- Complete an innovative software development project following the software development life cycle, using project management techniques.
Module aims:
- The aim of this module is for a student to undertake a large software development project that contributes to the research of the project supervisor, or in collaboration with an industry partner or based within the Informatics Centre. This module encourages the student to explore current and emerging technologies to develop innovative solutions that will keep up with the ever-changing requirements of the industry.
Module content:
- Using programming to further enhance gameplay e.g. using C++ to control elements of a computer game.
- Computer games development.
- Games careers – the skills and knowledge students will need in order to work in the Games industry.
- Recent developments in the games industry, including current research.
Module aims:
- To allow students to use the full functionality of industry standard games development software to produce professional games.
- To equip students with the knowledge and skills to enter the games profession.
- To ensure that students are able to critically evaluate recent developments in the games industry.
Module content:
- Using programming to further enhance gameplay e.g. using C++ to control elements of a computer game.
- Computer games development.
- Games careers – the skills and knowledge students will need in order to work in the Games industry.
- Recent developments in the games industry, including current research.
Module aims:
- To allow students to use the full functionality of industry standard games development software to produce professional games.
- To equip students with the knowledge and skills to enter the games profession.
- To ensure that students are able to critically evaluate recent developments in the games industry.
Module content:
- Information systems development: concepts and approaches.
- Methodologies, techniques and tools.
- Perspectives: process modelling, data modelling, object modelling.
- Practical modelling tasks.
- People and systems.
- Capturing knowledge and expertise.
Module aims:
- To place Systems Analysis and Design methodologies in context and to critically evaluate their role in the software development process.
- To analyse relevant case studies.
- To utilise appropriate techniques and tools to model selected domains.
- To evaluate methods for modelling knowledge and expertise.
Module content:
- Information systems development: concepts and approaches.
- Methodologies, techniques and tools.
- Perspectives: process modelling, data modelling, object modelling.
- Practical modelling tasks.
- People and systems.
- Capturing knowledge and expertise.
Module aims:
- To place Systems Analysis and Design methodologies in context and to critically evaluate their role in the software development process.
- To analyse relevant case studies.
- To utilise appropriate techniques and tools to model selected domains.
- To evaluate methods for modelling knowledge and expertise.
Module content:
Recap on graph theory, algorithms and complexity
Principles of routing, switching and traffic engineering
Data communications, signal encoding
Optical, wireless, cellular and ad-hoc networking
Encryption and network security.
Module aims:
- To establish a grounding in fundamental concepts for network algorithm design
- To develop knowledge required to evaluate the performance of network processes
- To design processes and standards to solve specific networking problems
- To review current and emerging protocols
Module content:
Recap on graph theory, algorithms and complexity
Principles of routing, switching and traffic engineering
Data communications, signal encoding
Optical, wireless, cellular and ad-hoc networking
Encryption and network security.
Module aims:
- To establish a grounding in fundamental concepts for network algorithm design
- To develop knowledge required to evaluate the performance of network processes
- To design processes and standards to solve specific networking problems
- To review current and emerging protocols
Module content:
- Applying further knowledge of human-centred design principles according to ISO 9241-210
- Balancing business goals with user needs
- UX research
- Experience mapping
- Design thinking
- Information architecture
- Progressive enhancement
- User interface design techniques
- Defining inclusive design and accessibility
- Style-guides and specifications for developers
- Design sprints for software innovation
- User testing and evaluation
Module aims:
- To demonstrate effective use of human-centred design techniques according to ISO 9241-210 standard
- To develop a solid appreciation of the importance of UX research in product teams
- To design effective information architecture for interactive systems
- To explore diverse user interface design and interaction design issues for the benefit of the user experience
- To gain first-hand experience in collaborative software innovation workshops
- To develop a solid understanding of the dynamic and multidisciplinary nature of software development teams
- To appreciate the importance of designing for inclusivity and a diverse range of users
- To undertake user testing and evaluation of interactive systems
Module content:
- Applying further knowledge of human-centred design principles according to ISO 9241-210
- Balancing business goals with user needs
- UX research
- Experience mapping
- Design thinking
- Information architecture
- Progressive enhancement
- User interface design techniques
- Defining inclusive design and accessibility
- Style-guides and specifications for developers
- Design sprints for software innovation
- User testing and evaluation
Module aims:
- To demonstrate effective use of human-centred design techniques according to ISO 9241-210 standard
- To develop a solid appreciation of the importance of UX research in product teams
- To design effective information architecture for interactive systems
- To explore diverse user interface design and interaction design issues for the benefit of the user experience
- To gain first-hand experience in collaborative software innovation workshops
- To develop a solid understanding of the dynamic and multidisciplinary nature of software development teams
- To appreciate the importance of designing for inclusivity and a diverse range of users
- To undertake user testing and evaluation of interactive systems
Module content:
- Design patterns - Architectural, Creational, Structural and Behavioural
- Open Closed Principle, Dependency Inversion Principle, Interface Segregation principle
- Functional programming, functions as parameters, function closures
- Generics, Class extensions
- Pattern matching
- Concurrent programming
- Programme translation and execution (interpreters, compilers)
- Layout and management of memory (e.g. allocation / stack / heap)
- Continuous integration
Module aims:
- To analyse, understand and contribute to existing software
- To understand the processes governing the execution of programming code
- To investigate alternate programming paradigms to object orientation
Module content:
- Design patterns - Architectural, Creational, Structural and Behavioural
- Open Closed Principle, Dependency Inversion Principle, Interface Segregation principle
- Functional programming, functions as parameters, function closures
- Generics, Class extensions
- Pattern matching
- Concurrent programming
- Programme translation and execution (interpreters, compilers)
- Layout and management of memory (e.g. allocation / stack / heap)
- Continuous integration
Module aims:
- To analyse, understand and contribute to existing software
- To understand the processes governing the execution of programming code
- To investigate alternate programming paradigms to object orientation
Module content:
- Evaluation of the principles of automated intelligence.
- Scientific and Engineering goals of intelligent technologies.
- Approaches to the development of intelligent software.
- Application domains for intelligent technologies.
Module aims:
- To introduce the concept of artificial intelligence (AI) and to evaluate its role in the development of advanced software systems.
- To introduce theoretical approaches to the development of intelligent software.
- To undertake practical tasks to demonstrate how AI techniques can be implemented.
- To analyse methods for designing and deploying intelligent technologies.
- To critically evaluate the ways in which intelligent technologies can be used in various domains: e.g. business, medical, educational, legal, government and scientific.
Module content:
- Evaluation of the principles of automated intelligence.
- Scientific and Engineering goals of intelligent technologies.
- Approaches to the development of intelligent software.
- Application domains for intelligent technologies.
Module aims:
- To introduce the concept of artificial intelligence (AI) and to evaluate its role in the development of advanced software systems.
- To introduce theoretical approaches to the development of intelligent software.
- To undertake practical tasks to demonstrate how AI techniques can be implemented.
- To analyse methods for designing and deploying intelligent technologies.
- To critically evaluate the ways in which intelligent technologies can be used in various domains: e.g. business, medical, educational, legal, government and scientific.
Module content:
- Public/private key composition and usage
- Certificates – for code signing and identify management
- Block/stream ciphers
- Cryptographic algorithms
- History of and modern day cryptography
- Modern day tools for enterprise and personal use for protection of data and relevant confidential information
- Encryption attacks (e.g. Ransomware) and attacks against encryption (anti-encryption)
Module aims:
- To give an understanding and usage of symmetric/asymmetric encryption
- To explore basic cryptographic calculations
- To understand how cryptographic algorithms work
- To give an appreciation to system and data security using cryptography
- To explore case studies and advise on the right actions to take to ensure continued data protection
- To explore the history of cryptography and cryptographic attacks
Module content:
- Public/private key composition and usage
- Certificates – for code signing and identify management
- Block/stream ciphers
- Cryptographic algorithms
- History of and modern day cryptography
- Modern day tools for enterprise and personal use for protection of data and relevant confidential information
- Encryption attacks (e.g. Ransomware) and attacks against encryption (anti-encryption)
Module aims:
- To give an understanding and usage of symmetric/asymmetric encryption
- To explore basic cryptographic calculations
- To understand how cryptographic algorithms work
- To give an appreciation to system and data security using cryptography
- To explore case studies and advise on the right actions to take to ensure continued data protection
- To explore the history of cryptography and cryptographic attacks
BSc (Hons) Computer Science
To make best use of available time, theory is sometimes disseminated using group lectures; however, the majority of your time will be spent in computer laboratories. Small group discussions, tutorials, and student-led seminars also feature.
Assessment involves a combination of assignments, group and individual project work, in-class tests, and examinations, varying in balance from module to module. Our modules have been designed to incorporate assessment of key and subject-related skills.
Beyond the Classroom
In the summer term of the second year, you’ll spend time in our Informatics centre for the Experiential Learning module. At this web design and application development business, you’ll work in teams to develop projects for clients both inside and outside the University.
An alternative which can usually be accommodated is to undertake Experiential Overseas Learning, where you can take advantage of our long-established links with organisations worldwide. Most students have the opportunity to undertake either one of these options as an integral part of their undergraduate course.
This course also offers the opportunity to complete a year in industry, where you’ll experience the workplace, apply your learning and build connections for your future.
Entry Requirements
112 UCAS Points
UCAS Tariff |
112 points |
GCE A Level |
Typical offer – BCC-BBC |
BTEC |
BTEC Extended Diploma: DMM |
International Baccalaureate |
26 points |
Irish / Scottish Highers |
Irish Highers: H3 H3 H3 H3 H4 Scottish Highers: BBBB |
Access requirements |
Access to HE Diploma, to include 45 credits at level 3, of which 30 must be at Merit or above |
T Level |
T Level - Merit |
OCR Cambridge Technicals |
OCR Extended Diploma: DMM |
Extra Information |
Welsh Baccalaureate Advanced and A level General Studies will be recognised in our offer. We will also consider a combination of A Levels and BTECs/OCRs. A GCSE grade C/4 (or above) in Mathematics is required |
Students from countries outside the UK are expected to have entry qualifications roughly equivalent to UK A Level for undergraduate study and British Bachelor's degree (or equivalent) for postgraduate study. To help you to interpret these equivalents, please click on your country of residence to see the corresponding entry qualifications, along with information about your local representatives, events, information and contacts.
We accept a wide range of qualifications and consider all applications individually on merit. We may also consider appropriate work experience.
For more information on our entry requirements, please visit International Entry Requirements
72 UCAS Points
UCAS Tariff |
72 points |
GCE A level |
72 UCAS points from GCE A Levels to include grade D in at least one subject. |
BTEC |
BTEC Extended Diploma: MMP |
International Baccalaureate |
24 points |
Irish / Scottish Highers |
Irish Highers: H4 H4 H4 H4 H4 Scottish Highers: CCDD |
Access requirements |
Access to HE Diploma – Pass overall |
T Level |
T Level: Pass (D or E on the core) |
OCR Cambridge Technicals |
OCR Extended Diploma: MMP |
Extra Information |
Welsh Baccalaureate Advanced and A level General Studies will be recognised in our offer. We will also consider a combination of A Levels and BTECs/OCRs. A GCSE grade C/4 (or above) in Mathematics is required. If you are a mature student (21 or over) and have been out of education for a while or do not have experience or qualifications at Level 3 (equivalent to A Levels), then our Foundation Year courses will help you to develop the skills and knowledge you will need to succeed in your chosen degree. |
Fees and Funding
£9,250 per year (2024/25)
Our full-time undergraduate tuition fees for Home students entering University in 2024/25 are £9,250 a year, or £1,540 per 20-credit module for part-time study.
The University may increase these fees at the start of each subsequent year of your course in line with inflation at that time, as measured by the Retail Price Index. These fee levels and increases are subject to any necessary government, and other regulatory, approvals.
Students from the UK, Isle of Man, Guernsey, Jersey and the Republic of Ireland are treated as Home students for tuition fee purposes.
Following the UK’s exit from the EU, students from countries in the European Economic Area and the EU starting in or after the 2021/22 academic year will pay International Tuition Fees.
Students who have been granted Settled Status may be eligible for Home Fee Status and if eligible will be able to apply for Tuition Fee Loans and Maintenance Loans.
Students who have been granted Pre-settled Status may be eligible for Home Fee Status and if eligible will be able to apply for Tuition Fee Loans.
£13,950 per year (2024/25)
The tuition fees for international students studying Undergraduate programmes in 2024/25 are £13,950.
This fee is set for each year of study. All undergraduate students are eligible for international and merit-based scholarships which are applicable to each year of study.
For more information, go to our International Fees, Scholarship and Finance section.
Irish Nationals living in the UK or ROI are treated as Home students for Tuition Fee Purposes.
Your course will involve additional costs not covered by your tuition fees. This may include books, printing, photocopying, educational stationery and related materials, specialist clothing, travel to placements, optional field trips and software. Compulsory field trips are covered by your tuition fees.
If you are living away from home during your time at university, you will need to cover costs such as accommodation, food, travel and bills.
Most software specific to your course is available free to students through agreements we have with the software vendors.
Your Future Career
Job Prospects
Our graduates enter a range of roles, both locally and further afield. Typical roles for students completing the course might include software developer, web developer, network engineer and database administrator among many others. A number of our students have entered graduate schemes at multinational companies.
Progression options
- Programme and Project Management MSc
Careers service
The University has an award-winning Careers and Employability service which provides a variety of employability-enhancing experiences; through the curriculum, through employer contact, tailored group sessions, individual information, advice and guidance.
Careers and Employability aims to deliver a service which is inclusive, impartial, welcoming, informed and tailored to your personal goals and aspirations, to enable you to develop as an individual and contribute to the business and community in which you will live and work.
We are here to help you plan your future, make the most of your time at University and to enhance your employability. We provide access to part-time jobs, extra-curricular employability-enhancing workshops and offer practical one-to-one help with career planning, including help with CVs, applications and mock interviews. We also deliver group sessions on career planning within each course and we have a wide range of extensive information covering graduate jobs and postgraduate study.