Areas in Computer Science that I think are particularly awesome
This is a self-indulgent post in which I talk about some things in CS that I find particularly interesting. I’m sticking to stuff that’s covered in modules on our Computer Science course.
It’s been a long week and my third-year project presentation is coming up, so while I do hope that this will be informative to you, it is also therapy for me. Could it also be perceived as procrastination? Perhaps.
Mobile Robotics and Computer Graphics
Computer Graphics was one of the first things that got me interested in CS – in fact, it was on my personal statement. Instead of rendering with paint, we use maths and physics (e.g. knowing how light behaves, particle systems).
Computer Graphics is a third-year module. I had the joy of making a bubble screensaver for my coursework using OpenGL. How cool is that?
(And beware, this area of CS has a collective obsession with teapots.)
Mobile Robotics has some overlaps with graphics in terms of the theory behind computer vision, but that’s only one part of it. While toddlers generally learn how to avoid obstacles by themselves, robots are pretty rubbish at it when left to their own devices. A lot of mobile robotics is about how a robot can figure out where it is, which is surprisingly tricky.
Mobile robotics is also a third-year module. As we’re online this term, we’re programming a virtual robot using Robot Operating System (ROS). I’m pretty sure my robot is actually a rebellious teenager with its own will – and possibly drunk, considering its difficulty with walking in a straight line.
AI, ML and Neural Computing
Deep Learning and Neural Computing.
Can you hear that buzzing sound? It’s from the concentration of buzzwords in this section.
Of course, when a lot of people think about CS, they think about AI. Companies love machine learning and deep learning. It’s actually amazing to think about the impact technologies have had on our everyday lives. For people who love statistics and data, this is the place to be.
Cybersecurity and Digital Forensics
Did anyone else want to be a spy when they were younger?
Ok, so cybersecurity is not an underdog in CS. In fact, it’s something prospective students often ask about during open days. However, I would like to highlight some perhaps less well-known parts of cybersecurity that I find really cool.
Cybersecurity is taught in second year. I have fond memories of working out how to decrypt the lecture slides every week in order to access them. Such drama!
A particularly cool bit of cybersecurity is called ‘social engineering’, which is basically about hacking people’s minds rather than computers.
Digital Forensics is a third-year module, which I think is so interesting and relevant to the world today, in which we’re swamped with photoshopped images and deep fakes.
As I’ve mentioned in another post, a mistake that’s easy to make is to believe that Computer Science is the same as Software Engineering. It’s not.
We have one proper Software Engineering module on our course in second year, and it’s a pretty hefty module. In order to get a sense of what it is like building software for an actual company, we have a group software project that is run in collaboration with an industrial partner. In my second year, we worked in teams to build a web app according to a brief by Deutsche Bank. This has been such a useful experience to bring up in interviews.
Formal Languages and Compiler Design
This one surprised me. I’m generally not drawn towards the theoretical part of Computer Science, but I did find Formal Languages really fascinating! It’s got some links to linguistics, and I think that anyone who has an interest in languages (whether that is of the real or programming variety) would find this interesting.
Compiler Design basically applies the theory in Formal Languages, and I must say that of all the modules in my degree, building a compiler for the coursework really made me feel like a Computer Scientist.
This is the part of CS that I hope to pursue further after my degree. Social informatics is interdisciplinary, which basically means that it refuses to be confined to one particular discipline.
We sit on the boundary between CS, sociology and psychology – basically putting the humans back into Computer Science. As enjoyable as studying computers is, I’m particularly interested in the interactions between computers and humans, as well as the use of technology in social contexts such as the workplace.
The social informatics module is in third year.
There’s quite a lot to like
So that’s a brief tour of stuff I like about Computer Science. As you may be able to tell, I’m quite a design-oriented person with a slight penchant for straying into the social sciences, and so its the interdisciplinary parts of CS that I’m drawn to.
The great thing about CS is that is such a broad area, and so there’s something for everyone. People who are much more maths-y may be drawn to the theoretical aspects of CS – or, they may do a Discrete Maths degree. Some who are more science-y may prefer other parts. There’s stuff for more engineering-y people as well – and the really dedicated ones may do a Computer Systems Engineering degree.
So really, there’s quite a lot to like in CS! 🙂