Why Does Theory Matter in Computer Science? (Meta-Commentary)

Note on the Making (Writing?) of this Talk/Series

When I first started doing this writeup, I did not expect to still be working on it 6 months later. Finishing this was a long, long overdue task for a while. This is the second write-up I’ve done of a talk I’ve given. The first one I did was for “How to be a Talentless Hack in Public”, which I published in zine form first, before then publishing the text on this blog several months later.
Read more...

Getting to the End of the Thought; or, Why Write in the Age of AI?

I’ve been thinking a lot about the value of writing recently, especially in regard to how it’s been influenced by the advent of generative AI. In the past few months, I’ve had a lot of conversations in which people claimed that generative AI is just as good at writing as humans now, or better, in many cases. While I agree that AI generation tools are, at this point, better at the mechanics of writing than the average person, I have always found their outputs to be shallow and devoid of interesting surprises.
Read more...

Why Does Theory Matter in Computer Science? (Part 5)

References, Resources, and Further Reading

Here is a long list of sources I consulted at various points while doing research for this project. As it might have become clear through reading the previous installments of this series, this was more a talk about the densest subgraph problem than it was about theory being useful in computer science. There are a few reasons for that, which I might explain in more detail at some point in the future. This means that I presented a lot of information that I borrowed from other people! Here’s an annotated bibliography of sorts, in case you were interested in going deeper, for whatever reason.
Read more...

Why Does Theory Matter in Computer Science? (Part 4)

Set Functions, Supermodularity and the Densest Supermodular Set Problem

In Part 3, we discussed the densest subgraph problem (DSP) and some algorithms for solving it. In this section, we’ll be looking at how we can generalize this problem and those algorithms to solve some other problems. This is the part of the talk where I will introduce some fancy new math I had to learn in order to understand how one might generalize iterative peeling to solve adjacent problems.
Read more...

You Need to Be Proactive

One of the things that has been repeatedly drilled into me over the past year or so is the fact that if you want people to do things for you, you’re most likely going to have to harass them. (I don’t mean literal harassment, by the way – please don’t commit a criminal offense and say I encouraged you.) This is true especially when working with highly busy people like managers and professors. If you want something, you can’t just assume they’ll intuit that and give it to you – you have to ask (and assume they’ll forget, then ask them again). If you need them to do something for you, you’ll need to remind them, and inform them of the deadline, likely multiple times. Everyone has their own problems to worry about and the thing you need might not be top of mind. The burden of remembering is on you.

Read more...