Computer Science BEng (Hons)

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


January, September

code: G400, G401

For information about starting January 2016 call 01245 686868


Study in the heart of ‘Silicon Fen’, home to firms like ARM, Sony and Microsoft. Explore the key theories and technologies of computing. Develop skills in designing and building systems to the latest specifications. Gain the skills employers are looking for, and choose from a range of exciting career options. This course has been validated to include an optional Sandwich Placement year in industry.

Untitled Page

For more information about Sandwich Placement opportunities, please contact the Placements Team.

Your course will have a new home in Compass House, which will extend our campus along East Road. You’ll have the latest technology at your fingertips and be able to collaborate with other students on innovative projects to hone your skills.

Full description


Untitled Page

Computing forms the backbone of almost every organisation. When you graduate from our course, you’ll have skills that are in demand in a huge range of industries. You could work in telecommunications, aerospace, security, financial services, marketing, public service, the creative industries and teaching.

By choosing particular modules, after graduation you can apply for Cisco Certified Network Associate (CCNA) status. This will add extra skills and a recognised certification to your CV.

Graduation doesn’t need to be the end of your time with us. If you’d like to continue your studies we offer a wide range of full-time and part-time postgraduate courses including MSc Computer Science

Modules & assessment

Year one, core modules

  • Introduction to Programming
    This module provides an introduction to high level programming, requiring no prior programming experience. You'll 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'll 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'll 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 to provide a suitable foundation to apply programming skills in your later studies and future career.
  • Fundamentals of Design
    You’ll be introduced to the concepts of a software life cycle, system theory, design methodologies and relational data modelling. Our module uses a system methodology to work through a software lifecycle looking at analysis, design and implementation. You’ll be given the opportunity to apply a design methodology to a case study producing diagrammatic representations of the data and functionality of a system. You’ll be introduced to the essentials of database design and implementation. You’ll be expected to participate in group work as well as make individual contributions. Our module is 100% coursework, comprising a set of deliverables to demonstrate analysis of the case study example(s) and application of design theory. Exercises will be both formative and summative to encourage discussion of design theory and its application.
  • Computer Systems
    With the use of computers in all walks of life it's 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'll have the practical skills companies look for in an IT specialist. We'll 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'll also introduce you to the fundamentals of computer networks as modern computer systems rarely operate in a standalone manner.
  • Operating Systems
    You'll be introduced to the fundamental features of modern operating systems, their components and their use. You'll 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'll 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.
  • 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’ll be introduced to probability and statistic 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’ll 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).

Year two, core modules

  • Database Design and Implementation
    You’ll be guided through the fundamentals of database design. This grounding will enable you to construct small scale industrial quality databases. You’ll work in groups emulating real world development teams. As part of this you’ll learn the skills of constructing documentation, making revisions and delivering work to a deadline. Implicitly you’ll 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’ll 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.
  • Network Routing
    The global internet is a collection of networks, termed Autonomous Systems (AS), that are linked together by high-speed communication links provided by telecommunication organisations. Converged traffic, that is traffic comprising both data and voice, is routed through the network based either on policies agreed between ASs or performance metrics by routers within the ASs. Due to the complexity and dynamic nature of networks, routers use dynamic routing protocols to establish the 'best' path for traffic. You'll focus on the key concepts and protocols of network routing. You'll cover basic routing constructs such as: static and default routing; Interior Gateway Protocols (IGP) such as RIP, EIGRP and OSPF and introduces the Exterior Gateway Protocol BGP that is primarily used by Internet Service Providers. Classes involve a mixture of theory, delivered through a series of lectures, and practical implementation, delivered through a series of guided laboratory exercises. We'll use advanced network simulation tools and industry standard router platforms to teach hands-on skills. This module forms part of the curriculum offered by The Cisco Networking Academy Program, a well-established partnership between academia and industry to provide up-to-date knowledge and skills required by industry and commerce. You'll be able to access on-line material via the university Virtual Learning Environment and access our laboratories remotely.
  • Software Engineering
    The number, size, and application domains of computer applications have grown and most people depend on the effectiveness of software development. Software products have to be efficient, good quality and to help us to be more efficient and productive. Software Engineering is a form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems. Get real-world experience in software engineering and gain the intellectual tools to be able to design, implement and test software systems. Build on Fundamentals of Design and Introduction to Programming and journey through all the phases of the life cycle by taking case studies and building real software applications based on them. You’ll use CASE tools to study topics, including analysis and design in UML and managing the OO software development process. Finally, you’ll work in team on a specific project to create an application from a case study that showcases a whole software lifecycle.
  • Interaction and Usability
    Developing an effective human-computer interface and improving the user experience is a vital yet poorly understood area. This module will develop your understanding of interaction design by using core theory applied to the analysis, design, implementation and evaluation of a limited functionality horizontal prototype. Please note that you’ll be expected to have some scripting experience prior to starting the module. If you're interested in web design or designing interfaces, want to become a usability consultant, testing consultant, or work within user training or user support roles, then you'll find this module considerably beneficial.
  • 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 defense-in-depth. You’ll 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’ll 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’ll 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. This may include 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'll gain instruction in risk and/or hazard assessment or the ethical and legal considerations of the work to be undertaken.

