<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Notes on rkempe’s blog</title>
    <link>https://blog.rkempe.ca/categories/notes/</link>
    <description>Recent content in Notes on rkempe’s blog</description>
    <generator>Hugo</generator>
    <language>en-ca</language>
    <copyright>&amp;copy; Copyright 2026 Rebecca Kempe</copyright>
    <lastBuildDate>Sat, 24 Jan 2026 21:54:14 -0500</lastBuildDate>
    <atom:link href="https://blog.rkempe.ca/categories/notes/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Types of Questions (Part 1)</title>
      <link>https://blog.rkempe.ca/posts/2026/01/types-of-questions-part-1/</link>
      <pubDate>Sat, 24 Jan 2026 21:54:14 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2026/01/types-of-questions-part-1/</guid>
      <description>I think the way we teach kids to think about and categorize questions is completely wrong. If I think back to any time I’ve been taught about questions formally, I’ve always been taught to think about the 5 W’s: Who, What, Where, When, Why &amp;ndash; and the H: How? These are perfectly good questions to focus on if you’re a journalist writing a news story, but most of us are not journalists, and I’ve found a broader range of questions to be useful or relevant in my day-to-day life.</description>
    </item>
    <item>
      <title>(Computer-)Scientific Abstracts, As Analyzed by a Confused Undergrad</title>
      <link>https://blog.rkempe.ca/posts/2025/07/computer-scientific-abstracts-as-analyzed-by-a-confused-undergrad/</link>
      <pubDate>Fri, 04 Jul 2025 19:42:17 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/07/computer-scientific-abstracts-as-analyzed-by-a-confused-undergrad/</guid>
      <description>I recently decided I wanted try presenting my work at an academic conference, so I had to write and submit an abstract for my proposed presentation. The problem, of course, was that I had no idea how to write a scientific abstract, which was a bit of a problem. Most of the advice I received and could find online was too vague for my taste, so I decided to take matters into my own hands and deconstruct some abstracts to see how those authors did it. And I’m really glad I did, because it was very enlightening.</description>
    </item>
    <item>
      <title>Quick Thoughts From the First Academic Conference I Attended (Like, a Year Ago)</title>
      <link>https://blog.rkempe.ca/posts/2025/07/quick-thoughts-from-the-first-academic-conference-i-attended-like-a-year-ago/</link>
      <pubDate>Tue, 01 Jul 2025 16:39:19 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/07/quick-thoughts-from-the-first-academic-conference-i-attended-like-a-year-ago/</guid>
      <description>&lt;p&gt;I think the best thing to do as an undergrad at a conference is to be observant, since it’s pretty low-stakes at that point. Part of doing this is to see how academics interact to see whether or not you want to do this. What do people wear, how do they speak, what do they talk about, etc.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;If you can, ask questions of the speakers after talks! Asking good questions during sessions is powerful (it gets you noticed!)&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ol start=&#34;2&#34;&gt;&#xA;&lt;li&gt;There seems to be a rough heuristic that you have to be a decent-ish speaker to become a professor.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; (Virtually all of the professors I listened to were strong speakers; the grad students and post docs were a mixed bag.)&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;ol start=&#34;3&#34;&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;If you can, introduce yourself to people and join conversations; try to fully be a participant.&lt;/p&gt;</description>
    </item>
    <item>
      <title>What Doing My First (Short) Math Lecture Taught Me</title>
      <link>https://blog.rkempe.ca/posts/2025/06/what-doing-my-first-short-math-lecture-taught-me/</link>
      <pubDate>Sun, 29 Jun 2025 13:02:46 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/06/what-doing-my-first-short-math-lecture-taught-me/</guid>
      <description>For context, these are some things I learned in the process of putting together and delivering a guest lecture to a first-year discrete math course last summer. The talk was about the research I was doing at the time, and I was allotted about half an hour for the presentation. Again, I meant to write and post this last year, but clearly that didn’t happen.</description>
    </item>
    <item>
      <title>Lessons I Learned During My Undergraduate Research Internship</title>
      <link>https://blog.rkempe.ca/posts/2025/06/lessons-i-learned-during-my-undergraduate-research-internship/</link>
      <pubDate>Fri, 27 Jun 2025 23:37:43 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/06/lessons-i-learned-during-my-undergraduate-research-internship/</guid>
      <description>I really meant to put this list up sometime last fall… whoops. (This is yet another incredibly overdue article.) Anyway, here are a whole bunch of things I learned while attempting to “do research” last summer, whatever &lt;em&gt;that&lt;/em&gt; means. The big theme here is to &lt;em&gt;make life easier for future you&lt;/em&gt;, who will have to wrangle together your several months of chaos and exploration into a rigorous and coherent narrative. Present you can help by being organized and breaking things down into smaller, documentable steps.</description>
    </item>
    <item>
      <title>Why Does Theory Matter in Computer Science? (Part 5)</title>
      <link>https://blog.rkempe.ca/posts/2025/05/why-does-theory-matter-in-computer-science-part-5/</link>
      <pubDate>Thu, 22 May 2025 21:34:31 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/05/why-does-theory-matter-in-computer-science-part-5/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Why Does Theory Matter in Computer Science? (Part 4)</title>
      <link>https://blog.rkempe.ca/posts/2025/05/why-does-theory-matter-in-computer-science-part-4/</link>
      <pubDate>Thu, 22 May 2025 21:28:43 -0400</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/05/why-does-theory-matter-in-computer-science-part-4/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Why Does Theory Matter in Computer Science? (Part 3)</title>
      <link>https://blog.rkempe.ca/posts/2025/02/why-does-theory-matter-in-computer-science-part-3/</link>
      <pubDate>Thu, 13 Feb 2025 23:17:01 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/02/why-does-theory-matter-in-computer-science-part-3/</guid>
      <description>In Part 2 of this talk, we gave a crash course to graph theory and showed how we can use it to view some real-world problems as instances of the densest subgraph problem (DSP). But what exactly is the DSP? If you’ve studied graph theory, you may have heard of something called the Maximum Clique Problem. The goal of the max clique problem is to find the largest complete subgraph in a graph. If we consider our vertices to be people, and edges to represent a friendship relationship between two people, in the max clique problem we are trying to find the largest friend group in a community.</description>
    </item>
    <item>
      <title>COMP 4108 Notes, Chapter 1: Security Principles and Why Security is Hard</title>
      <link>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-principles/</link>
      <pubDate>Sun, 09 Feb 2025 00:56:10 -0500</pubDate>
      <guid>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-principles/</guid>
      <description>Simplicity and necessity: designs should be as simple and small as possible. Minimize functionality, favour minimal installs, and disable unused functionality. Aka: minimize the attack surface. Safe defaults: deny-by-default. Design systems to fail closed (denying access) and favour allowlists over denylists.</description>
    </item>
    <item>
      <title>COMP 4108 Notes, Chapter 1: Important Ideas</title>
      <link>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-important-ideas/</link>
      <pubDate>Sun, 09 Feb 2025 00:03:10 -0500</pubDate>
      <guid>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-important-ideas/</guid>
      <description>When we study computer and internet security (aka cybersecurity, in most circles), we are primarily interested in how people interact with software, computer systems, and networks, and in how they can be misused by various agents. We are typically not concerned with unintentional mistakes or other types of damages (such as a network failure cause by an outage or a natural disaster).</description>
    </item>
    <item>
      <title>COMP 4108 Notes, Chapter 1: Definitions</title>
      <link>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-definitions/</link>
      <pubDate>Sun, 09 Feb 2025 00:01:10 -0500</pubDate>
      <guid>https://blog.rkempe.ca/resources/comp-4108-notes/chapter-1-definitions/</guid>
      <description>computer and Internet security: the combined art, science, and engineering practice of protecting software, computers, networks, the data stored on them, the information transmitted on/between them, and the physical devices/machines they control from intentional misuse by an unauthorized party.</description>
    </item>
    <item>
      <title>Why Does Theory Matter in Computer Science? (Part 2)</title>
      <link>https://blog.rkempe.ca/posts/2025/01/why-does-theory-matter-in-computer-science-part-2/</link>
      <pubDate>Fri, 24 Jan 2025 12:47:46 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2025/01/why-does-theory-matter-in-computer-science-part-2/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>Research Papers Shouldn’t Be Read in Order; or, How to Read a Research Paper</title>
      <link>https://blog.rkempe.ca/posts/2024/12/research-papers-shouldnt-be-read-in-order-or-how-to-read-a-research-paper/</link>
      <pubDate>Mon, 30 Dec 2024 13:44:15 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/12/research-papers-shouldnt-be-read-in-order-or-how-to-read-a-research-paper/</guid>
      <description>&lt;p&gt;I just finished a &lt;a href=&#34;https://blog.rkempe.ca/posts/2024/12/research-reflections-on-reading-math-and-math-adjacent-academic-papers/&#34;&gt;blog post&lt;/a&gt; where I discuss things I’ve recently learned about how to read research papers. I almost included this as a point in that post, but I think it’s important enough to warrant its own article.&lt;/p&gt;&#xA;&lt;p&gt;Here’s the idea: &lt;strong&gt;you absolutely should not be reading the sections of a research paper in order.&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;It took me a while to learn this one &amp;ndash; I can’t remember if I first read this advice somewhere, if someone told it to me, or if I reverse-engineered it from advice I got about how to write papers. It doesn’t matter which one came first, really &amp;ndash; my point is that I only found this out in a roundabout way through googling and trial and error and harassing people with questions.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why Does Theory Matter in Computer Science? (Part 1)</title>
      <link>https://blog.rkempe.ca/posts/2024/12/why-does-theory-matter-in-computer-science-part-1/</link>
      <pubDate>Sun, 29 Dec 2024 00:38:01 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/12/why-does-theory-matter-in-computer-science-part-1/</guid>
      <description>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.</description>
    </item>
    <item>
      <title>How to Watch a Technical Research Talk (or Workshop, or Tutorial) Recording (and Make the Most of It)</title>
      <link>https://blog.rkempe.ca/posts/2024/11/how-to-watch-a-technical-research-talk-or-workshop-or-tutorial-recording-and-make-the-most-of-it/</link>
      <pubDate>Sun, 24 Nov 2024 22:13:50 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/11/how-to-watch-a-technical-research-talk-or-workshop-or-tutorial-recording-and-make-the-most-of-it/</guid>
      <description>&lt;p&gt;When I’m trying to approach a highly specialized topic for the first time, one of my tactics is to find a recording of a research-geared workshop about it and watch it as my introductory crash course. The benefits of this are as follows:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;I am learning about the subject from (hopefully) a credible expert in the field.&lt;/li&gt;&#xA;&lt;li&gt;Workshops and talks usually try to be self-contained, which means basic background info will likely be given and I won’t have to pore through 10 different research papers, searching for an obscure definition, in vain.&lt;/li&gt;&#xA;&lt;li&gt;Talks typically have the benefit of including visuals and informal intuition conveyed by the speaker, which generally won’t make it into academic papers, because they’re not rigorous. However, the visuals and informal statements and intuition are invaluable for gaining a better understanding of the information.&lt;/li&gt;&#xA;&lt;li&gt;The speaker will generally include a bibliography and mention related works, which is a great jumping off point for further investigation and saves me from having to figure out what the seminal sources are myself.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;However, there are also some drawbacks:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Understanding the Python Memory Model</title>
      <link>https://blog.rkempe.ca/posts/2024/11/understanding-the-python-memory-model/</link>
      <pubDate>Sun, 24 Nov 2024 00:28:41 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/11/understanding-the-python-memory-model/</guid>
      <description>One of my quests during the research project I did last summer was to find a way to simulate pointers in Python, or at the very least, get some sort of named reference-like behaviour from the language. Unfortunately, I quickly learned that this is quasi-impossible, because Python is a language that aims to abstract as many implementation details away from the user as possible, and gives programmers very limited ways in which to interact with the language.</description>
    </item>
    <item>
      <title>Heuristics, Approximation Algorithms, and Relaxations: An Introduction</title>
      <link>https://blog.rkempe.ca/posts/2024/11/heuristics-approximation-algorithms-and-relaxations-an-introduction/</link>
      <pubDate>Sun, 24 Nov 2024 00:03:31 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/11/heuristics-approximation-algorithms-and-relaxations-an-introduction/</guid>
      <description>While all NP-hard optimization problems are identical in terms of exact solvability, they may differ wildly from the approximative point of view. If the goal is to obtain an answer that is &amp;ldquo;good enough&amp;rdquo;, some problems become much easier (such as KNAPSACK), while others (such as CLIQUE) remain extremely hard.</description>
    </item>
    <item>
      <title>Hypergraph Theory Basics</title>
      <link>https://blog.rkempe.ca/posts/2024/11/hypergraph-theory-basics/</link>
      <pubDate>Fri, 22 Nov 2024 22:35:01 -0500</pubDate>
      <guid>https://blog.rkempe.ca/posts/2024/11/hypergraph-theory-basics/</guid>
      <description>Graphs can be seen as a way to represent pairwise relationships between objects. With graphs, we have one object type and one relationship type. In one of the most common canonical applications or graph theory, social networking, we are trying to understand and represent social groups using graphs. In that case, our object is people, our pairwise relationship is friendship, and two people have a relationship between them if they are friends.</description>
    </item>
  </channel>
</rss>
