Apply for this course
Please select when you would like to start:
If you're a UK applicant wanting to study full-time starting in September, you must apply via UCAS unless otherwise specified. If you're an international applicant wanting to study full-time, you can choose to apply via UCAS or directly to the University.
If you're applying for part-time study, you should apply directly to the University. If you require a Student visa, please be aware that you will not be able to study as a part-time student at undergraduate level.
Why study this course?
This course will teach you everything you need for a successful career in IT – from programming and information systems to modules in mobile applications and artificial intelligence. You’ll have access to our state-of-the-art computer labs, as well as the opportunity to get industry experience during hands-on work placements and gain professional Java certification.
Our computer science courses have scored highly in a range of surveys and rankings, including the National Student Survey 2023 where they ranked in the top 10 UK universities for teaching on the course.
Second in the UK for student satisfaction
Our computer science courses are ranked second in the UK for student satisfaction in the Complete University Guide 2025
British Computer Society membership
British Computer Society membership entitles you to gain access to networking opportunities, publications and specialist events to aid you in your career development
Professionally accredited by the BCS
This course has professional accreditation from the British Computer Society (BCS)
Course modules
The modules listed below are for the academic year 2024/25 and represent the course modules at this time. Modules and module details (including, but not limited to, location and time) are subject to change over time.
Year* 1 modules
Year 2 modules
Year 3 modules
Computer Hardware and Software Architectures
This module currently runs:all year (September start) - Monday afternoon
all year (January start)
(core, 30 credits)
The module introduces students to the basics of Information Technology; past, current and future trend in computer systems. The detailed design of a small-scale Computer Systems is presented where students have the opportunity to build, configure and test a computer system for a given application. Students will identify the basic features of the Windows operating system and its elements. Health Safety issues and the safe disposal of equipment is also covered leading to an understanding and appreciation of social, ethical, environmental and economic issues related to computer’s hardware and software element. The module aims to
1. Introduce students to the fundamental concepts of Information Technology and basic networking,
2. Provide a working technical knowledge of modern computer systems and their respective components,
3. Introduce Operating systems by focusing on Windows products, identifying similarities and differences,
4. Identify the correct approach to preventive maintenance and upgrading and troubleshooting
5. Introducing students to Assembly language and how it interacts with hardware
6. Awareness of social, environmental, commercial and economic aspects of PC technology
Fundamentals of Computing
This module currently runs:spring semester - Tuesday afternoon
(core, 15 credits)
Students will receive an introduction to the principles of information processing and an overview of the information technologies for digital data processing using computational and communication devices, including an initial understanding of the requirements for usability, quality, complexity, security and privacy of the developed solution. The students will obtain initial practical skills in modelling, design, implementation and testing of software systems for real-world application using a suitable programming language.
Read full detailsIntroduction to Information Systems
This module currently runs:autumn semester - Tuesday afternoon
(core, 15 credits)
Students will receive an introduction to the business environment and the role of information management and information systems within business.
The module develops an understanding of the Information Systems, the Software Development process and the basic technology underpinning these systems. This will include database management systems and the Internet. Students which will develop key skills and knowledge in the aspects of an information system, including databases, websites, and scripts with particular regard to usability.
• The module aims to provide an overview of the nature of organisations, their business models, and how key areas operate to meet business objectives. It introduces students to organisational culture, data, information and knowledge management, and the role of information in organisational decision making.
• Within the module the students will be given an appreciation of the effect of ICT on organisational performance, and a basic understanding of the processes of developing and maintaining information systems, software products and services.
• An introduction to underlying technologies (e.g., databases, Internet and Web) is embedded in the module, which also seeks to develop basic competence and confidence in the use of appropriate tools, techniques and academic and communication skills, with an underlining awareness of legal, social, ethical and professional issues.
Logic and Mathematical Techniques
This module currently runs:all year (September start) - Thursday morning
(core, 30 credits)
This module develops a range of mathematical techniques including set theory, logic, relations and functions, algebra, differentiation and integration. The techniques provide the foundation for further study of Mathematics, Computer Science and Computer Games Programming and Computer Systems Engineering.
Read full detailsProgramming
This module currently runs:all year (September start) - Tuesday morning
(core, 30 credits)
This is an introductory programming module, designed to develop interest, ability and confidence in using a programming language. Students will gain the basic knowledge and experience to solve simple programming problems using established techniques in program design, development and documentation. It is expected that on completion of this module, students will be able to design, implement and test object-oriented programs. The module also enables to self-study a popular programming language and obtain a completion certificate. The student is also expected to develop their confidence needed to program solutions to problems through a series of practical programming exercises.
Assessment: Multiple choice test (30%) + Programming certificate(10%) +Coursework (60%) [Pass on aggregate]
Read full detailsCloud Computing and the Internet of Things
This module currently runs:autumn semester - Friday morning
(core, 15 credits)
This module will enable students to understand the Internet of Things (IoT) and Cloud Computing concepts, building blocks, ecosystems, infrastructure, and applications. This will enrich their knowledge and understanding of the core technologies and platforms for IoT and Clouds, that allows digitally enabled devices or objects to collect, gather, and transfer data over a network without involving human-to-human or human-to-machine interaction.
The module will place emphasis on IoT components and delivery models, IoT system architecture, key wireless/mobile/sensor technologies, IoT communication protocols, issues of privacy and trust, cloud platform, and virtualization technologies in the development of IoT cloud infrastructure and applications.
Students will be supported with a series of exercises performed using a powerful network simulation tool, that will cover the range of basic principles to more advanced IoT system design. This will allow students to get real world experience in building IoT system by integrating sensor devices and cloud for creating interconnected solutions to smart cities, homes, and enterprises. Some basic knowledge of Python will be used throughout. By the end of the module, you will get experience in solving real-world problems (IoT and Cloud system implementation) efficiently using simulation modelling.
Read full detailsData Structures and Specialist Programming
This module currently runs:all year (September start) - Monday afternoon
(core, 30 credits)
This module further develops students’ knowledge and skills in developing software applications for solving problems. It focuses on the data structures and algorithms in programming and the software technologies for building standalone, networked and Internet applications. The module is designed to enhance employability through the use of modern industrial tools and technologies, and familiarisation with the software development life cycle.
The key skills and knowledge to be gained are:
•Provide students with an understanding of theoretical concepts related to the use of data structures, algorithms, programming patterns and software infrastructure in standalone, networked and Internet environments.
•Develop students’ analytical skills in the context of processing, generating, transforming, transporting, storing, retrieving, and presenting data.
•Enhance students’ practical skills using appropriate methods and techniques for designing, programming, and integrating software applications using user interfaces, data structures and persistent storage.
•Provide students with an understanding of programming during the different stages of the software development lifecycle.
•Enable students to apply analytical and practical skill in solving typical problems in standalone, networked and Internet environments.
•Enhance students’ experience and employability through the use of appropriate current technologies, enterprise tools and development environments during software development.
Read full detailsDatabases
This module currently runs:autumn semester - Wednesday morning
(core, 15 credits)
Introduces techniques for analysing, designing and implementing database systems. An understanding of data modelling and design concepts is provided and database programming language skills are taught. The practical aspect of developing database systems is emphasised and use is made of a widely-used commercial database system (e.g. Oracle) for this purpose.
The module will enable students to give an introduction to the issues governing the design and implementation of database systems. Theoretical aspects of designing sound database systems, as well as the practical aspects of implementing such systems are presented. This therefore allows students to understand, and put into practice, the techniques available for analysing, designing and developing database systems.
Read full detailsProfessional and Ethical Issues
This module currently runs:spring semester - Thursday afternoon
(core, 15 credits)
This module focuses on professional, social, ethical issues within the context of social responsibility and covers relevant computer laws (LSEPI) underpinning the Computing discipline. The focus of the module is empowering student to take their place in society as socially responsible professionals and allowing the exploration of self-awareness, empathy, self-efficacy and engagement in students
Assessment: Coursework (100%)
The aims of this module are to:
• Expose students to a range of professional and ethical issues to prepare them to develop their own response to working with a professional outlook.
• Prepare students for the world of work and equip them with the knowledge and appreciation of professional bodies, code of conducts and professional certifications.
• Provide students with knowledge and understanding of the regulations governing the digital environment (e.g. Internet) and social, ethical and professional issues (LSEPI) underpinning the Computing discipline.
Introduce students to academic research and research ethics, and to academic writing.
Smart Data Discovery
This module currently runs:spring semester - Friday morning
(core, 15 credits)
This module will enable students to understand the fundamental concepts of data science and appreciate key techniques of data science and its applications in a wide range of business context. Students will be exposed to data understanding, preparation, modelling, results evaluation and data visualisation techniques that can assist businesses in making effective data-driven decisions to improve productivity and consumer satisfaction. Students will be introduced to the practical application of tools and techniques required to perform data science projects in a modern business environment.
Read full detailsSoftware Engineering
This module currently runs:all year (September start) - Monday morning
(core, 30 credits)
This module provides a systematic approach to software analysis, design, construction, testing, deployment, and maintenance. The module also broadens the student’s knowledge of software engineering and systems development methods, techniques and tools. The general principles of Software Engineering and Systems Development will be introduced; notably the software life cycle and different software development approaches. Students will be able to choose appropriate software development methods and apply them to case studies. They will use a variety of critical techniques and tools to model requirements and logical design.
Students will apply their knowledge of computer systems and application areas to produce outline physical designs. Students will develop project planning and management, teamwork and communication skills, taking into consideration risk/safety, security, and professional and legal issues in the development of software products, information systems and services. Experience of working as an individual and a team member on a software development case study will enhance students’ employability.
Read full detailsArtificial Intelligence and Machine Learning
(core, 15 credits)This module surveys essential principles, methods, and techniques in AI and machine learning. It covers a broad range of AI topics such as problem solving, knowledge representation, logical and probabilistic inference, and machine learning using methods of automata theory, logics, probability theory and statistics. It discusses examples of intelligent systems and studies how to develop applications that can learn from experience such as expert systems, automatic classifiers and autonomous systems planning their actions and communicating in natural language. Students will be offered lectures, which introduce key concepts, explain main principles and techniques in AI, and demonstrate how to apply them in areas such as image recognition and price forecasting.
The workshop will provide practical sessions to help students understand the content of the lectures and build the necessary skills to develop AI-applications using suitable problem descriptions and datasets.
Career Development Learning
This module currently runs:spring semester - Wednesday afternoon
autumn semester - Wednesday afternoon
(core, 15 credits)
The module enables students to undertake an appropriate, short professional activity related to their course at level 6 with a business or community organisation and to gain credit for their achievements. The activity can be professional training or certification, a volunteering activity, employment through internal or external work-based placements, research-related activities, business start-up projects, entrepreneurship programs and more. Please see the complete list of accepted activities on WebLearn.
Students are expected to engage in any one or combination of career development learning activities for a total of ~70 hours which should be recorded clearly in a tri-weekly learning log – part of the portfolio. The ~70 hours can be completed in ~30 working days in FT mode or spread over a semester in PT mode.
Students are expected to complete a total of ~150 hours, 70 hours of which is direct engagement in any one or combination of career development learning activities. Progress should be recorded clearly in tri-weekly learning logs which are part of the portfolio. The ~150 hours can be completed in ~35 working days in FT mode or spread over a semester in PT mode.
Students should register for the module to be briefed, undergo induction and module planning and have their career development learning activity approved before they take up the opportunity. Students must be made aware that both the "Learning Agreement" (LA) and relevant "Health and Safety (H&S) checklist", where applicable, must be approved before starting the learning activity. Activities started without prior explicit supervisor approval will not be accepted.
The module aims to provide students with the opportunity to:
• Gain a valuable experience of the working environment and the career opportunities available upon graduation.
• Sharpen critical thinking, creative problem-solving and the ability to articulate solutions correctly to decision-makers and budget-holders alike.
• Undertake a career development learning activity appropriate to their academic level to gain exposure and access to professional networks.
• Extend learning experience by applying and building on their academic skills and abilities by tackling real-life problems through enrichment and extracurricular programs related to student subject areas.
• Enhance existing skills and master new ones through a structured personal and Professional Development Plan (PDP).
Distributed, Cloud and IoT Systems
This module currently runs:all year (September start) - Monday afternoon
(core, 30 credits)
This module equips the students with professional knowledge and skills for developing contemporary data processing systems on the desktop, on the move, on the net, in the cloud and at the edge of the computational infrastructure. It systematically introduces the principles and models of functioning of modern data processing systems – distributed, parallel, embedded, portable and wearable. For this purpose, it utilizes the recent advances in infrastructural, technological and methodological support of software development – structured, semi-structured and connected data, wired and wireless communications, containerized and remote tools, cloud and edge platforms, DevOps movements, etc.
Read full detailsFormal Languages
This module currently runs:autumn semester - Wednesday morning
(core, 15 credits)
Finite automata or finite state machines (and their languages) are structures that can be used as abstract models for computational devices, capturing many of their essential features without the complications of hardware considerations. This module will enable students from the mathematics and computing areas to appreciate the powers and limitations of computers and will introduce them to some of the factors in complier design through development of some of the standard mathematical models of computational devices.
The aims of this module are:
·To introduce a range of models of computational devices.
·To investigate the expressive power of different models.
·To introduce the idea of decision problems in mathematics.
·To demonstrate that interesting decision problems in computer science will often be unsolvable.
Mobile Applications
This module currently runs:spring semester - Monday morning
(core, 15 credits)
This module introduces a range of specialist programming techniques as applied to mobile platforms. Specific areas of study will include: programming strategies for resource-limited portable devices – including reviewing key components through the development of exemplar applications using an appropriate mobile-based programming platform such as Java ME and Google Android.
The key skills and knowledge to be gained are:
•Understanding theoretical concepts related to the work of software in wireless networks and the use of different protocols, frameworks and tools for building mobile applications
•Learning techniques for programming mobile applications using standard technological frameworks, development tools, mobile device emulators and handsets
•Acquiring practical skills in developing mobile applications which utilize wireless services and mobile Internet
•Applying analytical knowledge and practical skills for building typical mobile applications
•Developing ability to compare protocols, models and paradigms for mobile applications and estimate trade-offs during design using different design patterns, development frameworks and programming techniques
•Building professional competence and increasing the employability through the use of industrial standard technologies and tools for software development
Read full detailsProject
This module currently runs:all year (September start) - Wednesday afternoon
(core, 30 credits)
The module enables students to demonstrate their acquired knowledge and skills through a systematic and creative investigation of a project work in accordance with their course requirements. The topic of investigation will cover a broad spectrum of various analysis and techniques and will lead to a comprehensive and concise academic/industry-related report. Students will be assisted in exploring areas that may be unfamiliar to them and encouraged to develop innovative ideas and techniques. Students will be able to choose a project that may require the solution to a specific problem, creation of an artefact in a real-world environment or an investigation of innovative ideas and techniques related to an area within their field of study. Collaboration with outside agencies and projects with industrial, business or research partners/ sponsors will be encouraged.
Assessment: Project Report Interim Submission(25%) + Project process (25%) + Project Report Final Submission(40% -Pass on component) + Viva (10% -Pass on component).
The module aims to develop a wide range of subject specific cognitive abilities and skills relating to intellectual tasks, including practical skills and additional transferable skills of a more general nature and applicable in many other contexts.
Particularly, the module aims to:
•Provide an opportunity to learn, through supervised experience, how to plan and carry out a project through a systematic and creative approach;
•Encourage innovation and originality in approach to investigating a problem in an area that may be unfamiliar to the student;
•Provide opportunity for in depth study of some specialised area of suitable scale and complexity relevant to their course of study;
•Raise awareness in potential business development opportunities in connection to the project work undertaken and of any ethical, legal and professional issues;
•Develop reporting skills as well as the ability to communicate results, conclusions, and the knowledge and rationale underpinning these, to specialists and non-specialist’s audiences, clearly and unambiguously;
•Encourages reflection upon the relationship of design decisions to the appropriateness of the finished task;
•Enhance professional and personal development.
Read full details