Year two, optional modules

  • PC Technology
    This module builds on the elementary material covered in "Computer Systems" using more in depth case studies of the CPU families, motherboards and associated peripherals in modern PCs. It also looks at PC hardware and operating system technical support examining aspects such as safety, configuration tools and troubleshooting. When you successfully complete the module you'll have knowledge that will allow you to advise others on and implement simple upgrades and make system configuration changes. It'll also equip you with skills that, with experience, will permit you to start a career in PC technical support.
  • Object Oriented C++
    C++ (and its language precursor, C) is arguably the most common programming language in industry, and graduates who are good C/C++ programmers are often much sought after in the IT sector (systems programming, embedded software, graphics and games programming). The reason for the popularity of C++ is partly historical, partly because the programmer can produce fast, memory-efficient programs, and partly because of its flexibility to support different programming styles. This module provides an introduction to C++ for those already with some programming experience in another language such as Java or C#. Following procedural introduction you'll be using an object oriented style of programming including the necessary design considerations. Code will be written using an appropriate development environment (such as Visual C++, Dev C++, or C++ Builder) and be mainly confined to ANSI/ISO C++ and use of the standard library so as to promote source code portability to other platforms. You'll learn how explicit types of memory allocation can be used to manipulate data and how this can influence computer resources, gaining an understanding of the underlying architecture behind how other high level programming languages manage their data.
  • Network Services Engineering
    Network configuration is one of the key skills needed by IT professionals in order to pursue a successful career in computer support. We'll teach you the fundamentals of the hardware, software and standards used by modern computer networks. Using a mixture of theoretical discussion and application of new skills in a practical environment you'll gain an understanding of the complexities of modern networks and their operation and to permit you to evaluate existing environments and advise on new network scenarios. In practical sessions you'll be able to experiment with the configuration and implementation of common network services, such as NFS, electronic mail, ftp, ssh, SAMBA.

