Preparing for Computer Science
One does not simply walk into the Department of Computer Science.
Those who embark on this journey must have ingenuity, wit and self-discipline. The rewards are great: you will have the power to solve problems using your bare hands. And code. Lots of code. But not just code.
Here’s a guide to preparing to venture into the Shire*.
*(As in Warwickshire, where you will find a humble town called Warwick. Alas, Warwick Uni is actually in Coventry… and doesn’t that just ruin everything? But I will go down with this pun even as it crashes and burns.)
What to bring with you
Bring your brain. That really helps.
You will need to draw upon your training from school. In particular, pack your A level Maths – and if you have it, your Further Maths. Further Maths will be particularly useful during your journey, but don’t fret if you do not have it; you may pick it up along the way.
If you did Decision Maths as part of A level Maths / Further Maths, this will come in handy – if you haven’t, I would recommend having a look at what those modules cover. One can even practise programming by implementing algorithms covered in Decision Maths, such as sorting.
Of course, if you did Computer Science A level, you’ll have an understanding of concepts in CS, which – surprise, surprise – is quite useful. I didn’t do Computer Science A level (but I did do Computing GCSE) which means that I have to learn a bit more theory to learn as I go along, but it’s manageable.
If you haven’t studied CS before, it may be useful to look into the following over the summer:
· Data representation (binary and other bases)
· Boolean logic
· Basic data structures (e.g. arrays)
These are covered in first year, but I think that a basic understanding of the above will really help from the beginning.
If you have been on programming quests before, you will have an idea of how to complete them. It’s best to bring some Java with you, as you’ll need it from the get-go. Java is taught in Programming for Computer Scientists, though the pace might be a bit fast if you’re completely new to programming. You can learn Java from the oracle that is the web (I used SoloLearn).
What to do to be MEGA prepared
To navigate our lab computers, you will need to know how to use Linux. We are taught how to do this in Professional Skills in first year, but this is one of those things that you learn out of necessity to get other stuff done.
Naturally, the command line is our friend (GUIs? Pfft), so learning basic UNIX commands in advance will mean that when the time comes, you’ll take to Linux like a duck takes to water.
(And you’ll be able to make that comparison by looking at the ducks outside the lab windows)
For those using macOS, practising UNIX is easy; just open the Terminal and go wild. It’s a bit trickier if you want to practise on Windows; there are multiple ways to work around this, including running Linux on a Virtual Machine or using Windows Subsystem for Linux.
If you’re rearing to fight some battles early, have a look at discrete maths, which underpins CS. Personally, I found learning discrete maths the most challenging part of first year as it is something that isn’t really taught in A level Maths and involves a lot of new notation – so if you are looking to get a head start and challenge yourself over the summer, there you go.
For an idea of the sort of maths covered in our course, take a look at Mathematics for Computer Scientists I and Mathematics for Computer Scientists II. Please don’t worry if some things look complicated – I promise you that there will come a point when they look less scary. That is, after all, the point of going to uni!
For those of you who want to level up their programming, I would recommend looking up best programming practices. After all, no good ever came from throwing knives with two hands.
So, there you have it. I hope this helps you prepare for the journey ahead – good luck!
For more on preparing for CS and general university life, check out this post by Ruth. 🙂
Cover is a derivative of Wikimedia commons photo / CC BY-SA 4.0