Software Engineering BSc (Hons)

Full-time undergraduate (3 years, 4 years with foundation year, 4 years with placement)



If you are applying for advanced entry, please contact us for further information on your study location.


Have you got what it takes to become an expert software developer? If so, you’ll be in high demand. There’s a shortage of qualified IT graduates in coding so take your coding and programming skills to the next level with our Cambridge-based course and learn techniques to identify, analyse and test the IT solutions that industry needs. Your real-life skills, gained through an optional placement year, will put you ahead of the game in this ever-evolving industry.

Full description


We work with employers to make sure you graduate with the knowledge, skills and abilities they need. They help us review what we teach and how we teach it – and they offer hands-on, practical opportunities to learn through work-based projects, internships or placements.

Following concerns from the Government and the IT profession that there’s a shortage of suitably qualified IT graduates in coding, we’ve worked with both national and local employers to make sure our course is tailored around what they need, giving you real-life skills to make you invaluable to the industry.

You could go on to work in main-line business IT applications development and support, general IT systems support roles, core business database development and management, application programming, web development. With additional teacher training, teaching IT at both secondary and further education levels could also be an option.

If you’d like to continue your studies we offer a wide range of full-time and part-time postgraduate courses including our MSc Cloud Computing and MSc Cyber Security.

Modules & assessment

Level 3 (foundation year)

  • Foundation in Engineering, Computing and Technology
    This module will provide students with the necessary skills to begin studying at level 4 in Engineering, Computer Science and related courses. Students will be introduced to the core skills necessary to succeed in higher education, including thinking critically, researching and referencing appropriately, demonstrating appropriate numeracy and ICT skills, and communicating effectively verbally and in writing. In addition to these fundamental skills, Students will cover the subjects underpinning the technological disciplines. Fundamental mathematical skills will be covered, alongside pre-calculus, followed by an introduction to calculus and vector and matrix arithmetic. Students will also be introduced to Classical mechanics, and its application to real-world scenarios. Students will be introduced to the fundamentals of computer science, learning about the principles behind programming and applying them through a series of practical coding exercises. Students will undertake a multi-disciplinary group project as they learn about the collaborative nature of engineering, and design from a broader perspective of business. The module is made up of the following eight constituent elements: Interactive Learning Skills and Communication (ILSC); Information Communication Technology (ICT); Critical Thinking; Maths for Scientists; Maths for Engineers; Physics for Engineers; Fundamentals of Computing; Engineering Design.

Year one, core modules

  • Introduction to Programming
    This module provides an introduction to high level programming, requiring no prior programming experience. You will use industry-standard tools and techniques to design, implement, test and document simple programs using a current programming language such as C#, Java or C++. You will understand the principal components of a high-level program, laying the foundation for subsequent modules requiring structured programming ability. It emphasises the principles of good programming practice and introduce the techniques required to develop software which is robust, usable and efficient. By the end of the module you will have sufficient mastery of a high-level programming language to allow them to design, implement and test simple programs. The skills taught within the module are directly transferable to the workplace and provide a suitable foundation to apply programming skills in your later studies and future career.
  • Computer Systems
    With the use of computers in all walks of life it is essential for companies to have IT staff capable of specifying, installing, configuring and maintaining the company's IT resources and networks. This module ensures you will have the practical skills companies look for in an IT specialist. We will investigate the components and operation of modern computer systems and introduce you to the hardware components which enable a computer to process data and the devices which enable data to be input, output and stored. We will also introduce you to the fundamentals of computer networks as modern computer systems rarely operate in a standalone manner.
  • Core Mathematics for Computing
    This module will begin by refreshing your arithmetic and algebra skills, including basic notation, variables and constants, number types (real and natural numbers, integers, irrational/rational numbers, and so on), ratios, percentages and fractions, bases, exponents, roots/surds, order of operations, product and summation notation, factorising, rationalising, scientific form, decimal places and significant figures, floors/ceilings, rounding, modular arithmetic, the interpretation and manipulation of algebraic expressions, simultaneous and quadratic equations, and scientific calculator use. You will be introduced to probability and statistical analysis methods, including histograms, uniform and Gaussian distributions, accuracy and precision, descriptive measures of central tendency and dispersion, correlation, and basic (parametric) inferential techniques for hypothesis testing. Good practice in data plotting will be emphasised, including axis labelling and scaling, error bars, and the placement of dependent/independent variables, which will be strengthened by laboratory exercises using a graphing-capable software package, such as MATLAB. You will be introduced to basic notation in set theory and discrete mathematics, along with number bases, permutations, combinations and combinatorial logic, including truth tables, which will be related to conditional logic statements in computing. Exponential, logarithmic, and linear functions will be discussed in detail; limits and the generation of recursive/non-recursive sequences and series will be related to the computational growth of elementary algorithms involving simple computational structures. Throughout the module, wherever possible, theory is explicitly related to computer science topics, and general reusable skills are favoured over more esoteric topics. Weekly classroom exercises are completed to reinforce learning and give you the opportunity to work through (and receive formative feedback on) many example problems prior to summative assessment, which will take the form of two in-class tests (one mid-semester and one end-of-semester).
  • Operating Systems
    You will be introduced to the fundamental features of modern operating systems, their components and their use. You will learn key concepts including the kernel, memory and resource management, security and authentication, and command line and graphical user interfaces (GUI). Case studies will be used to familiarise you with the history and features of Windows/MS-DOS and Linux/Unix. The module will also introduce you to the command line interface (CLI) commands and scripting in both the Windows CLI and a Linux shell and allow you to develop simple scripts to automate activities in both operating system environments. It will also explain how each operating system stores configuration information and how (particularly in Linux/Unix) scripts can be used to modify that system configuration. The skills acquired in the module will enable you to go on to study modules which involve topics such as system administration, network and server configuration, and technical support, all of which are key skills graduates need when working in the systems and network support industries.

