Programming is fun You no doubt have a phone, laptop, tablet and so on, your car may have a navigation system, park itself, and have surround-space scanners, and you may be able to control your heating from a mobile. All of these cool devices work using program code. At the heart of coding such systems are state-of-the-art technologies including Android, C, Java, JavaScript, Python, PHP, Prolog and R, and programme development environments such as Eclipse. At Leicester you will be taught to program in a selection of these languages, and have opportunities to learn others in project work. Programming will include mobile and web applications and technologies. Software Engineering covers the methods for developing software, following rigorous engineering practices and meeting required levels of quality. 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 computer solution, and test and release your solution to your customer. You will learn software modelling techniques such as UML, business concepts such as project management, and techniques for developing innovations in technology. 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, along with distributed systems and applications.