Maths in Computer Science. What I wish I knew before starting university, part 2
Damian has just graduated and is about to start working as a technical product manager at Net4. We asked him what he wished he had known before starting university and he has written four blog posts for us. In this second one he talks about the importance of maths in computer science.
Computer Science and Maths are incredibly closely linked, but during your school teaching you may not have experienced a lot of maths in computer science.
Maybe even the most complicated computer you’ve used in maths has been your calculator.
I’m not here to teach you how to do the maths you’re going to learn at University, instead, I want to show you a couple of the ways that the maths you learnt in school applies to computer science practically.
Statistics and Probability
If you’ve done a statistics module, you’ve probably seen this
Fortunately, applying statistics in computer science is a bit more exciting than a table of numbers. Statistics is the bedrock of machine-learning, so understanding the early concepts of statistics can play a huge role in understanding things like real-time object recognition and deep learning networks.
Machine Learning and by extension artificial intelligence has so many applications that this blog-post could be a dictionary, it can be used to help us solve abstract problems like helping healthcare providers to treat patients, to speech recognition (in fact, if you own an Alexa, Google Home, or even a normal smart-phone, you’ve probably experienced speech recognition in your day-to-day life!)
The basis of all artificial intelligence and machine learning is treating things like probabilities. Understanding the basics of how to use probabilities can be incredibly useful when you’re doing more detailed machine learning and artificial intelligence later on in your course.
To get a refresher, I’d recommend looking at the university MASH (Mathematics and Statistics Help) refresher for Probability 1 and Probability 2
It may seem strange, but understanding things like probability of dice rolls, means you can understand things like object detection and deeper machine learning concepts!
Vectors and Matrices
Vectors and matrices are incredibly important. In fact, the screen that you’re watching this on now is made due to matrices. By representing data in matrices, we can do things like calculate the edges of objects, predict digits based on images, and a host of other things.
Matrices are one of those concepts that apply almost everywhere when looking at detailed computer programming problems, so I’d recommend watching this video, which shows how matrices directly apply in almost constantly!
Understanding the maths behind vectors and matrices can help you a ton in your course, and you’ll have the ability to apply it!
Algebra
Understanding algebra can help you when dealing with algorithms, which are critical to a ton of computer science, from security to pathfinding. Algebra and algorithms are everywhere in your day-to-day. In fact, if you’ve ever used google, the way that pages are ranked are based on an algorithm
Understanding algebra leads on to understanding how these algorithms work and being able to implement them yourself, as well as design your own, so understanding the basics concepts of algebra, and being confident in them, can give you a great heads-up when dealing with more complicated algorithms later on in your course!
Sometimes it’s difficult to know exactly what to revise when wanting to get a quick refresher, so make sure to check out the MASH site, and see where you need a refresher.
This is just a tiny portion of the ways in which the math you learn in school applies to university, and to industry and research. The maths you learn at school directly lead on to the maths you learn at university, and the basics act like a foundation for the rest of your learning, so making sure you understand the concepts of mathematics can be a huge part of your later learning.
Computer Science is built on maths, and it’s going to be a large part of your next 3 years, but you’ll be able to get the tools and learning required to make some amazing stuff using it. Just to show you a few examples, here’s a demonstration of particle pollution using waves, represented in matrices. (All done using the maths you learnt at school!)
One of the amazing parts about computer science, is that the concepts you learn as abstracts in school, can be made into real and practical things, which is a great skill to have, and one of my favourite aspects of Computer Science!
Finally, there’s a couple of great YouTube channels that go over some detailed concepts that I’d recommend you check out
3 Blue 1 Brown – A channel that goes over loads of different maths concepts in interesting ways.
Computerphile - A great channel that interviews different lecturers and professors and explains different Computing based issues
Good luck with the rest of your degree, and make sure to get a quick maths refresher before you start!
Hi, I'm Damian, and I wanted to share some things that I wish I knew about starting University with you. There's a lot of little things that you end up picking up throughout the course, and from knowing what you might need buying a laptop to learning basic terminal skills, lots of things that I think it's really good to know before you get to uni.
I've just finished my integrated master's at the uni with a first, and I've gotten a job at Net4, an IoT and Visual Analytics company working as a technical product manager!
Over my time at the University I've competed in global programming competitions, been a finalist in the University Business Challenge, travelled to places like Paris for sports competitions and a host of other stuff, the opportunities you'll be able to experience at the Uni are huge and exciting, and I hope some of my content helps you through some of the skills that are incredibly helpful for your computer science course.
If you want to ask any further questions about Computer Science or any of the content I've sent, feel free to contact me, my website is dambem.github.io, and my linkedin is linkedin.com/in/bemben, feel free to send over questions!