Top reasons to study with us
7th for Graduate Prospects (Computer Science)
The Times and Sunday Times Good University Guide (2022)
8th for Graduate Prospects (Computer Science)
The Complete University Guide (2022)
11th for Computer Science
The Guardian University Guide (2022)
Software Engineers are programming architects, who apply computer science, engineering and mathematical analysis to the design and development of large, complex, and critical software systems.
Our programme provides you with a comprehensive grounding in computer science, while equipping you with the specialist skills required for a profession in software engineering and design. You will gain the technical knowledge and experience to manage and develop high-quality, well-designed software systems, along with an understanding of business and system requirements.
Based around our dedicated Software Engineering Design Studio, your first year will provide you with the fundamentals of computer science, software development, and digital and information systems, allowing you to gain the essential knowledge needed for analysis and design. You will also begin to develop complex computer programming skills, learning to write, analyse, debug, test, and document computer programmes.
Your second year offers advanced modules and will develop your foundational understanding and your programming and software design skills.
You will spend your third year studying at one of our overseas partner universities building your global awareness and connectivity.
In your final year, as well as studying a range of core modules, you also have the opportunity to undertake an individual project. During this project you will work closely with one of our academics, allowing you to use and further develop the skills acquired throughout your degree.
Your final year will also give you the opportunity to undertake an individual project. In this project you will work closely with one of our academics, allowing you to use and further develop the skills acquired throughout your degree.
Lancaster University will make reasonable endeavours to place students at an approved overseas partner university that offers appropriate modules which contribute credit to your Lancaster degree. Occasionally places overseas may not be available for all students who want to study abroad or the place at the partner university may be withdrawn if core modules are unavailable. If you are not offered a place to study overseas, you will be able to transfer to the equivalent standard degree scheme and would complete your studies at Lancaster.
Lancaster University cannot accept responsibility for any financial aspects of the year or term abroad.
Software Engineers develop highly specialised skills that can be applicable in a range of industries. Our graduates have gone on to work with a variety of companies, providing novel computing solutions ranging from e-commerce to advanced military systems, while others have chosen to set up their own businesses or study for MSc or PhD qualifications.
We provide careers advice and host a range of events throughout the year, including our annual careers fair, attended by exhibitors who are interested in providing placements and vacancies to software engineer students and graduates. You can speak face-to-face with employers such as Network Rail, Oracle, and Johnson and Johnson, in addition to a large range of SMEs.
Lancaster University is dedicated to ensuring you not only gain a highly reputable degree, you also graduate with the relevant life and work based skills. We are unique in that every student is eligible to participate in The Lancaster Award which offers you the opportunity to complete key activities such as work experience, employability/career development, campus community and social development. Visit our Employability section for full details.
A Level AAA
Required Subjects A level Mathematics or Computer Science grade A. We are committed to encouraging the adoption of the A level Computing curriculum and recognising desirable subjects. Students applying with an A level or IB Higher Level in Computer Science or Mathematics will be considered for a lower offer.
GCSE Mathematics grade B or 6, English Language grade C or 4
IELTS 6.0 overall with at least 5.5 in each component. For other English language qualifications we accept, please see our English language requirements webpages.
International Baccalaureate 36 points overall with 16 points from the best 3 Higher Level subjects
BTEC Distinction, Distinction, Distinction
We welcome applications from students with a range of alternative UK and international qualifications, including combinations of qualification. Further guidance on admission to the University, including other qualifications that we accept, frequently asked questions and information on applying, can be found on our general admissions webpages.
Contact Admissions Team + 44 (0) 1524 592028 or via email@example.com
Lancaster University offers a range of programmes, some of which follow a structured study programme, and others which offer the chance for you to devise a more flexible programme to complement your main specialism. We divide academic study into two sections - Part 1 (Year 1) and Part 2 (Year 2, 3 and sometimes 4). For most programmes Part 1 requires you to study 120 credits spread over at least three modules which, depending upon your programme, will be drawn from one, two or three different academic subjects. A higher degree of specialisation then develops in subsequent years. For more information about our teaching methods at Lancaster please visit our Teaching and Learning section.
The following courses do not offer modules outside of the subject area due to the structured nature of the programmes: Architecture, Law, Physics, Engineering, Medicine, Sports and Exercise Science, Biochemistry, Biology, Biomedicine and Biomedical Science.
Information contained on the website with respect to modules is correct at the time of publication, and the University will make every reasonable effort to offer modules as advertised. In some cases changes may be necessary and may result in some combinations being unavailable, for example as a result of student feedback, timetabling, Professional Statutory and Regulatory Bodies' (PSRB) requirements, staff changes and new research.
This module demonstrates the fundamental building blocks, mechanisms and concepts found in all digital systems. Students will learn about the workings of a processor; how memory works; and the architectures of classical and contemporary computers. It also shows students how programming languages are turned into something a computer can understand. In providing a strong insight into these fundamental operations, students are encouraged to develop new ways of thinking and to develop abstract thought.
Students will gain an understanding of the key features and components of digital systems, including low level components such as registers and adders, and how these can be controlled through the use of programming techniques. They will develop the skills to work with different logic constructs and number systems, in particular, binary logic. The relationship between applications software, systems software and hardware will be considered and students will also develop an applied understanding of the c programming language.
Fundamentals of Computer Science
This module provides students with an insight into the importance and relevance of the principles of computer science. Gaining the essential knowledge needed for analysing and characterising the efficiency of algorithms and computer programs, students learn how to make the right design choice when implementing computer programs to optimise efficiency for given design parameters.
Students also study the role and characteristics of data structures, and gain an understanding of the continuing importance of classical algorithms in computer science.
There are three main aspects to this module. Firstly, students will study the design and implementation of data handling technology. They will learn about the structure and characteristics of relational databases and their contemporary alternatives, and about the common languages and functions for constructing, populating and querying valid information systems.
Secondly, the module looks at systems analysis and design. Alongside the study of information systems design, students will learn about the use of data in a business and social context, including data collection, validation and presentation. They will learn how to handle multiple constraints, working with people and machines, system thinking and basic cost/benefit analysis.
Finally, the module tackles the important professional and ethical issues of computers in society. Students will gain an understanding of the legal implications of holding personal data, the role and effects of censorship, malware and spam, privacy and surveillance, internet operations, and governance. This will enable students to construct and critique ethical arguments around human and technological requirements and appropriate design solutions.
Computer programming is a highly practical skill in our quickly developing world. In this module students develop the skills expected of a principled computer programmer as they learn how to write, analyse, debug, test and document computer programs. Students will be introduced to both the C and Java programming languages, two of the most widely used languages in the world. They will learn about best practice of day-to-day techniques associated with software development and gain an understanding of the software development cycle. Learning about the challenges faced by software developers in addressing scalability and complexity in computer software, students will be able to work independently to develop moderately complex computer programs.
An adaptable approach is taken to new tools and technologies, allowing an understanding of the importance of selecting the best programming tool for a given problem. A number of new programming languages are introduced from different programming language families and build upon good practices established in Year 1. An appreciation of the history and diversity of programming languages is encouraged, such as understanding their domains of application and to learn to think more broadly about programming. Understanding of the application domain and relative strengths, weaknesses and performance of various language types will be promoted and language concepts and list comprehensions are also introduced.
This module requires a level of self-discipline to recognise and build programs that not only function to a high degree but incorporate non-functional properties. The generation of elegant, scalable and extensible software is expected from the course. Through this experience, students develop the ability to reason logically and algorithmically about problem-solving. They will gain experience of abstracting and simplifying problems based on how the map onto structures and computational elements of programming languages. Confidence in computational thinking will allow students to compare and contrast alternatives.
Students will be introduced to the fundamental concepts underpinning contemporary communications networks and the internet. Key ideas of protocol stacks and layering will be explored, as well as core concepts such as IP addressing and subnetting. As the module progresses, they will then be introduced to the methods used to route packets across the internet. It is this process that enables the global communication network that we so often rely upon today. These concepts will be supported by hands-on practical experience in designing and building networks. Students will also demonstrate their understanding by completing a number of complimentary network programming exercises.
During this module, students will receive a theoretical background to the design, implementation and use of database management systems, for both data designers and application developers. The module also explores the need to define the requirements of database systems, making use of the Extended-Entity Relationship (EER) model as a technique and notation for designing the data in database management systems (DBMS). Students will investigate the mapping of the EER model into an equivalent relational model and then examine it in terms of access rights and privileges.
Over the course of the module, students will become familiar with all the relevant aspects related to information security in the design, development and use of database systems. They will also gain an understanding of how the need for DBMS has evolved over time and how they are applied in everyday scenarios. This technical knowledge will be supplemented by transferable skills in applying efficient physical storage organisation; an increased awareness of the correct processes, models and notations that can be applied to problems; and an ability to critically evaluate a range of technical ideas.
Students will learn theoretical and practical topics in Human-Computer Interaction, with lab work offering hands on experience of design, implementation and the ability to evaluate interactive systems through practical case studies. The course explores the underpinnings of human perception, user-centred design and participatory design processes, with students learning multiple design techniques. The module leads to an understanding of how internal system design impacts external user interface behaviour and highlights the importance of accessibility for all users.
By the end of the module, students will be able to successfully integrate diverse information to form a coherent understanding of Human-Computer Interaction; critically reflect on technical advancements in HCI and demonstrate the independent learning abilities needed for continual professional development and effective written and verbal skills.
Students are introduced to the theoretical and practical application of operating system concepts in SCC211. Throughout the module, internal OS structure; file and I/O management, interrupt handling and device drivers and memory management structures and techniques all become familiar. The module explores process management, including scheduling and threads, and support for multiprocessors. Expect to investigate issues surrounding security and protection, including access control. A practical, hands on approach to module topics is taken to assist in assimilating abstract concepts by presenting concrete examples from suitable operating systems and carrying out relevant programming exercises.
By the end of the module, students should understand the role of a modern operating system and common architectures. System vulnerabilities and how to protect them against security threats are considered throughout. Students will confidently describe typical file system structures and highlight the different approaches to process and task scheduling.
Social, Ethical and Professional Issues in Computing
Students will gain the essential skills and knowledge to operate within the professional, legal and ethical frameworks of their profession. Techniques for breaking down a project into manageable parts and efficient time allocation are taught, leading to a fundamental understanding of the skills and methods required to pursue scientific inquiry and the fundamental concepts and tools for statistical analysis to measure and explain data. Exemplars and guidelines on producing concise and structured scientific reports are offered and students receive additional lectures on presentation skills, professional ethics in relation to computing and communications. Finally, lectures provide an awareness of fundamental legal aspects related to a profession in computing and communications, including intellectual property rights and patent law.
Throughout this course, students will gain a high level of awareness of subject specific skills and general competence needed to gain employment in their field. The module develops academic writing and research skills in a computing context, complimenting students’ other modules.
Software Design offers the opportunity to gain an understanding of the importance of software architecture design, different styles of architecture and the meaning of quality attributes for software design such as maintainability, performance and scalability. Students will gain knowledge of systematic approaches to developing software design using a set of graphical models. The design process involved in developing several modes of the system at different levels of abstraction is explained and they will be introduced to object oriented design with UML.
Throughout the module, students will appreciate the broader context of the role of computer science in the workplace, and the key role it plays in implementing software. The course also looks at understanding the meaning of quality attributes for software design as well as architectural models for specific software systems. Students will gain an insight into the main quality attributes for deciding classes. Students will be able to interpret and construct UML models of software and implement a design expressed as a UML mode as well as understanding how to use various design patterns to address certain problems.
Software Design Studio Project I (Core Studio)
Utilising our award winning Software Engineering Design Studio, groups will work on contemporary challenges in software design. Applying the knowledge they have gained in their first year, students will produce a complex, innovative and concrete group project, allowing them to develop skills in project planning, management and execution, requirements analysis, systems design and testing strategies. Through this module, students will gain an understanding of the principles of software engineering.
In groups, students will also give a demonstration of a working system and present elements of their work in written, graphical and verbal forms through the production of materials such as reports, a website, posters and presentations.
Students are offered an understanding of the fundamental principles underpinning modern distributed systems and practical implementation using JAVA RMI. They will explore indirect communication, group communication and non-functional aspects in distributed systems such as scalability, fault-tolerance and dependability. Applications and services such as distributed file systems and Google infrastructure are investigated in the module and students benefit from a practical development of distributed systems using Java RMI, J2EE and associated tools and techniques. Through this, the module examines distributed systems design, security and Java RMI, the Java Messaging Service, Java Groups and component architectures such as Fractal and Enterprise Java Beans (EJB).
Students will expand their problem solving skills and increase their current programming skills, allowing them to successfully develop distributed applications and services. They will explore the client-server model of distributed systems, RPC/RMI and physical and logical security and protection mechanisms. Study of practical tools and techniques currently available in distributed programming and engaging in discussions of key non-functional properties, with an insight into current research issues in the distributed systems community is also featured.
Internet Applications Engineering
Students will become familiar with a range of issues surrounding the structure, design and deployment of contemporary, large scale and high performance web based services and infrastructures. They will gain the ability to identify barriers to high performance and take a heuristic approach for achieving the best website performance through caching, locality and the use of content delivery networks and cloud hosting. An understanding of the use of analytics, metrics, A/B and multivariate testing will be gained. Through the use of programming toolkits, story tagging and content aggregation, along with XML stores, linked data and RDF students will create responsive web design, including mobile devices, tablets and touch interaction.
By the end of the module, students will have a comprehensive knowledge of using metrics and quantitative data to identify a variety of performance problems. They will be able to use and interpret data analytics, as well as understanding agile web development methodology and how to identify quality processes and provide support for accessibility and internationalisation. Students will conduct weekly experimental lab tasks designed to complement and reinforce lectures, giving both a theoretical knowledge and practical experience in range of topics.
Languages and Compilation
Providing an introduction to formal languages, grammars, automata and how these concepts relate to programming in terms of compilers and the compilation process, students will learn about syntax and semantics, phrase structure grammars and the Chomsky Hierarchy as well as processes such as derivation and parsing. The module focuses on grammar equivalence and ambiguity in context free grammars and its implications. There is exploration of the relationship between languages and abstract machines. Students are presented with the concept of computation alongside Turing’s thesis, alternative models of computation and applications of abstract machine representations. There are further introductions to the compilation process including lexical analysis and syntactic analysis.
By the end of this module, students will understand the relation of programming languages and the theory of formal languages. They will possess an essential understanding of the compilation process for a high-level programming language. Students are encouraged to engage with theoretical aspects of computer science to compliment practical skills in other parts of their degree. There are links to other disciplines such as linguistics, and the course explains the challenges of compilation in the context of software development and computer science.
Security and Risk
Covering a range of topics, including asset identification and assessment, threat analysis and management tools and frameworks, students will become familiar with attack lifecycle and processes, as well as risk management and assessment processes, tools and frameworks. The module covers mitigation strategies and the most appropriate mitigation technologies and offers knowledge on assurance frameworks and disaster recovery planning. There is also an opportunity to learn about infrastructure design and implementation technologies and attack tree and software design evaluation.
Students will gain an understanding of the different ways in which an IT professional can make effective decisions when securing an IT infrastructure. The course will make them aware of the tools, frameworks and models that can be used to identify assets, threats and risks, before selecting the most appropriate strategies to manage the exposure that IT infrastructure faces in the light of this analysis. The module builds on their skills with a practical examination of the mechanisms by which IT infrastructures are attacked.
Software Design Studio Project II (Networked Studio)
Building upon their experience of developing individual software modules through the introduction of complex and realistic software systems, a studio approach is taken for students to focus on the integration and networking of software modules to create larger systems. Software engineering techniques relevant to medium sized networked projects, such as models of distributed architecture, large-scale integration testing, distributed team development and techniques for large scale software quality are taught. In groups, students deliver reports, code and demonstrate a working system. Elements of this work will be presented in a range of verbal, graphical and verbal forms such as reports, websites, posters and presentations.
The course imparts knowledge in the application of software engineering, system development and application programming principles. There is also an awareness of concepts to the development of networked software modules. Project management and planning skills alongside technical skills within a project and medium sized group context are developed through assessment. Students will be building on their experience of working within a team, co-ordinating work within a group and resolving and problems or conflicts.
Software Design Studio Project III (Live Studio)
Working on a project with industry involvement, and building on the skills acquired in Software Design Studio Project II (Networked Studio), groups will work on a large system that will be deployed with live users at the end of the course. Focusing on building a real-life innovative system that will potentially have commercial or research value, the development process will adopt an agile approach with a strong emphasis on software engineering practice. Students will deliver and demonstrate a working system and they will also present certain elements of their work in written, graphical and verbal forms through the production of materials such as reports, websites, posters and presentations.
Completion of the module offers hands-on experience through working closely with clients in software. Students are equipped with a range of skills for planning, designing and building industry standard software systems, and they’ll be working as part of a large team, resolving any conflicts.
Fees and Funding
We set our fees on an annual basis and the 2023/24 entry fees have not yet been set.
Scholarships and bursaries
At Lancaster, we believe that funding concerns should not stop any student with the talent to thrive.
We offer a range of scholarships and bursaries to help cover the cost of tuition fees and/or living expenses.
There may be extra costs related to your course for items such as books, stationery, printing, photocopying, binding and general subsistence on trips and visits. Following graduation, you may need to pay a subscription to a professional body for some chosen careers.
Specific additional costs for studying at Lancaster are listed below.
Lancaster is proud to be one of only a handful of UK universities to have a collegiate system. Every student belongs to a college, and all students pay a small college membership fee which supports the running of college events and activities.
For students starting in 2022, the fee is £40 for undergraduates and research students and £15 for students on one-year courses. Fees for students starting in 2023 have not yet been set.
Computer equipment and internet access
To support your studies, you will also require access to a computer, along with reliable internet access. You will be able to access a range of software and services from a Windows, Mac, Chromebook or Linux device. For certain degree programmes, you may need a specific device, or we may provide you with a laptop and appropriate software - details of which will be available on relevant programme pages. A dedicated IT support helpdesk is available in the event of any problems.
The University provides limited financial support to assist students who do not have the required IT equipment or broadband support in place.
Study abroad courses
In addition to travel and accommodation costs, while you are studying abroad, you will need to have a passport and, depending on the country, there may be other costs such as travel documents (e.g. VISA or work permit) and any tests and vaccines that are required at the time of travel. Some countries may require proof of funds.
Placement and industry year courses
In addition to possible commuting costs during your placement, you may need to buy clothing that is suitable for your workplace and you may have accommodation costs. Depending on the employer and your job, you may have other costs such as copies of personal documents required by your employer for example.
Fees in subsequent years
Fees are set by the UK Government annually, and subsequent years' fees may be subject to increases. For international applicants starting in 2022, any annual increase will be capped at 4% of the previous year's fee.
A place for Megan
I came on an Open Day and just wanted to get a general feel of the place and go to the department talks, and I liked the fact that it was more in the countryside, very green, very open. Then I came back on the Applicant Visit Day, and I had a proper tour of the campus, I had a proper look around the accommodation, and I decided that this was the place for me. It was more open, it was more in the countryside, and that’s what sort of background I come from. So it was definitely the place for me.
Having the variety of modules meant that I could get a wider understanding of the subject and figure out which bits I liked. This then helped me to make decisions when it came to my final year about which modules I wanted to take.
I remember in the first year there was a module that I loved because it was mathsy, and that's one of my strengths. They always take the first year as the opportunity to take everybody up to the same level and the teaching staff are so supporting, the lecturers will come to the labs to help you out, and there are extra teaching assistants in the labs to help.
The course has given me an idea of what I prefer to do. At the moment I'm thinking more about Human-Computer Interaction, but I'm still not 100% certain. But I know I get to pick modules next year and for my final year, and so hopefully that will help me to decide as well.
Megan Borland, BSc Computer Science
Scholarships and Bursaries
We offer a wide range of scholarships and bursaries to prospective undergraduate students. Academic Scholarships are for students with a strong performance in their A levels, or equivalent qualification. Access Scholarships and Bursaries are for students from households with lower than average incomes. You can read more about our scholarships on our dedicated page.
Computing and Communications
- Computer Science BSc Hons : G400
- Computer Science (Study Abroad) BSc Hons : G403
- Computer Science (with Industrial Experience) MSci Hons : G404
- Computer Science and Mathematics BSc Hons : GG14
- Computer Science and Mathematics MSci Hons : GG1K
- Computer Science and Mathematics (Placement Year) BSc Hons : GG1L
- French Studies and Computing BSc Hons : GR41
- German Studies and Computing BSc Hons : GR42
- Management and Information Technology BSc Hons : GN51
- Management and Information Technology (Industry) BSc Hons : GN52
- Software Engineering BSc Hons : G602
- Software Engineering (with Industrial Experience) MSci Hons : G601
- Spanish Studies and Computing BSc Hons : GR44
The information on this site relates primarily to 2023/2024 entry to the University and every effort has been taken to ensure the information is correct at the time of publication.
The University will use all reasonable effort to deliver the courses as described, but the University reserves the right to make changes to advertised courses. In exceptional circumstances that are beyond the University’s reasonable control (Force Majeure Events), we may need to amend the programmes and provision advertised. In this event, the University will take reasonable steps to minimise the disruption to your studies. If a course is withdrawn or if there are any fundamental changes to your course, we will give you reasonable notice and you will be entitled to request that you are considered for an alternative course or withdraw your application. You are advised to revisit our website for up-to-date course information before you submit your application.
More information on limits to the University’s liability can be found in our legal information.
Our Students’ Charter
We believe in the importance of a strong and productive partnership between our students and staff. In order to ensure your time at Lancaster is a positive experience we have worked with the Students’ Union to articulate this relationship and the standards to which the University and its students aspire. View our Charter and other policies.