Computer Science BSc (Hons)

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

Cambridge

January, September

Overview

Develop skills in designing and building computer systems to the latest specifications. Study in Cambridge, in the heart of ‘Silicon Fen' - home to firms like ARM, Sony and Microsoft. Based in our new Science Centre, you'll have the latest digital technology at your fingertips, and be able to collaborate with other students on innovative computing projects. Choose to take an optional placement year as part of your course, and gain valuable work experience.

Full description

Careers

Computing forms the backbone of almost every organisation. When you graduate from our BSc (Hons) Computer Science 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, you’ll be able to apply for Cisco Certified Network Associate (CCNA) status after you graduate – a valuable addition to your CV.

Whichever path you choose, you can be sure you're graduating with the skills that industry needs. We work with employers and they help us review what we teach and how we teach it – offering hands-on, practical opportunities to learn through work-based projects, internships or placements.

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

Modules & assessment

Year one, core modules

  • Introduction to Programming
    Computers are a part of everyday life and there is no indication that this aspect will ever change. Understanding how they work and having the ability to program them for specific tasks (i.e. Factory Automation, Cash Point, etc.) is a key skill in today’s world. You will be introduced to the procedural programming paradigm, 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, Python, or C++. The skills within will help you to understand the principal components of a program, laying the foundation for subsequent modules requiring structured programming ability. The principles of good programming practice will be emphasised and you will be introduced to techniques required to develop software which: is robust and efficient; satisfies the needs of the customer; consists of elegant, easy to read code; is resilient within the cyber security context By the end of the module,you should have sufficient mastery of a procedural programming language to allow you to design, implement and test simple programs. The skills taught within the module are intended to be directly transferable to the workplace and to provide a suitable foundation for pursuing a wide range of computing-related careers.
  • Computer Systems
    This module consists of two strands: 'Computer Architecture' and ‘Network fundamentals’. Both strands will enable you to learn materials that are of great interest to employers. This module aims to provide you with an understanding of the fundamental behaviour and components of a typical computer system, and how they collaborate to manage resources and provide services in scales from small embedded devices up to the global internet. You will be introduced to IP networks exemplified through the TCP/IP and OSImodels. Laboratory sessions will give you hands-on experience on constructing and configuring network devices. You will use the Cisco CCNA introduction to data network technology course which is the first of four Cisco courses that can be used to obtain a Cisco CCNA qualification. This module will lay the foundation of and prepare you for the computer software, computer networking and cyber security sector to name a few.
  • Software Principles
    In your studies we will introduce you to the fundamental concepts required to understand, design, implement and test high-level programming languages. You will be introduced to a design methodology to help develop linear and hierarchical trains of thought from idea conception through design and implementation to testing. Using a simple interactive programming environment, you will discover how to create and use a wide variety of different basic and complex data structures. By the end of the module, you will be able to: Analyse a simple set of requirements; design appropriate data structures; select appropriate language syntax to manipulate program data; understand and use syntax for the implementation of conditional logic and repetition; be able to create simple scripts to perform a number of operations in turn to achieve a desired effect; demonstrate familiarity with the taxonomy of programming languages and the software development life-cycle and gain sufficient experience of a range of algorithm design techniques, such that, given a simple problem description, appropriate variables you can identify decisions and repetitive actions and translate them into appropriate code constructs.

