also available in 2017
A Level Requirements
see all requirements
see all requirements
Full time 4 Year(s)
Known as an ‘integrated Masters programme’, our MSci Computer Science with Industrial Experience degree provides you with a unique blend of academic content, professional development and industrial experience. The degree provides you with a broad, rigorous treatment of the fundamental principles of the discipline, combined with their modern day application.
You begin your degree studying a range of subjects, including Software Development, Information Systems and Digital Systems. In your second year, you follow several core subjects including Databases, Human Computer Interaction and Software Design.
Your third year courses include Distributed Systems, Languages and Compilation and a selection of optional modules. You will also undertake an individual final year project with one-on-one supervision from one of our internationally recognised academic staff.
Your fourth and final year includes ten weeks of organised, integrated placements and a dedicated eight-week industry project incorporated into the final year of your academic study.
A Level AAA
Computing A Level We are committed to encouraging the adoption of the new A level Computing curriculum. Students applying with an A level in Computing will receive favourable consideration.
GCSE Mathematics grade B, English Language grade C
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
Access to HE Diploma Not typically accepted
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
Many of Lancaster's degree programmes are flexible, offering students the opportunity to cover a wide selection of subject areas to complement their main specialism. You will be able to study a range of modules, some examples of which are listed below.
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.
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 they gain an understanding of the continuing importance of classical algorithms in computer science.
The lectures in this module are supported by seminars and practicals, so that students can develop the ability to work efficiently both independently and in small groups.
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 the student to compare and contrast alternatives.
Students will be introduced to the fundamental concepts underpinning contemporary communications networks and the internet with the aid of examples such as Transmission Control Protocol (TCP), Transport Layer Security (TLS) protocols and file sharing. Exploring the key ideas of protocol stacks and layering, as well as base internet communication protocols such as IPv4, IPv6, TCP and UDP, discover the concepts of IP addressing and sub-netting before being introduced to the protocols used to support the routing of IP packets across the internet, as well as bootstrapping networked systems. This module examines the techniques to support network address discovery and allocation. Link layer issues around data transmission and network programming provide a practical element to the module.
Students complete the module with a detailed understanding of data transmission techniques in computer networks and knowledge of the steps and relevant protocols needed to establish and maintain reliable data communication between network endpoints. Know the key building blocks the internet is built upon and become familiar with the practical elements of programming required to support network communication from both a network protocol and application level perspective. The module encourages enhanced independent research skills throughout the course.
SCC210 gives students the opportunity to build upon their skills and knowledge from Year 1 to create a real-world system in a group context. As part of a group, students will work effectively to gather system requirements, design and then implement the project in addition to accurately evaluating it. The results of the Group Project will be showcased to IBM, who award prizes for the best project every year. The course aims to increase theoretical knowledge and practical skills in prototyping, project planning, project management, management and execution, games design, systems design and testing strategies.
Throughout the Michaelmas and Lent terms, each group will receive 25 hours of contact time with their supervisor, whilst working together. By the end of the module, students will be able to successfully co-ordinate working together, skilfully resolving any problems or conflicts. Students will advance their abilities in writing reports, communication and presenting projects as part of a group. Groups will present their project to IBM in written, graphical and verbal forms.
Receive a theoretical background to the design, implementation and use of database management systems, for both data designers and application developers. Students are encouraged to become familiar with all the relevant aspects related to information security in the design, development and use of database systems. Gain an understanding of the history of how the need for database management systems (DBMS) has evolved over time and how they are applied in everyday scenarios. The module 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 a DBMS independent way. 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. The need of DBMS in supporting transactions and concurrency and topics are covered in single lectures and mini-lecture streams for in-depth coverage of complex topics.
By the end of the module, students will possess transferable skills in applying efficient physical storage organisation, have an increased awareness of the correct processes, models and notations that can be applied to problems, as well as being able 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.
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.
Students will gain an introduction to fundamental concepts in artificial intelligence and learn about current trends and issues. Topics such as Knowledge Representation and Reasoning, Decision Making (DM) and Decision Making Under Uncertainties, and Probability Theory are all explored throughout the course. Artificial Intelligence offers experience in supervised and unsupervised machine learning, neural networks and decision trees. Multivariate methods, and clustering and classification approaches are taught and there is an introduction to evolutionary algorithms, phenotypes, genotypes and fundamental genetic operators. Programming languages suitable for intelligent systems, such as Scheme and Prolog are investigated and students are made familiar with the applications of artificial intelligence.
This module sees an awareness of the requirements of artificial intelligence systems in general, and in the context of computing and communications systems. Through knowledge based, probabilistic and logical systems, the module provides students with an awareness of competing approaches and a broad grounding in artificial intelligence. Additionally they will understand and critically analyse artificial intelligence techniques used in modern computers and mobile devices.
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.
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.
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.
Students produce a substantial individual project, involving the principled design, implementation and evaluation of a substantial piece of software, experimental software or theoretical work. A wide selection of topics are posted by potential supervisors for students to choose from, with the requirements of the degree scheme, the student’s interests and the supervisor’s area of expertise all play a role in project allocation.
Bi-weekly guidance is offered in the form of a one-on-one setting from supervisors to ensure the required level of academic achievement and rigour is maintained for the duration of the project.
There is also the option for project collaboration with an external partner such as a company. Students taking this route can expect an additional external supervisor and a co-ordinator from the InfoLab21 Knowledge Business Centre. The external supervisor’s role is to provide the required information on the business context of the external partner information.
Once completed, students will have developed a coherent proposal for a complex computing, IT or Creative Industries related project, undertaken the research required for such a project, applied theoretical concepts and practical skills and write up a coherent technical report that accurately documents the project.
Explore advanced topics in experimental Human-Computer Interaction (HCI), such as understanding users and their requirements, investigating design spaces and prototyping and developing innovative interaction techniques. The module offers increased experience in HCI literature and design methods both with and without users, as well as practical experience of using supporting tools. Students will learn about modelling techniques and design space techniques as part of the module.
Upon completion of the module, students will have the knowledge to conduct experimental HCI research and have the motivation, experience and tools for understanding users and their requirements for interaction. The module helps to develop scientific writing skills and analytical thinking and prepares students for further postgraduate study, or for a successful career in IT or computing.
This module provides a comprehensive coverage of the problems related to data representation, manipulation and processing in terms of extracting information from data, including big data.
Practical laboratory sessions will offer students an opportunity to gain a fundamental theoretical level of knowledge and skills in computer science. Students will then apply their working understanding to the data primer, data processing and classification. The module will enhance students’ familiarity with dynamic data space partitioning, using evolving, clustering and data clouds, and monitoring the quality of the self-learning system online.
Further skills provided on this module include the ability to develop software scripts that implement advanced data representation and processing and demonstrate their impact on the performance, as well as a working knowledge in listing, explaining and generalising the trade-offs of performance and complexity in designing practical solutions for problems of data representation and processing in terms of storage, time and computing power. Transferrable skills include development in time management and effective report writing.
This module will equip students with the ability to develop and apply an understanding of fundamental principles, techniques and technologies that underpin today's global IT infrastructure. It is designed to be studied in combination with its module namesake, SCC.401-DS, in order to form the systems stream of the Computer Science MSc. Students will learn to assess new systems technologies, to know where technologies fit in a comprehensive schema, and to know what to read in order to develop a deeper level of understanding.
Students will focus on the properties of system components, and will become familiar with the strengths, weaknesses, scalability and bottlenecks of systems components, with the aim to make intelligent and well-reasoned trade-offs between fundamental building blocks of distributed systems in today’s IT infrastructure. The techniques and principles element of the module addresses caching, tiering, replication, synchronisation, failure and reliability, whilst the technologies section covers topics such as interaction paradigms in distributed systems, peer-to-peer architecture and scalable and high-performance networking.
The Fourth Year Project will focus on a significant specification, design, implementation and/or evaluation project at the suitable level for MSci Computer Science. The project sees students tackle a real-world problem by applying their knowledge in computer science. The project is usually achieved in conjunction with an industry placement; however it can be completed at the University. Suggestions made by industry will be vetted by a team of academics to ensure appropriate depth, and if no suitable project with industry can be found, one will be provided by academic staff.
Weekly guidance is given from a member of academic staff from the department to ensure the necessary level of academic content and rigour is being maintained. There are also Business Development mentors in the KBC to provide students with an insight in the day to day expectations and responsibilities of working with industry. The Fourth Year Project is designed to challenge students and develop their existing knowledge, understanding and skills from their undergraduate degree to produce a significant piece of academically rigorous project work.
Students complete a 10 week industrial placement in the Lent term of their 4th year. The University has a range of businesses from SMEs to large corporates for students to be placed in. There are no taught elements in this module, but students have access to an academic supervisor to guide and assist them during the placement. Placements are assigned to students in the Michaelmas term.
Students will gain first-hand experience of working in a contemporary ICT related environment, developing an appreciation and understanding of professional practices and codes of conduct in industrial, commercial and professional settings. Companies will set tasks that are related to students’ knowledge and experience gained throughout their degree, allowing them to apply it in a professional setting. Placements are offered by a variety of companies with different topics. Through an initial matching and application process, we ensure the biggest possible overlap between student interest and company requirements.
Students will gain a formal understanding of research and will develop the ability to critically reflect on research approaches and practices in the field of computing. Research Methods will also encourage an appreciation of the different ways that other disciplines, academic communities and industries all conduct research. There will be an opportunity to plan a research project and develop a convincing study design to address a challenge or problem. This module explores ethical and data management issues associated with research as well as research and innovation practices in industry.
The module covers the fundamentals of research such as sampling and design, before considering strategies and research methods. Furthermore, the module offers greater insight into research design, such as how to structure and frame research studies, choosing a research strategy and selecting the best research method. Students will learn about ethical issues in research and approval processes before understanding the opportunities and expectations from their industrial placements.
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. 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 visit our Teaching and Learning section.
Information contained on the website with respect to modules is correct at the time of publication, but changes may be necessary, for example as a result of student feedback, Professional Statutory and Regulatory Bodies' (PSRB) requirements, staff changes, and new research.
Your degree will equip you with the technical and professional skills necessary to apply yourself to a broad range of careers. Graduates of our Computer Science programmes go on to join major technology companies such as IBM, Google or BAE whilst others prefer software design, development and management roles within SMEs. Others elect to form their own technology centric businesses, or go on to further study for MSc or PhD qualifications at Lancaster or elsewhere.
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.
We set our fees on an annual basis and the 2018/19 entry fees have not yet been set.
As a guide, our fees in 2017 were:
Some science and medicine courses have higher fees for students from
the Channel Islands and the Isle of Man. You can find more details here:
Lancaster University's priority is to support every student to make the most of their life and education and we have committed £3.7m in scholarships and bursaries. Our financial support depends on your circumstances and how well you do in your A levels (or equivalent academic qualifications) before starting study with us.
Scholarships recognising academic talent:
Continuation of the Access Scholarship is subject to satisfactory academic progression.
Students may be eligible for both the Academic and Access Scholarship if they meet the requirements for both.
Bursaries for life, living and learning:
Students from the UK eligible for a bursary package will also be awarded our Academic Scholarship and/or Access Scholarship if they meet the criteria detailed above.
Any financial support that you receive from Lancaster University will be in addition to government support that might be available to you (eg fee loans) and will not affect your entitlement to these.
For full details of the University's financial support packages including eligibility criteria, please visit our fees and funding page
Please note that this information relates to the funding arrangements for 2017, which may change for 2018.
Students also need to consider further costs which may include books, stationery, printing, photocopying, binding and general subsistence on trips and visits. Following graduation it may be necessary to take out subscriptions to professional bodies and to buy business attire for job interviews.