Year two, core modules

  • Database Design and Implementation
    You will be guided through the fundamentals of database design. This grounding will enable you to construct small scale industrial quality databases. You will work in groups emulating real world development teams. As part of this you will learn the skills of constructing documentation, making revisions and delivering work to a deadline. Implicitly, you will learn the skill of managing a group environment. This module begins with the development of an acceptable approach to industrial clients and their problems. Working within the specification given, you will learn how to extract data from interviews and paperwork. You can then progress to designing and building a database, querying the database to provide the reports (including statistics) that a customer needs. During this process the current industrial choice database language (SQL) is learned. The assessment comprises the design, production and querying of a database and the completion of a portfolio of coursework to be submitted at the end of the course.
  • Ruskin Module
    Ruskin Modules are designed to prepare our students for a complex, challenging and changing future. These interdisciplinary modules provide the opportunity to further broaden your perspectives, develop your intellectual flexibility and creativity. You will work with others from different disciplines to enable you to reflect critically on the limitations of a single discipline to solve wider societal concerns. You will be supported to create meaningful connections across disciplines to apply new knowledge to tackle complex problems and key challenges. Ruskin Modules are designed to grow your confidence, seek and maximise opportunities to realise your potential to give you a distinctive edge and enhance your success in the workplace.
  • Object Oriented Programming
    Here, you will develop your programming skills and enhance your knowledge and skills in best programming practice. You will cover the essential aspects of input/output routines, control structures, contiguous data structures, and the devolvement of objects and methods, which will give you a detailed coverage of the object-oriented paradigm. You will adopt the computational way of thinking that a software developers use. By the end of the module, you will be able to assemble multiclass programs that meet the business requirements set in a specification.
  • Digital Security
    'Digital Security' is about giving individuals the freedom to embrace the digital lifestyle, confidently engaging in everyday interactions across all digital devices with a certainty that the accessibility and integrity of the data is ensured. Digital security affects all aspects of the digital lifestyle, which, among others, comprises computers and the internet, telecommunications, financial transactions, transportation, healthcare, and secure access. This module covers these broad topic areas: Computer Security Principles covers security objectives such as authentication, authorisation, access control, confidentiality, data integrity, and non-repudiation. This module will also introduce you to fundamental software design principles such as that of least privilege, fail-safe stance, and defence-in-depth. You will be provided with an introduction to cryptography covering both symmetric encryption and public-key cryptography, discussing how they are used to achieve security goals and build PKI (Public-Key Infrastructure) systems. You will learn about DES, 3DES, AES, RC4, RSA, ECC, MD5, SHA-1, X.509, digital signatures, and all cryptographic primitives necessary to understand PKI. Diffie-Hellman key exchange and man-in-the-middle attacks will also be discussed. You will learn about Secure Programming Techniques and threats that worms and hackers present to software and the programming techniques that developers can use to defend against software vulnerabilities such as buffer overflows, SQL injection, and off-line dictionary attacks.
  • Computing Research Methodologies
    This module will provide you with experience of topic-specific research and the analysis and application of that work in order to carry out a computer science based project in your final year. The content includes: the selection of a suitable project, often with advice from the potential supervisor; instruction on how to use relevant sources of published information; carrying out a literature survey on the subject of the planned project; the writing of a literature review and project plan; and instruction in appropriate research and analysis methods. You will gain instruction in risk and/or hazard assessment or the ethical and legal considerations of the work to be undertaken.
  • Algorithm Analysis and Data Structures
    Data Structures and Algorithms is described in the ACM/IEEE Joint Task Force for Computing Curricula as being 'Fundamental to computer science and software engineering' which also notes that 'Algorithms are essential in all advanced areas of computer science: artificial intelligence, databases, distributed computing, graphics, networking, operating systems, programming, security, and so on'. In this module you will examine the core data structures and algorithms used in all nontrivial software, enabling you to make sound decisions in the construction of computing solutions that have specific constraints in terms of time (speed) and space (memory). You will learn how to compare the asymptotic behaviour of fundamental computational structures and algorithms and develop the critical skill of making evidence-based choices when selecting from among multiple possible approaches to a given computational problem. To accomplish this, you will study the core mathematical concepts that provide a framework for computational and analytical thinking independently of any particular programming language or computing architecture. In a highly cited cover article by the IEEE Computer Society, 'What knowledge is important to be a software professional?', the results of a survey of 186 software professionals are presented in which they were asked which topics in Computer Science degree programmes they believed to be the most important. Data Structures and Algorithms was rated the second most important topic, preceded only knowledge of 'specific programming languages'. The importance of this module to your future career in software development or technical/scientific computing cannot be overemphasised.

