This course provides a thorough grounding in the fundamentals of computer science with opportunities to specialise in application areas while gaining skills in system development and enterprise. Core ideas are introduced in years one and two. You will cover programming and algorithms, how a modern computer works, computational theory, how to design programming languages, concurrent systems and networks, and machine learning. You will also undertake a group project in year two, working in a team to deliver an application to a client, with help from an industry mentor. You can also take options in human-computer interaction and complexity theory, as well as open units from across the University. In year three you specialise in application areas and undertake a group project to develop an interactive game, working with industry mentors. You specialise further in year four and also undertake a full-time individual or group project, with opportunities to work with industry and research partners.