During second semester I studied a module called ‘Distributed Systems’, the partner module to ‘Internet Principles’ from first semester. It doesn’t sound the most interesting but I was keen to study it, especially as I began to realise how frequently the phrase ‘distributed system’ came up in almost every other module. From ‘Database Development’ to ‘Advanced Object-Oriented Programming in Java’, every lecturer seemed to be bringing up this topic. It seemed a good idea to gain a real understanding of it.
Although this module turned out to be far from my favourite, it has given me a solid basis in topics such as leader election algorithms, network communications, fault tolerance, and DNS. None of these are concepts which I would have decided to study of my own accord, which really makes me appreciate the opportunities given to me during my University studies.