The Grand Finale: Third year projects in Computer Science
For us BSc Computer Science students, this is our magnum opus. Our great work. Our pièce-de-résistance, in which we demonstrate that yes, we are actually learning from our degrees.
(I hope we are, anyway.)
Third year projects are big. They encompass most of our third year – the biggest piece of work most of us have done to date. And on top of that, we pick our own topics!
Let’s be clear: it’s more than your typical ‘dissertation’. More than just research and a written piece of work – and yes, we do submit a very long final report – most projects involve a practical element such as programming.
Want to develop some software, like a game or an app? Cool!
Want to investigate and compare some algorithms? Nice.
Want to do some research on creativity in CS education? What a coincidence! That’s what I did.
In this post, I’ll write a bit about my experience of doing a third-year project, with a particular focus on choosing a project. For a really good overview of the whole process, check out Ruth’s post.
Searching for a project topic and a supervisor
The thing about third year projects is that they sort of start in second year.
It was in the summer term (a.k.a. exam season) that we were asked to find a supervisor and register a project. I took to heart a very relevant proverb:
“The early bird catches the supervisor”. (Right?)
Why? To avoid running around like a headless chicken after exams – plus, some very popular supervisors get booked up fast! In fact, I wish I had started thinking about possible topic areas earlier in the spring term of second year.
The scope for a third year project is very broad. While the topics explored need to be related to Computer Science (or Discrete Mathematics, Data Science or Computer Systems Engineering) in some way, it’s worth noting that this is a VERY broad field.
There are number of places to find inspiration for a topic, including:
- Modules. I particularly enjoyed Visualisation and AI and was looking forward to doing Social Informatics.
- DCS’s research themes, which each have listed research areas. I could see that I was inclined towards ‘Artificial Intelligence and Human-Centred Computing’.
- Past third-year projects. We have access to examples of project titles/reports from previous years. I found some that I really liked, and that I was more inclined towards research projects rather than software engineering projects.
- Supervisors’ suggested research topics. I happened to find one that I wanted to take on, which helped me sort out my project and supervisor quite quickly.
I’ve seen such a large range of projects, including those that focus on developing software, on developing hardware, on developing experiments and analysing the results, and those that are more research based.
One difficulty with choosing project topics in second year is that they often include things we cover in third year – for a lot of people, this is Machine Learning, and for me, it was Social Informatics. Choosing to do a project on something you know nothing about seems scary, and so I think it’s easier at this point in the process to be able to consider “What is it that I want to be able to do?”, rather than “What can I currently do?” or “How can I do it”.
Feasibility is, of course, really important to consider, but I think that’s something that’s best discussed with a supervisor rather than discarding your hopes and dreams from the get-go. Also, registering a project doesn’t set it in stone – there’s time to change it.
The project title was “Creativity as an Outcome for CS students”. This, I think, was quite an unusual project as it was interdisciplinary and heavy on research. The project title had been suggested by my supervisor but was very broad, so I still got a lot of creative freedom to shape it to suit my interests.
Each project is unique. There is no common or correct way to approach it, as it very much depends on the topic. For example, the amount of reading needed may differ. Mine had a larger research/theoretical component, and so I disappeared down a rabbit hole of literature – I was really interested in my topic, so I have nobody to blame but myself for my inability to stop reading.
Another key consideration is the methodology used. Software development projects tend to use methodologies like Agile, Waterfall etc. I used a Design Science Research methodology, so a significant part of the project involved conducting both primary and secondary research to define a problem. About half of my project time was then spent developing a prototype of app and evaluating it.
The final hurrah
Particularly in the month running up to submission, I lived the life of an intellectual: lots of chocolate, more journal articles and less sleep.
I submitted the project at the start of the summer term in third year, and let me tell you that submitting that report (and code) was simultaneously exciting, terrifying, and a relief. I’m not a massive fan of theme parks (sorry), but I think this emotional roller coaster was worth it.
(Ok, that was a pretty terrible pun. I just wanted a roller coaster as a cover image, okay? I’m about to graduate – let me liveeeee 😀 )