Year two, optional modules

  • Artificial Neural Networks
    Get an in-depth understanding of the core principles and applications of artificial neural networks (ANNs). You will explore the biological basis on which neural networks are loosely founded, evaluate the key differences between biological and artificial neural networks, and study the historical development of ANNs. You will evaluate the strengths and weaknesses of the ANN approach in comparison to other AI methods, look at example problem types for which ANNs are suitable, such as pattern recognition, classification, medical diagnosis, financial/economic data analysis and prediction, and gaming. You will construct ANNs in practical sessions to solve computational problems that would be difficult to solve using conventional computing methods, using a suitable high-level language and ANN functions from standard libraries e.g. TensorFlow, Caffe, Theano, and Keras with Python or MATLAB with the Neural Network Toolbox.
  • Machine Learning
    Machine learning is a form of Artificial Intelligence that allows a system to learn from data rather than through explicit programming, making it one of the most important topics within development organisations that are looking for innovative ways to use data. Here you will learn about the most effective machine learning techniques, gain practice implementing them, and getting them to work. You will not only learn the theoretical underpinnings of learning, but also gain the practical know-how needed to quickly and powerfully apply these techniques to new problems. By the end of this module you will have a practical knowledge of supervised learning algorithms, key concepts like under- and over-fitting, regularization, and cross-validation, and how to identify the type of problem to be solved, choose the right algorithm, tune parameters, and validate a model.

Work placement (optional placement year)

