Do You Need to Understand the Math Behind a System to Implement It?

A while ago, someone in a Discord server I’m in asked how much of the math behind a system you need to know to implement it. I thought it was an interesting question, and I felt qualified to answer it, so I ended up writing quite a lengthy response. It just occurred to me that it might also be useful to other people, so I thought I would clean it up a little bit and archive it here.

Read more...

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

Real-World Problems and a Crash Course to Graph Theory

In the first part of this talk, I made the case that theory is useful because it allows us to find (or at the very least, have the correct toolkit and language to explore) solutions to real-world problems. In this part, we are going to look at some examples of such problems and develop mathematical language to be able to discuss them more abstractly. I’ve put the term “real-world” in quotes in the title, because I’m going to be talking about these problems in a lot of generality. However, I want to stress that specific instances of these problems are actually relevant in industry, and I think it’ll be easy to see why once I start talking about them.
Read more...

The Nonfiction Spectrum

I write across multiple genres, but my main genre is Creative Nonfiction, which writers typically refer to as “CNF” for short. Unfortunately, I always end up having to explain what CNF is to people, because the common view of nonfiction seems to be that it’s entirely comprised of informative texts and academic essays (with maybe the occasional memoir slipped in).

Earlier today I was thinking about this, and I thought it would be really funny to place various types of “nonfiction writing” on a graph with labelled axes to prove my point. I present to you the “Nonfiction Spectrum”. On one axis, we have how “accessible” or easy to understand the text is; on the other, we have how “artistic” the presentation of the text is.

Read more...

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

Introduction and Big Ideas: Abstraction and Generalization

If you’re a computer science student, you probably had to take an introductory discrete math course at some point. Did you enjoy it? If so, this talk probably isn’t for you, so you can feel free to skip the rest. (Or not – hopefully you feel like you can still learn something from me!) Jokes aside, it’s actually okay not to enjoy your intro to discrete math course: like, personally, I loved mine, but I also completely hated my discrete probability course and would prefer never to see it again. But I pick on discrete math because I feel like if it’s taught well, it can be a turning point for many people, and it certainly was for me.
Read more...