*(terms and conditions apply)
It can often be quite perplexing trying to decide whether it’s a good idea to take CS at A-Level if you want to study it at university. From my own experience, I can tell you that it is not essential, though could in some cases be beneficial. I am currently in my second quarter of study at UCLA, majoring in computer science after having studied A-Level CS. At UCLA at least (if not most colleges in the US) you will not struggle if you have not taken A-Level CS, and this is for a few reasons.
The key difference between an American and British university education is how unbelievably modular the American system is — I get to choose whichever classes I take every academic quarter (so 3 times a year, though most American universities are semester-based and have 2 different class picks every year) and I can really take anything I want. So long as I fulfill all my major requirement classes within 4 years (which the curriculum is designed for, but you may be able to complete it in fewer or more years). Essentially, this means there are a lot of different options for CS classes at university, and at UCLA, we have 2 starting options for classes from which you can self-evaluate where you are. If you have written programmes in any language that have used arrays or an equivalent, and written a function that takes multiple parameters, you can start with CS31, else it is recommended that you take CS30. The striking thing about this is you would even meet that requirement after GCSE CS, just some food for thought. While I can only speak resolutely about UCLA, I know most universities offer some sort of beginner class and an intermediate one that allows you to determine where you start. Taking CS30 isn’t even that bad since you just take CS31 the next quarter and given that we take about 3–4 classes a quarter, it’s not large a gap to stitch together.
That being said, CS at A-Level did offer me some benefits, and I could breeze through the first half of CS31. Most of it is things you would have done in Python before (think loops, conditions, functions), although even if you have a general idea of things, it is hard to C++ is a much stricter language than Python and you will learn about things in CS31 that you probably never knew existed (pointers for one). What has arguably helped me more at university than A-Level CS is A-Level Further Maths, which not only allowed me to skip 2 calculus courses, but also set me up for courses that I will take over the next couple of years including linear algebra and differential equations. Please let it be clear that I am not equating that you need to study further maths in Sixth Form to succeed at CS in university, but I would be lying if I said it hasn’t made things easier. To give you an image of computer science at university for me so far, it has been a step up from the programming side of the A-Level but there has been no theory so far (at least the sort of theory you would associate with A-Level CS). Whatever theory is present in my courses has so far normally been related to programming theory and is ALWAYS applied to programmes that we build.
To conclude, I would not discourage you from taking A-Level CS. It is a high workload subject, especially the NEA, but with good time management, you should be just about alright. It has certainly come in handy with some elements like stacks and queues, but it’s nothing you cannot learn at university. Overall, A-Level CS is by no means mandatory, and I would say if you are conflicted about taking this versus another subject, take the other, because it’s a lot easier to make up the ground in CS (in the US at least) than other subjects since university CS only draws on a few elements of the A-Level (again, specific to the UCLA curriculum I have encountered so far). I’ll be honest, the NEA has not proven to be of any use so far, but I’ll hold my tongue until I finish my degree. Godspeed young DC child, and if you need any advice just ask Mr Wood for my email or phone number. In the meantime: work hard, play hard.