The Beginning of the End

As part of 3rd year Computer Science at Cambridge, everyone must complete a “Part II Project” which culminates in the Bachelor’s dissertation and forms 25% of the final grade. As this is something that has been constantly eating away significant portions of my time for the past few weeks and will continue to do so for several months to come, I’ve decided to make this blog about it.

The format of a Computer Science dissertation is quite focused on the practical side of the subject. The project must be some form of hardware or software implementation, where the dissertation is just a write-up of what you did, how you did it and why, outlining the development experience as a journey from preparations at the start to a rigorous quantitative evaluation at the end. Ironically, it is the write-up itself that is the most important, even though that happens only in the last few weeks before submission. The source code is handed in too, but only as an appendix, and in most cases the examiners won’t bother reading any of the code, let alone running it.

Personally I think that such a practical project is an excellent thing to have as a graded component. In previous years, there were some practical programming tasks (known as ‘ticks’), but those were conducted under a pass or fail system, where everyone was expected to pass. In my view, this did about the bare minimum to give students practical experience, but obviously did not encourage doing anything more than what was required to receive the pass, for which the bar is set quite low. However now that quality is rewarded, it motivates more effort to be put in, which ultimately makes for a better learning experience.

Arguably the hardest part of the project is its initial stages of finding a suitable topic as well as a supervisor, which must be done before the start of first term. I was lucky enough to not have to look far for a fantastic supervisor who had an interesting project ready to go, but I appreciate this would’ve been a struggle for most of my peers. My project is be about automatically generating commutative diagrams, which are a type of graph used in the niche area of Mathematics - Category Theory. The aim is to create a tool that will make typesetting these graphs much simpler, as current methods are quite inflexible and very slow. The actually interesting part of the project will be using some artificial intelligence techniques to find an optimum layout for the graph that will maximise its aesthetic quality. To what degree this will be a success remains to be seen, but in theory, the hardest part is now over.

More blog articles

All news