Year three, core modules

  • 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’ll 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’ll 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’ll also look at other aspects such as the ethical and professional responsibilities of graduates - particularly those from IT and computing disciplines.
  • Data Structures and Algorithms
    You’ll become aware of efficient programming practice by critically appraising some of the common data structures and algorithms available to the computer scientist. You’ll use a range of analysis techniques to carefully evaluate the performance of these data structures and algorithms in order that you may make prudent choices in the assembly of software artefacts with specific performance targets or constraints. The concept of the algorithm is a central pillar of computer science, and is closely related to the concept of the data structure: the storage mechanism that algorithms are used to manipulate. In this module, a variety of crucially important data structures and associated algorithms are explored, with frequent examples from real world applications. The importance of algorithm analysis, that is, the investigation of the efficiency and resource requirements of algorithms is presented, in order to develop an appreciation of implementation issues and choices faced in the design of non-trivial software projects. The concept of the abstract data type (ADT) is presented as an encapsulation of common data structures and algorithms that incorporates a simple interface, promotes a high-level of information hiding, and permits changes to underlying implementation without affecting the larger application. In comparison to earlier programming modules, the focus of Data Structures & Algorithms is firmly theoretical, setting a foundation for understanding concepts and techniques that are of vital importance to any computer scientist required to construct elegant and efficient software artefacts in any high-level programming language, including scripting languages. You’ll be assessed by an exam and a practical assignment with associated documentation.
  • Image Processing
    This module exposes you to the theory and implementation of digital image processing algorithms. Image processing is one of the fastest growing areas in computer science; with increased computational power, it’s now possible to achieve tasks that were previously accomplished with analogue technologies through digital means. Topics covered include image acquisition and representation, human perception and understanding, image statistics and histogram operations, enhancement, transformations, filter design, compression, segmentation, morphological operations, and pattern recognition. The module introduces image processing techniques that enable you to build computer systems that analyse images automatically, illustrated using applications such as face detection/recognition, medical image processing, natural image statistics, compression/encoding, and computer vision. As a vehicle to demonstrate the techniques explored in this module, you’ll use purpose-written programming tools and environments such as the Image Processing Toolbox within Matlab (Mathworks Inc), and GNU ImageMagick, in addition to programming from first principles using modern high-level programming languages (such as C/C++) to deepen understanding. The module will treat concisely some fundamental problems in image processing, focusing on a core set of problems where efficient and robust algorithms can be applied. You'll be required to implement a range of algorithms using real datasets. In addition to presenting practical programming techniques and algorithms, our module will introduce you to emerging research to provide sufficient understanding to undertake novel undergraduate research projects.
  • Final Project
    You’ll engage in a substantial piece of individual research and/or product development work, focused on a topic relevant to your specific discipline. The topic may be drawn from a variety of sources including: Anglia Ruskin research groups, previous/current work experience, the company in which you are currently employed, an Anglia Ruskin lecturer suggested topic or a professional subject of their specific interest (if suitable supervision is available).

