All students undertake five computer science modules, which cover programming, the characteristics of computers and computing systems, and the mathematical foundations of the subject. Students are also introduced to the concept and philosophy of computational thinking and explore cutting-edge technological applications of recent research. Students study six modules covering a core set of topics. One module involves a team software development project and enables students to work with external not-for-profit or voluntary organisations within the region and gain practical software development experience. Other compulsory topics include, for example, computer networks, parallel and distributed computing, concurrency, data structures, algorithms, theory of computation, data compression, different programming paradigms, databases, systems programming, software engineering, human computer interaction, aspects of artificial intelligence, and computer graphics. The topics undertaken in the second year prepare students with an excellent grounding in a wide range of fundamental subjects within computer science, ready for subsequent specialisation in the third and fourth years. By the end of the second year all students are in a position to make informed judgements as to which particular aspects of the subject they might wish to focus on. Accredited by the British Computer Society, the Chartered Institute for IT for the purposes of fully meeting the academic requirement for registration as a Chartered IT Professional. Accredited by BCS, The Chartered Institute for IT on behalf of the Science Council for the purposes of partially meeting the academic requirement for registration as a Chartered Scientist.