Year three, core modules

  • Advanced Object Oriented Programming
    You’ll take the knowledge and Java programming skills from previous modules to develop your understanding of advanced concepts of object oriented programming, while focusing on good programming practice. You’ll advance your capabilities of Java language, as well as its versatile functionalities to develop Java Applets, Servlets, and APIs. You’ll also develop distributed programming skills and component-based software development using JavaBeans. You’ll create a written report on a programming project based on a given business case, covering description and justification of all stages of software development process including an evaluation of the quality, performance and security of the program.
  • Professional Issues: Computing and Society
    Understand the issues, opportunities and problems linked with computerisation of wide areas of human activity and the technical development and social effects of computer technology. You will focus on advanced computer reflective thinking in both computer science specialists and others, and development skills in professional values and approaches in the IT and computing fields. You will cover relevant and current topics in Computer Law (e.g. Data Protection; Intellectual Property Law; Computer Misuse) and other social, ethical and legal topics such as considering the causes and effects of systems failures (including but not limited to computer systems failure). You will also look at other aspects such as the ethical and professional responsibilities of graduates - particularly those from IT and computing disciplines.
  • Data-Driven Application Programming
    You’ll gain the theoretical knowledge and the practical skills to design and program data-driven applications. You’ll benefit from exposure to a program design methodology that’ll make the design and implementation of robust and professional applications easier and quicker whilst at the same time generating program documentation for future updating and maintenance purposes. There will be substantial support provided for you through face-to-face sessions as well as materials on our Virtual Learning Environment (VLE) online. This module and its assessment represent both an intellectual and practical challenge to produce a complete database-driven solution to a business requirement with the opportunity for you to extend the scope of the application. You’ll be provided with the opportunity to develop confidence in front-end application programming as well as learning skills in setting up, tuning and programming the back-end database management systems. You’ll be assessed by two pieces of coursework, one of which focuses on front-end application design and programming while the other on database implementation and programming. You’ll also do a presentation to demonstrate your understanding of the processes required to produce original database applications.

Year three, optional modules

  • Cloud Computing
    Cloud computing can be considered as a model to enable ubiquitous, anywhere, any time on-demand network access to a shared pool of configurable resources including networks, storage, processors, servers, applications, and services which can be rapidly provisioned in real-time and automatically. The topics you will study include virtualization, data centres, cloud resource management, cloud storage and popular cloud applications including batch and data stream processing. Your learning will cover different backend technologies to create and run efficient clouds and a study of the way clouds are used by applications to realise computing on demand. You will be involved in practical tutorials on different cloud infrastructure technologies. The knowledge and understanding you will obtain in this module will prepare you to meet the requirements for jobs such as a Cloud engineer/developer or a Cloud DevOps Engineer. Also, you will be able to acquire the knowledge and skills to enable you to provide consultancy services to companies who are aiming to transfer to Cloud-based services and products
  • Embedded Computing
    More than 20 billion microprocessors and microcontrollers are currently providing intelligent features, smart capabilities, personalised interfaces, optimised communications to an incredibly wide range of devices. From automotive to healthcare, from science and industry to social science and finance, embedded computing is at the very hearth of almost all modern digital systems. In this module, you will develop a gradual, in-depth knowledge and understanding of embedded computing, analysing its relation to the design of modern digital systems and its applications in different areas and disciplines. Hands-on programming and code optimisation for embedded devices on commercial microcontrollers will be an important part of this module. You will be guided through different microprocessor architectures, real time and non real time hardware and software requirements for embedded microcontroller systems and different communication protocols. You will also explore the relationship between system performance and hardware and software interfaces. Finally, you will be introduced to some possible ethical and sustainability issues (and mitigations) related to the design and operation of embedded systems and smart devices. The module delivery strategy combines complex theoretical aspects, real-world case studies and practical examples (in lab, both supervised and unsupervised). You will be encouraged to take responsibility for your assignments and to work in your own time as well as during the timetabled classes. The successful completion of this module will increase your employability, acquiring industry standard skills, having a hands-on experience with mainstream embedded systems, directly applicable to real-world projects.
  • Human Computer Interaction
    Developing effective human-computer interfaces is a vital yet poorly understood area very much in demand by employers. Specialists in the area need to have a good understanding of a variety of fields including cognitive psychology and usability theory which is key in web design and effective e-commerce implementations. The user’s experience is a key design issue, where the importance of the user’s perceptions of the interface is an important consideration. During your studies you will develop an understanding of interaction design through the delivery of core theory which is then applied to the analysis, design, implementation and evaluation of a functional horizontal prototype artefact with an appropriate HCI design taking account of professional and ethical issues and the needs of users with special requirements. You will be introduced to the notion of user mental models and the extent to which they can be utilized in the design of conceptual models underlying a designed interface. You will then examine the range of discovery methods used to harvest user, task and environmental data to support user needs analysis comprising user characterisation (including the notion of user personae), task analysis and environmental analysis. Following a discussion of visual style and aesthetics, you will then progress to produce a documented design rationale supported by logical storyboards showing information, action and navigation screen components. You will then prototype your design which you will then subject to critical introspective and user evaluation techniques. Your learning will be of considerable benefit to your employability if you intend to specialise in the design of interfaces become a usability/testing consultant or work within the area of user experience design.


