A level Computer science is split into two complementary sections, programming and theory. On the programming side of the course, students can learn a programming language (chosen by your teachers from C#, Java, Pascal/Delphi, Python and VB.Net). You will cover the fundamentals of programming, data structures, algorithms, and object-orientated programme design.
The theory side of computer science teaches about the internal workings of a computer, right down the basics of how all data is stored using binary, whether that data consists of numbers, text, pictures or even music. It goes on from there to cover aspects of computer architecture, showing exactly how data is accessed from main memory using assembly language instructions and the fetch-execute cycle.
As well as covering programming the course aims to promote good programming practices such as avoiding global variables, sensible variable naming, structured programming, good re-use of code through procedures and functions, and proper commenting of code. It also covers higher level concepts such as the social and legal impact of computers, and how to go about breaking down a big problem into individual programmable steps.
The A level Computer science course consists of work towards two exam papers, both worth 40% of the whole, plus non-exam assessment worth 20% which will typically be done over a period of about 3 months.
The first exam is a programming test, which some exam boards, such as the AQA, like to do using an on-screen exam. This will test your ability to solve problems as much as it will test your technical knowledge of the programming language you have learned.
The second exam tests theory and is a written exam. Questions are designed to test your knowledge of computer systems, how they are formed, the social and legal parts of computing, communication, networking and databases.
For the non-exam assessment you pick your own project which must have a significant programming element. You will create a program to solve a problem, such as writing a computer game, making a mobile phone application or doing an investigation into machine learning. There is no restriction on programming language used in the project, so you could use Swift, Objective C, C++ or any other language you wanted to do your project. However, drag-and-drop languages, such as Scratch, are not allowed. When writing coursework you won’t just be expected to produce working code, but will be expected to write good, well structured working code.