Year one, optional modules

  • Operating Systems
    During this module you will be introduced to the fundamental features of modern operating systems, their components and their use. We will look at key concepts including the kernel and its modes; memory and resource management; file systems, security and authentication; single and multi-tasking; interrupts, hardware and device drivers and command line and graphical user interfaces (GUI). Case studies will introduce you to 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. You do not need any special technical knowledge before undertaking the module, however a basic user level familiarity with a GUI based operating system (such as Windows) will be useful. The skills acquired in the module will enable you to go on to study material in later modules which involve topics such as system administration, network and server configuration and technical support, all of which are key skills you may need as a graduate when working in the systems and network support industries.
  • Core Mathematics for Computing
    As a student embarking on a degree in computer science or a closely related discipline, this module will equip you with the core mathematical skills needed to succeed. This module also contributes to the professional body accreditation of your programme of study, reflecting the criticality of mathematics/statistics skills in professional computing roles and in computer science research. During much of the module, you will be studying topics in discrete mathematics, such as set theory and logic, Boolean algebra, functions, matrices, sequences/series and product/summation notations. Further topics include probability and statistics, which are useful in understanding the behaviour of non-deterministic algorithms, data visualisation, and in the design and implementation of computer science research projects. The topics you will study will be directly related to computing principles. For example the use of set theory for: the representation of computational structures such as lists, trees and graphs; computations on discrete collections of data (such as in databases); the relationship between number classes and data types and in evaluating computability; and parallels between set theoretic operations and programming logic. The relationship between Boolean algebra and logic operators used in computer programming will be discussed, along with topics like the evaluation and simplification of Boolean expressions. Topics such as sequences and series will be related to elementary algorithm complexity (e.g., linear, logarithmic, and exponential functions), and mathematical functions (injective, surjective, bijective) will be related to program functions, with common functions found in nearly all non-trivial computer programs (such as modulus, floor/ceiling, and numerical operations such as gcd and lcm) being introduced and demonstrated in context. Permutations and combinations will be related to computer security, and the notion of intractable computational problems. Matrices will be in discussed in terms of their ability to represent computational structures such as images, graphs, and computer networks. Core descriptive and inferential statistics used for data visualisation and hypothesis testing (including histograms, distribution types, measures of central tendency and dispersion, and basic inferential statistics such as t-tests and linear correlation) will be examined. Mathematics and statistics skills are regarded as a core competency in computing professionals, and graduates with these skills are highly valued by employers in all job roles in computing and more widely.

Year two, core modules

  • Database Design and Implementation
    Databases is identified as a specific area of study within the 2007 QAA Computing benchmark. Computer science and information science are mostly all about data. A database management system is a way to store data in a way that makes it easier to retrieve, update, search and delete. Databases is a specialist field in its own domain leading to careers such as Database Designer, Database Developer and Database Administrator. Moreover, it is a part and parcel for many other job roles e.g. Software Engineer, Game Developer, Full-stack Web Developer and Back-end Developer. You will not only learn the specialist skills to design and implement a database, but also practice soft skills such as time management, presentation, teamwork, and collaboration. You will work in teams and analyse an existing e-commerce systems, propose a database solution for such a system, design the database, implement the database and evaluate it using SQL queries. You will be guided to think critically for the rationale of your design and write useful queries considering their business purpose and benefit of writing these one way than the other.
  • Software Engineering
    A software engineering life cycle explores software development processes including requirements analysis, modelling and design, code implementation and design patterns and testing and maintenance. When studying the subject, you will gain a theoretical understanding and practical experience of the life-cycle of software applications by learning how to apply software engineering principles to the development of a software system. You will look into the difference between the Waterfall and Agile methodologies and use the latter for project management including learning about the cost drivers that can influence projects. You will use a version control tool to manage source code history. In addition you will apply the knowledge gained in earlier modules to model and design a system by using a range of UML diagrams and you will learn about architectural design including the application of design patterns. Both the automated and manual testing are discussed and you will have to demonstrate the ability to use both of them. You will build on your employability skills by working in a team to develop a complete and robust software system including coordinating the work among team members using a distributed-version control system.
  • 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.
  • 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 & 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.
  • Network Routing
    Modern networks continue to evolve to keep pace with the changing way organizations carry out their daily business. Users now expect instant access to company resources from anywhere and at any time. These resources not only include traditional data but also video and voice. There is also an increasing need for collaboration technologies that allow real-time sharing of resources between multiple remote individuals as though they were at the same physical location. The global Internet is a collection of networks, termed Autonomous Systems (AS), that are linked together via high-speed communication links provided by telecommunication organisations. Your studies will focus on the key concepts and protocols of network routing. We will cover basic routing and switching concepts, including static and default routing, Virtual Local Area Networks (VLANs), and inter-VLANs routing. Dynamic protocols such as RIP and OSPF will be discussed and explored. Network security using Access Control Lists will be introduced and the wider issues of network and Internet security considered. You will study in classes which contain a mixture of theory, delivered through a series of lectures, and practical implementations, delivered through a series of guided laboratory exercises. In the lab sessions you will gain a deep understanding of routing and switching concepts and acquire hands-on-skills using advanced network simulation tools that comply with industry standard router platforms. As part of studying this module you will be able to access on-line materials including the Cisco Networking Academy online curriculum and access specialist laboratory resources.
  • Digital Security
    Knowledge of Digital Security is a core skill you require for any cybersecurity role and provides a springboard to intermediatelevel cybersecurity jobs. Your studies will comprise of real-world best practices in cybersecurity to ensure you have practical security problem-solving skills and learn how to address security incidents, not just identify them. You will also gain the knowledge and skills required to install and configure systems to secure applications, networks, and devices; perform threat analysis and respond with appropriate mitigation techniques; participate in risk mitigation activities; and operate with an awareness of applicable policies, laws, and regulations; in summary all the essential skills you need to get employed in the cyber security domain. Your study will also focus on today’s best practices for risk management and risk mitigation, including more emphasis on the practical and hands-on ability to both identify and address security threats, attacks, and vulnerabilities. The skills you'll gain will give you a baseline for nearly all cyber security jobs.
  • Computing Research Methodologies
    The Computing Research Methodologies module aims to elevate your understanding of research conventions in the field of computer science, reinforce your research skills and most importantly enable you to deploy them in your studies or your professional life. This module offers a comprehensive solution, comprising the required techniques to critically appraise published research, and carry out a piece of original research from the ground up. You will gain the experience of topic-specific research, analysis, and application which helps you to conduct a computer science-based research project. The module also covers the essential skills in project management and planning so that you can develop a viable research project plan, identify appropriate methodologies and technologies, and conduct the research experimental process. Through the course of this module, you will be exposed to data collection, statistical analysis and evaluation strategies, the essential skills you need to carry out an academic career. In conclusion, this module will aid those of you who have to conduct research as part of your studies and paves your way toward postgraduate studies or other academic career routes.

