The GCSE Computer Science course is a very demanding and academic course, focusing on the founding principles and practices of computation and in the design and development of computer systems. At GCSE level, students are introduced to the Central Processing Unit (CPU), computer memory and storage, wired and wireless networks, network topologies, system security, system software, computational thinking, algorithms and programming. At A level, the course is divided into two complementary parts: theory and programming. On the theory side, students study the internal workings of a computer, right down the basics of how data is stored along with other aspects of computer architecture. On the programming side, students learn a programming language (usually chosen by the school) from C#, Java, Pascal/Delphi, Python and Visual Basic.NET. The A level is assessed with two exam papers (each 40%), plus a practical project (20%) which will typically be done over a period of 3 months.