I’m currently studying computer science at the university of oxford which basically means that i wake up in the morning with my gown on proceed to sing a national anthem as proud of my morning routine then do some coding whilst drinking some wine then have enough of my scheduled time i’m just joking kinda in this Article.
i thought i’d share with everyone what i’ve done so far in my computer science degree at oxford but before i do that let me share with you guys why i actually chose to study computer science so i went through the uk educational system which meant i needed a levels those a levels for maths further maths computer science and physics now the reason why i chose those a levels is .
i pretty much kind of like knew that i wanted to study computer science university and those a levels like allowed me to basically apply to any computer science uni i did a lot of coding projects whilst i was at school that kind of like consolidated my interest in computer science that included making a chess ai in java .
which used the mini max algorithm for move determination i also chose those a levels to make sure that there was no way i could apply to do medicine which is what my immigrant indian parents really wanted me to do i eventually got an offer for computer science in oxford the offer was a star a a which as you might notice meant that.
i didn’t need to care about one of my a-levels which was really great in physics i was able to meet that offer and that now brings me to my first year of computer science so in my first year all my courses were compulsory which basically means i had no choice in my first term or semester for all the americans out there .
i had to take four courses and those courses were linear algebra discrete maths probability and functional programming now i remember being really confused by what linear algebra actually was because like i always kind of just assumed it was x plus one equals two or whatever but it turns out that actually involves a lot more things like you know vector spaces matrices all that jazz i’m not really sure .
how much of that stuff i’m actually going to use in the future? but yeah discrete math was basically like combinatorics functions relations like just just more maths and probability was also more maths probability was like a fairly nice course .
they kind of started from the basics it was just well taught functional programming on the other hand what the was going on there we used a language called haskell which for those of you who aren’t familiar with is basically unlike any regular programming language .
doesn’t really have any variables everything is a constant while loops for loops if else statements they don’t exist in functional programming okay in functional programming everything is a function and you basically use stuff like maps and folds and filters and just a bunch of other stuff that you never see in normal programming languages.
you may be wondering why we learned that first instead of like you know a normal programming language and to be honest i don’t know i i don’t know to be fair once you get the hang of it it actually allows you to write code that’s a lot more like efficient and compact but it was really confusing especially for someone who has only really dealt with like normal programming languages moving on to term two so for the second term.
i had to take another three compulsory courses those being imperative programming digital systems and continuous maths now thank that was finally a regular programming language course because otherwise no tech company would ever hire me now in the imperator programming course .
i learned a lot of fundamental programming concepts such as oop time complexity a lot of different data structures such as trees stacks cues hash tables that kind of thing basically everything you need to know to prepare for a coding interview which is pretty nice we use a language called scala and if you’ve never heard of that language before then don’t worry because nor had i i’m not sure why we chose to use that language for comparison purposes though it’s quite similar to java.
if you are remotely interested now for digital systems we basically coded an assembly language to a microcontroller called the micro bit now the micro bit is basically an arduino except it’s made by the bbc and don’t ask me why the bbc manufactures microcontrollers it was a very fun course though and that’s for continuous maths well .
that course was just really hard it was basically a course on calculus so differentiation and integration except for the integration we didn’t actually do normal integration we did something called numerical integration which is basically an algorithmic approach to approximating integral um it was just really confusing i.
i still don’t understand it as my first exams well i didn’t have any because i’ve covered so ignoring like you know all the tragic aspects of the coronavirus like it honestly really helps me get through first year and that takes us the second year now for the first time of second year i had to take two compulsory courses those being models of computation and compilers .
now models of computation was actually a pretty fun course it was basically about like automata and turing machines and like you know the boundaries of computation is it possible to given a certain problem algorithmically decide whether or not it accepts a certain solution that’s the kind of stuff you get to prove or disprove or just get really confused about in this course .
will i ever use this stuff in the future absolutely every software engineer working a 9 to 5 day job needs to know about turing machines now compilers as the name might suggest was learning about how a compiler works in particular the primary stages involved in converting a piece of code to a sequence of binary ones and zeros the main annoying thing about this course was that.
we learnt in depth about a compiler that the lecturer actually made for the course which meant that if you had any questions you couldn’t search it up online and you had to actually like email the lecturer and the lecturer never reply to my emails yeah i also had to do one optional course and i chose to do machine learning which is literally one of the dumbest decisions .
i’ve ever made in my life the only reason i chose to do it is because i felt that like every computer science student needs to do machine learning at some point which is not true okay that is not true don’t do machine learning unless you know what you’re in for okay don’t do it unless you are prepared for the brutality .
that is the machine learning course get off my screen but anyway moving on to term two so in term two i again had two compulsory courses and those courses were concurrent programming and algorithms and data structures now i know what you’re thinking but no concurrent programming is not the same as parallel programming in parallel programming you have multiple programs .
that are physically running simultaneously whereas in concurrent programming you actually have multiple programs that run an interleaved manner that is that the operations of the programs basically run together in like a jumbled order such that only one operation actually ever occurs at a given moment in time so that is you can run multiple programs concurrently on a single cpu core but you can’t actually run multiple programs in parallel on a single cpu core knowledge that course was actually pretty nice mainly .
it’s just like coding in it algorithms and data structures on the other hand was really annoying basically all the useful algorithms and data structures are like actually taught in the first year imperative programming course and so like all the other stuff that you don’t need for like any coding interviews or to be honest for like any software engineering jobs are then just kind of like compiled together and just pushed into this course .
which basically means you learn like a load of like pretty much useless stuff and it’s really hard so i didn’t i did not like this course i also took an optional course that term and i chose to take a course called computers in society which was actually an essay-based course now i know that sounds crazy okay because i know you know computer scientists like they they can’t write but basically each essay you had to write was based on like an ethical issue in computer science such as you know like do algorithms called systematic racism how can we trust machine learning honestly.
it was really fun like having that contrast to learning about algorithms which is quite mundane and a lot of effort and then just being able to like pretty much waffle about like any kind of ethical topic in computer science it was really fun i really enjoyed it it was quite low effort i was also involved in a group project that term we did the project with a company called trade eq the project involved creating machine learning models and i .
i know machine learning like yeah just get those things on my screen but basically we designed models to predict whether a given company would be like successful or not pretty much a tool that investors would want to use to determine whether or not they’d want to like actually invest in the company .
we made many machine learning models including a logistic regression model a neural network model a k-nearest neighbors model which was really funny because that model took like literally forever to make any prediction and was genuinely like the stupidest model to use for the problem but then we had to actually attack those models using something called an adversarial attack pattern which is basically where we would create a company?
that like actually sucks us but we would like just modify the parameters to like exploit the machine learning model so that the model would actually predict that the company would be successful as opposed to being a complete piece of now in this project.
i think the main thing i learned was that coding machine learning is significantly easier than understanding what the is going on like behind the scenes and that pretty much sums up my computer science degree so far because i am in fact at the end of second year right now but for those of you.
who are wondering the entirety of next year? so third year will be completely optional content and i’m going to be taking six optional courses which i’m not going to individually go through because that will take forever but i will just flash it up on the screen now but yeah.
i hope you guys enjoyed this summary of my degree so far if you have any questions at all then please do leave them in the comments down below i will be replying to literally every single comment on this articleso if this gets a lot of views then i’m kind of but we’ll see how it goes but thanks for reading and i’ll see you guys next .