Work placement (optional placement year)

Year three, core modules

  • Professional Issues: Computing and Society
    Professional Issues: Computing and Society aims to provide you an understanding of the issues, opportunities and problems which have arisen as a result of the computerisation of wide areas of human activity. It is designed to enhance advanced computer reflective thinking in both computer science specialists and others, and is a key part of the programme of professional development for computer scientists and others seeking to embody professional values and approaches in the IT and computing fields. You will be covered by 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). Other aspects such as the ethical and professional responsibilities of graduates - particularly those from IT and computing disciplines - will be critically appraised. It is essential to ensure that a professional engineer has an in depth understanding of professional ethics, law and the impact of what they do on society. The knowledge and understanding obtained in this module will prepare you with an in-depth understanding on different legal, ethical, professional and system aspects of your future career particularly in the areas of IT, computer science and engineering.
  • Image Processing
    Use current industry standard tool and techniques and study the theoretical/mathematical foundations of image processing in tandem with practical work and coursework that applies this theory to modern real-world scenarios. Recent case studies have included security applications for the detection of human faces, systems for the automatic analysis of biological specimens, next-generation gesture-based interfaces, and machine vision systems for automated manufacturing. Image Processing is becoming increasingly important as computing power grows, and is used in a very diverse spectrum of computational problems, from self-driving cars, factory automation and robotics, intelligent medical diagnosis, airport security, the military, astrophysics, biometric systems (such as face, fingerprint and iris recognition), environmental monitoring, human-computer interfaces (such as gesture recognition and lip-reading systems), sport (for example, goal line technology and intelligent camera control in football), barcode and QR-code devices, law (from enhancing and interpreting criminal forensic evidence to upholding copyright law through watermarking), and in any applications that entail image manipulation and augmentation, such as Facebook Messenger, Snapchat, Instagram and many others. This module provides you with the opportunity to gain a solid understanding of the core computational processes that underlie these diverse applications, and the fundamental knowledge to apply what you have learned to new situations.
  • Final Project
    You will 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

  • Artificial Intelligence
    Artificial Intelligence (AI) covers a broad range of disciplines ranging from cognitive science and philosophy to more pragmatic engineering subjects. You will learn through specific examples how AI takes its inspiration from human and other biological behaviour that exhibit intelligence, such as problem solving, planning, decision making and optimization. Whilst intended only to provide a broad overview of AI you you will learn about all about the main areas of AI such as behaviour, genetic algorithms, neural networks, fuzzy logic and other topics. The course is intended to be quite practical and you will be expected to solve small coding challenges associated with most of the covered topics, and develop a major AI-related programming assignment. You are expected to have some familiarity in one common high-level programming language prior to taking this module (eg C#, C++ or Java). Currently the topic of AI in the public domain is very high, driven by interest in new technological developments (e.g. autonomous vehicles, applications that can personalise your lifestyle, more meaningful responses to your internet searches) and also the growing need for business to create applications that can retrieve consumer information to target new markets (data analytics). This inevitably means a graduate who can demonstrate basic yet practical technical skills in AI as part of their course portfolio will be very employable in the IT sector.
  • Ethical Hacking and Countermeasures
    Studying this module will give you a rounded introduction to the principles of ethical hacking from both a theoretical and technical perspective. As part of your studies you will be given a contextual setting for ethical hacking by an examination of the issues associated with systems security, cybercrime and the criminal justice system i.e. Computer Misuse Act. Within a mixture of lectures. Demonstrations and practical sessions you will be introduced to the basic principles of ethical hacking and the role ethical hacking plays in providing more secure and robust information to support computer systems and networks (including wireless networks). Will involve being exposed to, and use, the basic tools and techniques of ethical hacking, particularly in regard to penetration testing and systems security within a safe and sandboxed environment. You will be provided with opportunities to develop academic skills in report writing and evidence-based demonstrations. By research and application you will develop the skills to manage the particular legal, ethical and professional challenges, facing the Information Security practitioner with particular reference to the criminal justice system in England and Wales and the Computer Misuse Act.
  • Computer Graphics Programming
    Computer graphics is a branch of computer science which studies methods for digitally creating and modifying visual content, specifically in two and three dimensions. It has many applications including the development of computer games, the design (and implementation) of engineering tasks, and in medical diagnostics and treatment. Note for this module the definition of computer graphics does not extend to include image processing. Computer Graphics Programming introduces some of the programming techniques used to construct primitive lines and shapes through an understanding and implementation of the drawing algorithms that underpin the subject. Some of the fundamental graphics algorithms are introduced such as Line and Curve drawing, 2D transformations, 3D perspective transformations, Hidden Line and Surface Removal and Ray Tracing Algorithms. Some of these algorithms will be implemented using a major software development environment and an appropriate programming language that utilises the graphics capability of the underlying computer hardware. The module is assessed entirely by coursework including an assignment related to an in-depth exploration and development of a graphics processing technique.
  • Distributed Programming
    Distributed Programming is the development of software applications that utilise the distributed functionality of an intranet or the internet. These applications are vital to the banking sector, commercial organisations and governmental institutions as they involve the fundamental technologies underpinning Cloud Computing and On-Line Multi-Player Gaming environments. The module covers the key principles of low-level distributed programming to manage the communication of data between computers. The language of implementation will be one whose libraries support Socket programming, such as Java, C# or C++. Students will learn how to develop applications that share out, or 'farm' large computing operations to smaller interconnected nodes thus implementing a kind of virtual parallel processing. A variety of practical exercises will illustrate these programming techniques and components in an Intranet environment. Examples of programming language support for some of the more common application and communication network protocols will be covered. Threads and multi-threading is introduced as a technique to manage concurrency and the marshalling of data between processes.
  • 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.
  • 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.

Assessment

Throughout your BSc (Hons) Computer Science 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 & 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?

Cambridge
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

Fees & funding

Course fees

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

£9,250

International students starting 2020/21 (per year)

£13,500

Placement year (UK, EU, international students)

£1,250

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

Scholarships

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 answers@anglia.ac.uk 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 Games Art BA (Hons)

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

Cambridge

September

Computer Networks BSc (Hons)

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

Cambridge

September

Computer Science BEng (Hons)

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

Cambridge

January, September


Chat to a student on this course

Do you want to know more about this course, or student life at ARU more generally? Send a message to our Student Ambassador - they'll be happy to answer any questions you have.

Apply now

UK and EU students

Apply through UCAS

UCAScode: I106, I107

Apply via UCAS

International students

Applicants from outside the UK and EU, apply to ARU

Apply direct