CS+X

CS + Problem Solving

CS+X is all about diversity in the computer science field, encouraging participation
from underrepresented groups. But it is also about how computer science is used
in surprising and wonderful ways, designed to encourage exactly those groups which
can feel alienated from the stereotypical culture to give it a go.

I was privileged enough to be able to speak at the UC CS+X Festival run by CompSoc
(the UC Computing Society) this year. This is a student-run event which invites
speakers from many departments around the university to share how computer science
has influenced their work.

My talk was a very general talk, focussing on not a specific subject (I have been
fortunate enough to work with multiple different research groups around the university),
but on how ideas in computer science can enable problem solving at a higher level.
For this talk I spoke about what it means to solve a problem, and how computer
science has let us ask the question of what it actually means to solve a problem.
It has also enabled us to discover problems that simply cannot be solved, no matter
how hard we try, or problems that we cannot actually show are hard at all.

For a more concrete demonstration, I picked just one algorithm, and all the uses
it can have. My choice was normalised compression distance (NCD) with tree clustering,
a relatively obscure algorithm that takes on a very fundamental concept: what does
it mean for two things to be similar? NCD provides a surprisingly versatile
metric on a wide range of inputs, which can then be used by pretty much any
clustering algorithm available. I chose tree clustering because it is trivial to
visualise and not very complicated to program.

The slides for the talk are available
in PDF form,
and the code I used to generate
the tree of languages can be downloaded
as a ZIP folder.