1. Why this program? Why Imperial?
This program is very unique since it brings together people with different backgrounds but share a passion for computer science, programming as well as research. Having people from all kinds of academic and industry backgrounds means that you also pick up a lot of knowledge outside of “just” computer science.
Imperial is a great place for this as well - being based in London, Imperial’s Computing department has remarkable industry links with applied industry talks taking place almost every week which allows you to link course theory to industry applications and establish the right contacts for your time after the degree.
2. What did you do before the program?
I started the program straight after my undergraduate degree at the London School of Economics, where I soon realised that I was much more interested in statistics and its applications than the economics/business side of things. In turn, I took many statistics courses and started getting more and more into programming along the way which led me to apply for this course during my final year.
3. What coding experience did you have when you started?
Only programming knowledge in languages that were not very relevant to this course (e.g. HTML, php). I read a lot about different languages during university, but never went beyond the casual coursera course for them (JS, Python). Once I knew that I was accepted, I started programming more and more in C++ (main OOD language required for the degree) in the build up to the course.
4. What did you like best about the program?
I think it’s one of the few programs that really gives you the option to a) gain a holistic understanding of computer science in a very short amount of time and b) still allows you to heavily specialise during the end of the course in your research projects. Seeing the high quality of research topics people worked on after just one year of formal CS studies was remarkable.
5. What did you find most challenging about the program?
Although this is difficult to pin down on a single aspect, I personally found the Networks and Web Security module particularly challenging. The module requires you to not only know a suite of different programming languages, but also be aware of their weaknesses in order to identify vulnerabilities and exploit them. Some of these things tend to be very specific and may require a lot of of WebDev/Network Architecture experience to know about, hence are difficult to pick up in a single module. However, the learning curve was incredibly steep in this one.
6. What did you learn or do that you are most proud of?
My final project about natural language processing for hate speech detection yielded some very cool results towards the end. For this, I developed a range of data augmentation techniques for text data to boost performance of hate speech detection models. This went as far as purposely training racist language models to generate more hate speech samples. I will present the paper resulting from this at ACM CIKM in Beijing this year, which marks a great end to the work I did during the MSc.
7. What was your ideal next step as the program was completing and what are you doing now?
I currently work as a Data Scientist for a consulting company, which seemed to be a healthy mix of all the things I was interested in. I knew I didn’t want to be a full-time software engineer, but still work on technical and intellectually challenging problems, while still being in client contact. Specialising in Machine Learning for the last ~6 months of the course definitely helped in landing this job and reassured me that this is what I wanted to do.
8. Anything else you would like to tell people who are considering this program?
Really make sure that you are truly interested in gaining a full understanding of computer science and not because current media influences tell you that “tech is cool”. The course is a lot of work and can be very frustrating at times, so be prepared to fail in a lot of things along the way.