-
Year 1
-
Start to develop the basic technical skills needed to become a computing professional, including: programming, databases, computer hardware, computer networking, and how a computer operating system works, with operational modules on topics. You also have the chance to put these things together in an applied project taking analysis and design through to a prototype implementation.
Core modules
-
Stage 1 Computing Placement Preparation (BPIE111)
This module is aimed at students who may be undertaking an industrial placement in the
third year of their programme. It is designed to assist students in their search for a
placement and in their preparation for the placement itself.
-
Software Engineering 1 (COMP1000)
This module exposes students to the principles of software design and construction. The basics of constructing source code to solve a problem will be introduced, exposing students to common control structures alongside concepts such as types and generics. Major programming paradigms such as object orientation and functional programming are introduced. Additionally, key software development tools and methods are explored.
-
Computer Systems (COMP1001)
This module provides students with an underpinning knowledge of how computers work. Topics include low-level systems and representation of data, operating systems, and an introduction to subjects such as virtualisation, parallelism, state and communications. Students will learn how operating systems manage processes and scheduling, and how memory management works.
-
Cyber Security & Networks (COMP1002)
Modern computing relies upon networking and robust cyber security. This module provides an appreciation of their core enabling technologies, discussing how they can be applied. Key networking topics include routing and switching, as well as wireless networks. Key areas of security include underlying concepts and threats, and exploring security technologies that can be applied to enable defence in depth.
-
Algorithms, Data Structures and Mathematics (COMP1003)
Data structures and algorithms lie at the heart of Computer Science as they are the basis for an efficient solution of programming tasks. In this module, students will study core algorithms and data structures, as well as being given an introduction to algorithm analysis and basic Mathematics for Computer Science.
-
Computing Practice (COMP1004)
This module applies problem-based learning to provide students with the ability to identify problems and derive appropriate and considered solutions. A focus will be given to the early stages of the software development lifecycle to develop the skills of eliciting requirements whilst considering operational and technical trade-offs. The module will culminate in the creation of a simple yet complete software solution.
-
Year 2
-
Building on the first year you study software development topics in greater depth. You will extend your knowledge into graphical representation, data modelling and artificial intelligence. You learn how to capture requirements and complete a whole software life cycle, starting with a concept and ending with a product.
Core modules
-
Stage 2 Computing Placement Preparation (BPIE211)
This module is aimed at students who may be undertaking an industrial placement in the
third year of their programme. It is designed build on the Level 1 module (BPIE111) and to
assist students in their search for a placement and in their preparation for the placement
itself.
-
Software Engineering 2 (COMP2000)
Students’ understanding of software engineering is expanded by introducing a range of topics that instil best practice. Students will learn how to implement faster software using parallelism and consider aspects of human-computer interaction. Object-orientation and functional programming are revisited, while event-driven programming is introduced. Common design patterns used in the construction of software are introduced.
-
Information Management & Retrieval (COMP2001)
This module introduces students to the fundamental concepts for graphical representation, information management, database systems and data modelling. The capture, digitisation, representation, organisation, transformation and presentation of information is explored using conceptual and physical data models.
-
Artificial Intelligence (COMP2002)
This module provides students with an introduction to the principles of artificial intelligence and the methods used in that field. Topics covered include search and optimisation, knowledge representation and reasoning, and machine learning. Students will gain experience of modelling and simulation, and will apply analytical tools to evaluating results, and will consider the ethical implications of the introduction of AI.
-
Computing Group Project (COMP2003)
Knowledge gained in earlier stages of the computing programmes is consolidated and integrated into a substantial project. Students work in teams, champion professional roles, design and develop a software solution for a given scenario. The project integrates and expands upon software development stages covered on the course (project management, analysis, design, construction, communication, security and/or networking).
-
Software Development Tools and Practices (COMP2005)
This module explores the current state of the art in testing tools, including static and dynamic analysis tools. It explores programming environments that automate parts of program construction processes (e.g., automated builds) and continuous integration. Software verification and validation concepts are introduced along with testing types and testing fundamentals.
-
Optional placement year
-
An optional, but strongly recommended placement gives you professional experience and significantly enhances your CV. Placement providers include IBM, Microsoft, Goss Interactive and Vualto.
Core modules
-
Computing Related Placement (Generic) (BPIE330)
A 48-week period of professional training spent as the third year of a sandwich course, undertaking an approved placement with a suitable company. This provides an opportunity for you to gain relevant industrial experience to consolidate the first two years of study and to prepare for the final year and employment after graduation. Please note this placement is optional but strongly recommended.
-
Final year
-
Throughout the year, you will complete a major computing project, allowing you to demonstrate to potential employers that you are ready for the challenges of real-world projects. The first semester provides supporting modules in software project management and development, and the production of dynamic web applications. In the second semester, core human computer interaction concepts are explored to inform user testing approaches, while Big Data sets the scene for state of the art data management practices.
Core modules
-
Computing Project (COMP3000)
The Computing Project provides an opportunity to tackle a major computing related problem in an approved topic area relevant to the programme of study.
-
Full-Stack Development (COMP3006)
This module explores the production of dynamic web applications with a particular focus on the web environment. Key elements such as object oriented and event-based development, asynchronous client-server communication and distributed content representation are explored through practical production. The production of a working system uses dynamic web frameworks such as HTML, CSS and JavaScript/jQuery.
-
HCI, Usability and Visualization (COMP3007)
This module has three main objectives. The first objective is to enhance the students understanding of the topic of Human Computer Interaction (HCI). The second is to emphasise the crucial role of user feedback in the software development life cycle. The final objective is to exemplify this grounding in HCI and usability evaluation using the application area of Information Visualization.
Optional modules
-
Big Data Analytics (COMP3008)
The key objective of this module is to familiarise the students with the most important information technologies used in manipulating, storing and analysing big data. Students will work with semi-structured datasets and choose appropriate storage structures for them. A representative of recent non-relational trends is presented—namely, graph-oriented databases.
-
Games Graphics Pipelines (COMP3015)
This module develops core programming skills for game developers, targeting specific elements of graphics pipelines; rendering, shading and optimisation for varied platforms such as AR (mobile) VR and XR platforms. The module focuses on specific skills required to develop tools/solution for emerging game technologies.
-
Immersive Game Technologies (COMP3016)
This module introduces the concepts and programming techniques for high performance real-time graphics using a relevant graphical API. A bottom-up view of graphical programming is taken, excluding the use of game engines and high-level prototyping tools. Students also learn transferrable skills: programming in an un-managed environment, tools programming, programming for physical interfaces and/or sensors.
-
Computing Project Management (COMP3017)
This module provides the opportunity for students to acquire a critical understanding of the management and methodological issues associated with Software Development.
Every undergraduate taught course has a detailed programme specification document describing the course aims, the course structure, the teaching and learning methods, the learning outcomes and the rules of assessment.
The following programme specification represents the latest course structure and may be subject to change:
BSc Computer Science Software Engineering programme specification 7395
The modules shown for this course are those currently being studied by our students, or are proposed new modules. Please note that programme structures and individual modules are subject to amendment from time to time as part of the University’s curriculum enrichment programme and in line with changes in the University’s policies and requirements.
In light of the Coronavirus (COVID-19) pandemic, the changeable nature of the situation and any updates to government guidance, we may need to make further, last minute adjustments to how we deliver our teaching and learning on some or all of our programmes, at any time during the academic year. We want to reassure you that even if we do have to adjust the way in which we teach our programmes, we will be working to maintain the quality of the student learning experience and learning outcomes at all times.