Computer Science with Year in Industry

BSc Hons UCAS Code

Course overview

Computer science is more than just programming. It is about problem-solving and creativity. Our range of optional modules allows you to explore the areas of computer science that excite you. These include user experience design, virtual reality, artificial intelligence and machine learning.

You'll take part in a group project in year two which prepares you for designing and creating the computer systems of the future. Many projects are in collaboration with industry. Previous students have worked with Capital One, Experian, IBM and UniDays. This project is great for your CV.

The industry year lets you take what you've learned and apply it to real projects in industry. Placements are usually paid and can even lead to a job offer before you've graduated.

You may recognise some of our tutors from the Computerphile YouTube series. It is this inspiring teaching that you can expect at Nottingham.

Teaching and learning

Modules

Core modules

10 modules

Assembly Language Programming

This module takes a practical approach to give students a basic understanding of the fundamental architecture of computers and software.

It will introduce low-level machine code instructions and show how these can be combined to form programs. We then look at higher-level programming structures, like conditional statements, loops, arrays and functions, to show how they’re implemented at machine code level. 


Computer Architecture

This module shows how modern computer systems are made of hierarchical layers of functionality which build on and abstract the layers below.

You’ll begin by learning how the simple building blocks of digital logic can be put together in different ways to build an entire computer. Then we’ll go on to consider how the design can improve performance, how multicore/ multiprocessor systems are programmed and the how the software in an operating systems manages computing resources. 


Databases and Interfaces

This module considers both the structure of databases, including how to make them fast, efficient and reliable, and the appropriate user interfaces which will make them easy to interact with for users. You will start by looking at how to design a database, gaining an understanding of the standard features that management systems provide and how you can best utilise them, then develop an interactive application to access your database.

Through the lectures and computing sessions you will learn how to design and implement systems using a standard database management system, web technologies and GUI interfaces through practical programming/system examples.


Fundamentals of Artificial Intelligence

You will gain a broad overview of the fundamental theories and techniques of artificial intelligence (AI).

You’ll explore how computers can produce intelligent behaviour, and will consider topics such as the history of AI, AI search techniques, neural networks, data mining, philosophical and ethical issues, and knowledge representation and reasoning.


Introduction to Software Engineering

You will be introduced to the concept of software engineering and will be taken through the software development process: deciding exactly what should be built (requirements and specification), designing how it should be built (software architecture), development strategies (implementation and testing), and maintaining change (software evolution and maintenance).


Mathematics for Computer Scientists

You’ll cover the basic concepts in mathematics which are of relevance to the computer scientists.

These include:

  • logic
  • sets
  • functions and relations
  • graphs
  • induction
  • basic probability
  • statistics and matrices

Mathematics for Computer Scientists 2

You'll cover the following basic concepts in mathematics which are of relevance to the development of computer software. Topics which will be covered include linear algebra and calculus. 


Networks

You’ll learn how  a computer communicates with other computers at a fundamental level. This will help you to build an understanding of the fundamental architecture of computer networks.

We’ll examine how the layers of modern computer systems are implemented in practice, by comparing and contrasting different approaches to solve common problems.

You’ll also discover how modern IP networks can be programmed using the sockets API.


Programming and Algorithms

The module introduces basic principles of programming and algorithms. It covers fundamental programming constructs, such as types and variables, expressions, control structures, and functions.

You'll learn how to design and analyse simple algorithms and data structures that allow efficient storage and manipulation of data. You'll also become familiar with basic software development methodology.


Programming Paradigms

In this module you will learn the basic principles of the object-oriented and functional approaches to programming, using the languages Java and Haskell. You will also see how they can be used in practice to write a range of different kinds of programs.


Select student type

Entry requirements

4 years full-time

£9,535 per year

Careers

Accreditation

Compare this course

Discover life at Nottingham

From financial support to student life and accommodation, discover more about the Nottingham experience.

Welcome to your campus

At Jubilee Campus, striking architecture, sustainable design and a lively student community create an inspiring space to learn, connect and thrive. From lakeside walks to coffee catch-ups and gym sessions, this modern campus offers an ideal blend of energy and tranquillity – a place where ideas flourish and ambitions take shape.

Ready to help

Head to our Help and Support hub for frequently asked questions and details of how to get in touch.