Software Engineering (with a year in industry) BSc (Hons)
UCAS Code: SE13|Duration: 4|Full Time|Hope Park
UCAS Campus Code: L46
Work placement opportunities|International students can apply|Study Abroad opportunities
About the course
Modern society could not function without large software systems. National utilities and infrastructure, energy, communications, health, business and transport all rely on complex and large applications. With the increasing complexity of these software systems comes an increasing difficulty in building and delivering a correct, and robust, solution to customers on time and on budget. Such software cannot be produced successfully, safely and efficiently without following some constraining, and managing, process. This is the domain of the software engineer.
Teaching on this degree is structured into lectures, where all students are taught together, seminars of smaller groups of around 15-20 students, and tutorials which typically have no more than 10 students. During your first year of study, there are approximately 12 teaching hours each week, which reduces to approximately 10 teaching hours in your second and third years. On top of teaching hours, you are also expected to spend a number of hours studying independently each week, as well as studying in groups to prepare for any group assessments that you may have.
Assessment and feedback
During your degree, there are a variety of assessment types to ensure you are given a range of opportunities to demonstrate your knowledge, skills and understanding of the academic and professional components of the degree. These include written exams, portfolios of tasks and activities, and practical coursework. In your final year, there is also a dissertation or extended research project to complete. You will be given written feedback on your assessments, and you will have the opportunity to discuss this with your tutor in more detail.
Basic Software Design
- OOD/OOP Principles
- Reusable Design Patterns (Patterns and anti-Patterns)
- Common Implementations (MVC etc)
- Container Architectures, Orchestration Enterprise Design Patterns
- Design Principles (aspect-oriented programming, inversion of dependencies, SOLID, design by contract)
- Microservice Architectures
- Messaging Middleware (message brokers vs stream platforms)
- RESTful Interfaces, Web-Sockets
- Principles of Cloud Computing and Web Applications
- Platforms, AWS vs Microsoft Azure vs Google Cloud
- Practical Deployment – Firewalls, Security Groups, Virtual Subnets etc.
- Software Process Models
- Process Activities
- Coping with Change
- Improving Processes
Agile Software Development
- Agile Methods
- Agile Development Techniques
- Project Management in an Agile Environment
- Scaling Agile Methodologies
Functional and Non-Functional Requirements
Requirements Engineering Processes
- Change and Change Management
- Test-driven Development (TDD)
- Testing during Development
- Testing Environments
- Release Testing
- User Testing
- Managing Risk
- Managing People, Teamwork
- Plan-driven Development and Scheduling
- Planning for Agile
- Estimation and Contingency
- Cocomo – Cost Modelling
- Software Quality
- Quality Standards
- Reviews and Inspection
- QM in Agile Development Teams
- Measuring Software Performance
- Version Management
- Release Management – CI/CD Models
- Building Systems
The first year provides a broad introduction to foundational computer science concepts across theoretical knowledge, problem solving, and practical skills. Students will get hands-on experience programming in Python and web development environments to build programs, applications, and websites. This develops computational thinking abilities.
Course topics cover:
- Professional Skills to prepare for computer science learning and expectations.
- Structured Problem Solving methodologies, with a focus on Python programming.
- Database Technology fundamentals, from theory to practice.
- Python Programming principles and practical application.
- Website Development basics.
- Computer Systems foundations.
Through this diverse first year curriculum, students gain well-rounded exposure to key computer science areas. They apply theoretical knowledge in practical Python and web programming projects. Hands-on skills in these coding languages and environments equip them with computational problem solving abilities. The courses provide a strong base for computer science mastery in later years, whether on the computer systems or data engineering track.
In your second year, you will go deeper into Computer Science, expanding into both its theoretical and practical dimensions. This year will see a focus on specialized areas within the discipline, with each topic explored in detail.
- Object-oriented Programming with C++: Dive into the intricacies of the C++ programming language, using it not just as a tool, but as a medium to master the overarching principles of object-oriented coding and design. The Unified Modelling Language (UML) will be a component, aiding in the design and management of large-scale industry projects.
- Professional Skills: This topic equips you with a diverse set of skills essential for the professional realm. From communication to problem-solving, you'll be prepared to navigate the challenges of industry.
- Software Engineering: While Java is the language of choice here, this course is about more than just coding. It emphasizes teamwork, diverse project management approaches, and acquaints you with the cutting-edge technologies prevalent in the industry.
- Website Development: Building on your software engineering foundation, this topic looks into client- to server-side coding. You'll learn to integrate databases with websites, creating robust registration, login, and logout systems. Dynamic server interactions using AJAX and enhancing user experiences will also be key components.
- Algorithm Analysis and Design: Understand the heart of computational problem-solving. This course will introduce you to the design, analysis, and implementation of algorithms, ensuring you can develop efficient and effective solutions to complex problems.
- Networks: Dive into the world of computer network infrastructure and protocols. From understanding the roles of clients and servers to exploring physical media and the various types of networks, you'll gain insights into how data seamlessly travels across the digital realm.
- Human-computer Interaction: This course will immerse you in the study of how users interact with computer systems. You'll explore design principles, user experience, and the psychological aspects of user interfaces, ensuring the systems you design are both functional and user-friendly.
- Graphics with C++: Unlock the potential of visual computing. Using C++, you'll explore the principles of computer graphics, from basic rendering to animations, ensuring your applications are not only functional but visually captivating.
You will spend your third year in an industry placement
During this year, the largest project will be your dissertation, but you'll study additional topics that go deep into the intricacies of the discipline, ensuring a holistic understanding of both its theoretical underpinnings and practical applications. You will study topics such as:
- Web Innovations: Go beyond the basics and immerse yourself in the latest web technologies. Learn about modern frameworks, tools, and best practices that drive today's most dynamic and responsive websites.
- IoT and Mobile development: You will study the internet of things, gaining practical experience using Lua and then look at mobile development for Android devices using Java.
- Advanced database: We look at the disconnect between the object-oriented style of software development and the structure of relational databases. We’ll look at how systems interact with databases using simple SQL connectivity, object relational models and alternatives to relational databases such as document oriented systems and in memory data-grids.
- Managing software deployment: How is software deployed at scale. We’ll look at Linux server basics, and get practical experience of virtualization, enterprise containers, containerization, software orchestration and continuous integration and deployment using the school’s teaching cluster.
- Software Management: We look at the management of software projects from the business case to the final deployment.
- Software Architecture: ‘Don’t reinvent the wheel’ we’ll look at reusable software patterns, and then look at modern software architectures, component based engineering, distributed engineering, service oriented engineering, systems engineering, and embedded systems.
- Cloud Computing: You’ll look at cloud computing and associated technologies such as Hadoop and Map Reduce.
You will also study cybersecurity. In an era defined by digital transformation and an ever-evolving threat landscape, the need for robust cybersecurity practices has never been more critical. Cybersecurity is no longer just an IT issue; it's a business imperative. As businesses and organizations increasingly rely on technology to operate and store sensitive data, they face escalating risks from cyber threats, making cybersecurity a top priority.
This course is an eight-session course designed to equip you with the essential knowledge and skills needed to navigate the complex world of cybersecurity. In this course, we will delve deep into the core pillars of cybersecurity, ensuring that you not only understand the concepts but can apply them effectively to secure your organization's digital assets.
Over the eight sessions, we will explore the following crucial topics:
- Authentication and Authorization by and for Service Endpoints: Learn how to control access to your systems, services, and data by implementing robust authentication and authorization mechanisms.
- Secure Configuration Management: Discover the importance of securely configuring your systems and applications to minimize vulnerabilities and reduce attack surfaces.
- Secure Deployment: Understand the best practices for securely deploying software and infrastructure in both on-premises and cloud environments.
- Secure Software Development Life Cycle: Explore how to integrate security into every stage of the software development process, from design to deployment.
- Intrusion Detection Systems (IDS): Gain insights into identifying and responding to potential threats with advanced intrusion detection systems.
- Incident Response: Develop the skills necessary to effectively respond to cybersecurity incidents and mitigate their impact on your organization.
- Testing Security: Learn the art of ethical hacking and penetration testing to proactively identify vulnerabilities before malicious actors can exploit them.
- Professional Standards and Bodies (ISO, etc.) for Cybersecurity: Explore industry standards and best practices, including ISO certifications, and understand their role in establishing a strong cybersecurity framework.
By the end of this course, you will not only be well-versed in these critical cybersecurity topics but also prepared to take proactive steps to protect your organization's digital assets and uphold professional standards in the field.
|UCAS Tariff Points||112 UCAS Tariff points must come from a minimum of two A Levels (or equivalent). Additional points can be made up from a range of alternative qualifications|
|Access to HE||112 Tariff Points|
|Irish Leaving Certificate||112 Tariff Points from Higher Level qualifications only|
|Welsh Baccalaureate||This qualification can only be accepted in conjunction with other relevant qualifications|
|T-Levels||120 Tariff Points / Merit|
|Subject Requirements||No specific subject requirements|
International entry requirements
|Specific Country Requirements||Select your country|
6.0 overall (with reading and writing at 6.0) and no individual score lower than 5.5. We also accept a wide range of International Qualifications. For more information, please visit our English Language Requirements page.
There is a major skills gap in the software engineering sector, with the Tech Partnership reporting that 85% of hard-to-fill positions are difficult to recruit to because of a lack of specialist skills (Employer Insights: skills survey 2015). Our Software Engineering degree will develop employable graduates, who have experience in practical skills that are highly sought after by industry, including programming in C, C++, Java, Lua, Python, C# and low-level languages, such as x86 and ARM
The Service and Leadership Award (SALA) is offered as an extra-curricular programme involving service-based experiences, development of leadership potential and equipping you for a career in a rapidly changing world. It enhances your degree, it is something which is complimentary but different and which has a distinct ‘value-added’ component. Find out more on our Service and Leadership Award page.
As part of your degree, you can choose to spend either a semester or a full year of study at one of our partner universities as part of our Study Abroad programme. Find out more on our Study Abroad page.
The tuition fees for the 2024/25 academic year are £9,250 for full-time undergraduate courses.
If you are a student from the Isle of Man or the Channel Islands, your tuition fees will also be £9,250.
The University reserves the right to increase Home and EU Undergraduate and PGCE tuition fees in line with any inflationary or other increase authorised by the Secretary of State for future years of study.
We have a range of scholarships to help with the cost of your studies. Visit our scholarships page to find out more.
International tuition fees
The International Tuition fees for 2024/25 are £12,500.
Visit our International fees page for more information.
This degree is only available to study as a Single Honours.