Year three, optional modules

  • Internet Server Engineering and the Cloud
    The web server has become one of the corner stones of everyday computing with a large majority of servers, including many intranet and extranet servers, running the Apache web server software. During this module you’ll learn about server administration with a particular focus on the Apache web server running on windows or Linux. You’ll use a blend of theoretical discussion, laboratory sessions and remote access to class servers to cover the necessary skills to understand, evaluate and apply good practices in web server administration and management. You’ll also have the opportunity to install and configure the Apache server and to investigate and experiment with the configuration of the server and the provision of associated services.
  • Interactive Artificial Intelligence
    Artificial Intelligence (AI) takes its inspiration from intelligent human and biological behaviour such as problem-solving, planning, decision-making and optimisation, and attempts to create systems that can perform similar intelligent tasks. In this module you'll cover the key areas of AI which include behaviour, genetic algorithms, neural networks, and fuzzy logic, and apply it to the wider context of code and game development. You're not expected to have expertise in any particular language but you should be familiar with one of the common high-level programming languages such as C#, C++ or Java, and you'll need a basic level of mathematical ability and physics background.
  • Mobile Technology
    This module provides the essential skills needed to develop mobile applications for the latest phones, tablets and other devices. Both browser based and native technologies are covered to give you a clear understanding and practice in : 1. The design issues, standards and tools available for developing web pages and internet services for access from mobile devices. 2. The design issues, programming and tools for developing native mobile applications hosted on the mobile device. 3. The module reflects current programming practice using the latest mobile operating systems and web based mobile technologies to create mobile adapted web sites and browser based applications. In the laboratories you'll use text editors and browser based development tools for web applications. We have a range of current phones and tablets to test applications and will be using Android development to explore how native and hybrid apps are developed. You'll be encouraged to develop your own mobile application ideas and prepare content of whatever form to be rendered and tested on mobile devices using the latest technology and software tools. This material may be for entertainment, games, e-learning/training, conferencing, or applications of existing services: email, Instant messaging, news etc.
  • Distributed-Systems Programming
    Distributed Systems Programming involves the development of applications to utilise the distributed functionality of an intranet or the internet. A distributed system makes up the core information management tools in small, medium and large enterprises and are used to share, or 'farm' out large computing operations to smaller interconnected nodes thus implementing a kind of virtual parallel processing. Distributed applications are vital to the public and commercial sectors and involve the fundamental technologies underpinning cloud computing, on-line multiplayer gaming environments and some aspects of social networks. We'll evaluate the key theories of distributed systems, both in terms of software and hardware. You'll be introduced to Threads and multi-threading as a tool to manage the communication of data between computers via socket programming. We'll also cover issues associated with concurrency and the marshalling of data between processes.
  • Network and IT Operations
    Modern IT infrastructures are rapidly evolving to meet the needs of dynamically changing business requirements. Evolving factors such as user mobility and the use of the cloud and rely on the key core skills of the network engineer and/or system administrator. You'll follow on from the preparatory skills learnt in Computer Systems and Network Routing to focus on several key areas- Campus LAN Switching and Wireless Operation which includes LAN design methodologies, resilience requirements configuration of Ethernet switches, Virtual LANs and wireless operations. Enterprise WAN Solutions focuses on WAN technologies and operations such as Network Address Translation (NAT), DHCP, PPP/Frame Relay, Access Control Lists and Security features such as VPN's. IT Operations focuses on next generation features such as Network & System Management, Service Management (ITIL), Virtualisation and Cloud Techniques. The module is delivered as part of the CCNA 3 and 4 curriculum offered by The Cisco Networking Academy Program (CNAP), a well established partnership between academia and industry to provide up to date knowledge and skills required by industry and commerce.


Throughout the course we’ll use a range of assessment methods to help measure your progress. Besides exams, these will include group work, presentations, case studies, laboratory tests and projects.

Where you'll study

Your faculty

The Faculty of Science & Technology is one of the largest of five faculties at Anglia Ruskin University. Whether you choose to study with us full- or part-time, on campus or at a distance, there’s an option whatever your level – from a foundation degree, to a 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 and technology 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

Untitled Page

Additional study information


This course gives you the opportunity to take a work placement year between years 2 and 3 of your studies. 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, 2015/16 (per year)


International students, 2015/16 (per year)


UK & EU students, 2016/17 (per year)


International students, 2016/17 (per year)


How do I pay my fees?

Tuition fee loan

Untitled Page

Most English undergraduates take out a tuition fee loan with Student Finance England. The fees are then paid directly to us. The amount you repay each month is linked to your salary and repayments start in April after you graduate.

How to apply for a tuition fee loan

Paying upfront

Untitled Page

If you choose not to take out a loan you can pay your fees directly to us. There are two ways to do this: either pay in full, or through a three- or six-month instalment plan starting at registration.

How to pay your fees directly

International students

You must pay your fees up-front, in full or in instalments. You will also be asked for a deposit or sponsorship letter for undergraduate courses. Details will be in your offer letter.

Paying your fees
Untitled Page

Funding for UK & EU students

We offer most new undergraduate students funding to support their studies and university life. There’s also finance available for specific groups of students.

Grants and scholarships are available for:

Untitled Page
Funding for international students

We've a number of scholarships, as well as some fee discounts for early payment.

Entry requirements


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

Untitled Page
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.

Entry requirements are for September 2016 entry. Entry requirements for other intakes may differ.

Untitled Page
International students

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

Untitled Page
English language requirements

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

Untitled Page
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.

Get more information

UK & EU applicants

01245 68 68 68

Enquire online

International applicants

+44 1245 68 68 68

Enquire online