Below, you will find some links to resources, projects, slides, etc. that I’ve worked on over the years. These are listed in roughly reverse chronological order. (Most recent projects first.)
Communication Complexity: A Crash Course (Course Presentation)
This was the final presentation I did in my directed studies course on computational complexity. It was an introduction to communication complexity, which is a mostly self-contained offshoot of complexity theory that examines how much communication is required for multiple machines to work together to solve a problem. The caveat here is that each machine only has a partial view of the total input required to solve the problem, so the machines must communicate.
This was really fun to put together and is possibly my favourite presentation I’ve given to date. At some point I will definitely be developing these slides into a proper write-up.
Multiprogramming a 64kB Computer Safely and Efficiently (Course Presentation)
This is a presentation I prepared for COMP 5407: Authentication and Software Security at Carleton University. The stated aim of the course project was to present the paper Multiprogramming a 64kB Computer Safely and Efficiently by Amit Levy, Bradford Campbell, Branden Ghena, Daniel B. Giffin, Pat Pannuto, Prabal Dutta, and Philip Levis. However, through reading this paper I realized that it’s actually about the creation of the Tock operating system, which is a security-focused embedded OS for microcontrollers. I felt like talking about the paper without providing some broader context on Tock would be a massive disservice to students in the class, so my presentation ended up being mostly about Tock, the context around its creation, and the security goals and trust model that emerged during the process of working on Tock.
I would also like to adapt these slides into a blog post at some point, but I’m busy so we’ll see how much time I have for that.
Why does Theory Matter in Computer Science? (Talk)
A talk I did for the Carleton Computer Science Society Tech Talk Night on November 19th, 2024. It aims to explain why we make computer science students take theory courses, the importance of abstraction and generalization in problem solving, and how we can apply theory and/or math to solve real-world problems. I also discussed the densest subgraph problem, some algorithms for solving the problem, and some generalizations of the densest subgraph problem.
This presentation was intended to be self-contained and accessible to an audience of second year computer science students. I have also adapted the content of the talk into a series of blog posts, for anyone who is interested but could not attend.
- Presentation Slides: Why does theory matter in computer science? (as originally presented on November 19th, 2024)
- Blog Post, Part 1: Introduction and Big Ideas: Abstraction and Generalization
- Blog Post, Part 2: Real-World Problems and a Crash Course to Graph Theory
- Blog Post, Part 3: The Densest Subgraph Problem, Peeling, and Iterative Peeling Algorithms
- Blog Post, Part 4: Set Functions, Supermodularity and the Densest Supermodular Set Problem
- Blog Post, Part 5: References, Resources, and Further Reading
- Meta-Commentary: Note on the Making (Writing?) of this Talk/Series
COMP 4108 (Computer Systems Security) Course Notes
I’m trying out typing out my notes for easier future reference. I’ve been wanting to do it for a while, but typing out handwritten notes always struck me as time-consuming and ineffective. However, this is just summarizing the parts of the book I annotated and highlighted, so it’s a better fit for typing. We’ll see how long I manage to keep doing this for.
Informational Articles for Undergraduate CS Students at Carleton
I wrote most of these during my tenure as a volunteer with the publications team at the Carleton Computer Science Society. Some of these did eventually get published on the CCSS Website; some of these didn’t. Depending on when you look at these, they may or may not be up-to-date information.
- Undergraduate Research Opportunities for Computer Science Students (self-archived here.)
- Which Math Courses Should I Take in First Year? – FAQs related to choosing math courses as a first year student
Circuits, Parallelism, and Quantum Advantage (Course Project)
This is a report and presentation I prepared for COMP/MATH 4803: Computable Functions at Carleton University. The aim was to introduce the paper Quantum Advantage with Shallow Circuits by Bravyi, Gosset, and König. Because this was a computability theory course and most of the class did not have a background in quantum computing, my goal was to bring the class up to speed on concepts required to understand the paper and give a sketch of the results, their significance, and an idea of why they are true. I wish the page limit on this project had been higher, because I don’t really feel like I was able to get very far into the core story of this paper, but I did really enjoy writing the report and learning about circuits.
- Report: Circuits, Parallelism, and Quantum Advantage
- Slides: Quantum Advantage with Shallow Circuits… whatever that means
Supermodularity, Iterative Peeling, and Densest Subgraphs (Course Project)
A.k.a. Densest Subgraphs, Iterative Peeling, and Supermodularity. This is a report and presentation I prepared for COMP 5112: Algorithms for Data Science at Carleton University. The aim was to break down and understand a recent paper by Chekuri, Quanrud, and Torres called Densest Subgraph: Supermodularity, Iterative Peeling, and Flow which studies the densest subgraph problem through the lens of supermodular set functions. This was a really challenging project because I had no idea what anything in this paper meant before I started, lol (and also because I had never written such a technical document before). The report covers a (very brief) introduction to the theory of submodular functions and gives extended presentations of some ideas in the original paper.
- Report: Supermodularity, Iterative Peeling, and Densest Subgraphs
- Slides: Densest subgraphs, iterative peeling, and supermodularity
Hypergraphs, Approximation Algorithms, and the Densest Subgraph Problem (Guest Lecture)
A guest lecture I did for the first year discrete structures course (COMP 1805) at Carleton University, in June 2024. This talk was intended to expose the students to how the math they were learning could be applied in other contexts, and serve as an introduction to the research I was doing under the supervision of Dr. Yuly Billig. A huge thank you goes out to Dr. Alexa Sharp for giving me the opportunity to lecture to her class! I also talked a bit about undergraduate research opportunities and how the research process felt.
- Lecture Video: COMP 1805 Summer 2024, Guest Lecture - June 13th
- Lecture Notes: Hypergraphs, Approximation Algorithms, and the Densest Subgraph Problem
How To Be a “Talentless Hack” in Public (Talk + Zine)
A talk I did for the Carleton Computer Science Society Tech Talk Night on March 1st, 2023. It is about imposter syndrome, its ramifications, and techniques for preventing imposter syndrome from taking over and ruining your life. I also converted this presentation into a blog post and a zine!
- Zine: How to Be a “Talentless Hack” in Public
- Blog Post: How to Be a “Talentless Hack” in Public
- Presentation Slides: How to Co-exist With Imposter Syndrome and Uncertainty