The course covers the methods for developing software, following rigorous engineering practices. You will learn how to plan and manage software architectures for practical large-scale development projects, while adopting an academic and rigorous approach which will support you throughout your career. We cover: how to understand customer requirements; specify, design and code a solution; and test and release your solution to your customer. You will learn about mathematical models of computation such as automata and register machines, and formal language theory.
Modules in computer architecture, operating systems and networking cover essential knowledge of modern computing systems (mobile computers to world-distributed computation). And, of course, we cover databases and information systems. In optional modules you can learn about a range of advanced topics including user interfaces, web technologies, mobile applications, security, distributed systems and applications, and concurrency theory.
Project work is highly desired by employers. In your second year group project you will learn the demands of working in a professional environment as you endeavour to deliver software that is often commissioned by a real client. In your final year, you undertake an individual problem-based project, exercising your creativity and innovation to design and implement a software solution to the problem; you can also apply the scientific principles you learnt. Previous projects have included 3-D games, mobile phone/tablet apps, security software, internet telephony, programming robots, a sheet music editor, theorem provers, processor emulators, and more.
Typical offer ABB
UCAS codes G400, G401, G402
Institute code L34
Taught by Computing

University of Leicester