We’ll use a range of assessment methods to help measure your progress. Besides exams, you’ll undertake case studies, in-class tests, coursework, group work, presentations and log books.

Where you'll study

Your faculty

The Faculty of Science & Engineering is one of the largest of the four faculties at Anglia Ruskin University. Whether you choose to study with us full-time or part-time, on campus or at a distance, there’s an option whatever your level – from a foundation degree, BSc, MSc, PhD or professional doctorate.

Whichever course you pick, you’ll gain the theory and practical skills needed to progress with confidence. Join us and you could find yourself learning in the very latest laboratories or on field trips or work placements with well-known and respected companies. You may even have the opportunity to study abroad.

Everything we do in the faculty has a singular purpose: to provide a world-class environment to create, share and advance knowledge in science, technology and engineering fields. This is key to all of our futures.

Where can I study?

Lord Ashcroft Building on our Cambridge campus

Our campus is close to the centre of Cambridge, often described as the perfect student city.

Explore our Cambridge campus

This course gives you the opportunity to take a work placement between years 2 and 3. You’ll get experience of seeking and securing a job and working in an industry relating to your course. You’ll also get the practical experience and industry contacts to benefit your studies and enhance your long-term career prospects. Although they can’t be guaranteed, we can work with you to find a placement, using our contacts with a large number of employers. You’ll have regular contact with one of our course tutors and be supported by a supervisor from your placement company. Together they’ll monitor your performance and give you feedback. To find out more about placement opportunities, email us at

Fees & funding

Course fees

UK & EU students starting 2020/21 (per year)


International students starting 2020/21 (per year)


Placement year (UK, EU, international students)


Fee information

For more information about tuition fees, including the UK Government's commitment to EU students, please see our UK/EU funding pages

How do I pay my fees?

Tuition fee loan

UK and EU students can take out a tuition fee loan, which you won’t need to start repaying until after your graduate. Or alternatively, there's the option to pay your fees upfront.

Loans and fee payments

International students

You can pay your tuition fees upfront, in full or in two instalments. We will also ask you for a deposit of £4,000 or a sponsorship letter. Details will be in your offer letter.

Paying your fees


We offer a fantastic range of ARU scholarships, which provide extra financial support while you’re at university. Some of these cover all or part of your tuition fees.

Explore ARU scholarships

Funding for UK & EU students

Most new undergraduate students can apply for government funding to support their studies and university life. This includes Tuition Fee Loans and Maintenance Loans. There are additional grants available for specific groups of students, such as those with disabilities or dependants.

We also offer a fantastic range of ARU scholarships, which provide extra financial support while you’re at university. Find out more about eligibility and how to apply.

Funding for international students

We offer a number of scholarships, as well as an early payment discount. Explore your options:

Entry requirements

Loading... Entry requirements are not currently available, please try again later.

Important additional notes

Our published entry requirements are a guide only and our decision will be based on your overall suitability for the course as well as whether you meet the minimum entry requirements. Other equivalent qualifications may be accepted for entry to this course, please email for further information.

All tariff points must come from A levels. Points from AS levels cannot be counted towards the total tariff points required for entry to this course.

International students

We welcome applications from international and EU students, and accept a range of international qualifications.

English language requirements

If English is not your first language, you'll need to make sure you meet our English language requirements for postgraduate courses.

Improving your English language skills

If you don't meet our English language requirements, we offer a range of courses which could help you achieve the level required for entry onto a degree course.

We also provide our own English Language Proficiency Test (ELPT) in the UK and overseas. To find out if we are planning to hold an ELPT in your country, contact our country managers.

Similar courses that may interest you

Computer Science

Full-time, full-time with placement undergraduate (3 years, 4 years with foundation year, 4 years with placement)


January, September

Computer Networks

Full-time, full-time with placement undergraduate (3 years, 4 years with foundation year, 4 years with placement)



Apply now

UK and EU students

Apply through UCAS

UCAScode: I300, I301, I302

Apply via UCAS

International students

Applicants from outside the UK and EU, apply to ARU

Apply direct