Favortism and Jealousy at Work

I’ve been thinking a lot over the recent months about how much healthy, functioning relationships are necessary for research progress. A feeling of fairness and having been heard is a necessary pre-condition for camaraderie, and I am ever more convinced that camaraderie is a necessary pre-condition for a productive work environment. Co-workers need not be friends, but they need to respect each other and feel respected by each other. So in this post, I’m going to talk about some things I’ve observed when that camaraderie is strained by favortism and jealousy. I certainly don’t have all of the answers, so I would definitely appreciate feedback in the comments! Also, I am not a philosopher, nor a psychologist, and I’m sure there are some very beautiful and inscrutable musings by Kant or whomever that make these points better.

[Read More]

Tests, Experiments, and Various Effects

Reading through some software engineering textbooks, I’ve felt vindicated in my hunch that SE has a distinctly “scientific” feel about it. By this I mean the empiricism, adherence to the scientific method, etc., all feels quite different from other subdisciplines of CS.

For about a year now, Kaleigh have been chatting more and more about how testing in software engineering feels so much like experimental design. As I’ve delved more into the SE literature, it’s become clear that that is no accident – the SE textbook that UMass uses uses “test” and “experiment” almost interchangably in the validation chapter, and I’ve seen similar language and approaches in test suite generation to experimental designs such as Latin squares.

To narrow things down a bit, I’ve been thinking more about how to take e.g. an individual acceptance test in Toybox and think about it in terms of experimentation. In order to do that, we need to reason about counterfactuals and even candidate underlying causal models. Below is a collection of perhaps overly-detailed musings meant to help focus my dissertation writing that are deeply intertwined with conversations we have been having around XAI…

[Read More]

What I've been doing all year(s)

Well, this blog post is only a few weeks late. Fortunately my excitement hasn’t waned: I’m psyched to write about a project I’ve effectively been working on since May of this year.

I’m working with John, Kaleigh, and David on a new testing framework for deep reinforcement learning. We presented a version of the work at NeurIPS this year, and are submitting it to a software engineering conference soon. It’s called ~~ Toybox ~~, it’s written in Rust, and there’s more cool information about it on my Projects page.

[Read More]

A Basis for a Mathematical Theory of Computation

It perhaps should not surprise me that there are not histories of PL the way there are histories of other sciences: computer science is such a new discipline and most overviews of how things came to be currently live in blog posts. I think it would be fun to have a history class that treats earlier academic papers as primary sources and strives to understand the cultural contexts of intellectual trends. Maybe this is too niche, but a history of the academic paper would also be very cool, and might help us as a community address better address its shortcomings in light of changing technologies, cultural norms, etc.

Anyway, I’m trying to read classic papers related to the topics covered by my thesis. Since my research is interdisciplinary, I’ve been thinking about how to address some of the common questions and misconceptions that come up when folks trained in, say, machine learning, interact with folks trained in programming lanaguages. Today I’m posting on John McCarthy’s 1963 paper A Basis for a Mathematical Theory of Computation (the link is to the correction).

TL/DR Version: The intro to this paper is interesting for the perspective it gives on the field at a point in time, but the particular formalisms have evolved since then. Students of PL would be better served working through Software Foundations to learn and appreciate McCarthy’s approach. A later paper, such as Wright and Felleisen’s “A Syntactic Approach to Type Soundness” would probably be a more useful primary source.

[Read More]

Replication vs. Reproducibility

Note: I am posting this from home today, where we cancelled our internet service. I am pushing over my phone’s mobile data. Since I’m not sure how much data I’ll be using, and since I don’t want to wait and then forget to post this, I’m not putting links into this particular post. Apologies!

Reproducibility is something I first started to care about while working with my first PhD supervisor, Lee Spector. One of the things that really drew me to PL was the growing community interest in reproducibility. However, it was only after looking at the ISSTA CfP and its discussion of reproducible studies that the distinction between replication and reproduction really started to gnaw at me.

[Read More]