Chris Martens


This Identity Function features Chris Martens, a professor at NCSU. Chris Martens recently finished her Ph.D. at CMU. Her thesis programming language Ceptre makes it easier to design games and interactive systems. She now leads the POEM lab, where she and her students explore the intersections of programming languages, artificial intelligence, and game design.

Tell me about yourself.

I’m a logician, computer scientist, sometimes-expressive-thing-maker (drawings, music, games), and generally curious human. Understanding ideas deeply is my passion; building tools and crafting exposition to help other people understand things deeply is my vocation.

I’m not really a “maker”— and I credit Deb Chachra with giving me the conceptual tools to be okay with that fact— but I often create small, reductionist expressions of a form or structure I am in pursuit of understanding, like a 100-line program or a 16-bar chiptune. I love minimalist tools like bicycles, Vim, pens and paper — things that augment my body and brain just enough to get them working hard. I think a lot about why people use the tools they do and how to make better ones (counting programming languages among said tools).

Professionally speaking, I just started a job as tenure-track faculty at NC State University, which is full of new and exciting challenges! I’ve joined a group of games researchers there, where I take a formal methods approach to modeling interactive and creative systems (like games, narrative, and social AI).

Did you always know you wanted a faculty position?

No, not at all. There were many times during grad school that I didn’t even know if I wanted a Ph.D. (that is, if I wanted the isolation, stream of rejections, and frequent feelings of irrelevance that came with getting one). Even when it seemed more plausible that I would finish my degree, I looked towards industrial research labs and software engineering positions with some serious consideration.

But I eventually realized that advising Ph.D. students was something I wanted very badly, maybe in the same sense that other people want to be parents. So that was it; I knew I had to be a professor.

During your first few months as a professor at NCSU, you’ve started the POEM (Principles of Expressive Machines) lab and taught a graduate course. What has that experience been like so far?

Honestly, I have been having the time of my life. It’s sometimes exhausting, but perhaps surprisingly, often quite peaceful — I’ve found ways of treating myself to hours spent in the top floor of the library, working deeply, reading or writing or programming or hashing out ideas on paper.

The department here at NCSU is very supportive of its junior faculty; they place a lot of emphasis on the idea that in our early years as faculty, we should be selfish with our time and pursue our core research competencies to their fullest.

The main challenge has been navigating the vast ocean of fascinating collaborators, conferences, and other opportunities. It’s very easy to get into rhythms where I’m having five meetings every day about different things but making only very shallow progress on each one, which doesn’t feel like a path to doing impactful work. But it’s an embarrassment of riches, really.

How have you found balancing personal research time with mentoring students so far?

It’s a constant challenge. Last week I was pretty successful with working on solitary, high-priority research activities first thing in the morning, but I’m not sure that’s sustainable long term. Every Sunday evening I plan out my week and allocate the largest blocks of free time in my calendar to some specific research activity, but it doesn’t always stay allocated (meetings, talks, and so on). I wouldn’t say I’ve found a perfect solution yet.

What are you currently working on?

I’m trying to contend with the particular growing pain that my thesis programming language, Ceptre, has probably reached the point of diminishing returns on its continued use, and it’s time to build the next system to support my research and my students’ research.

I’ve also been tying up loose ends on my postdoc project, which is a logic program for reasoning about how a game’s mechanics give rise to its dynamics (emergent behavior) and expected player interactions, and synthesizing game mechanics with certain properties specified in those same terms.

My students are working on things more recognizable as AI, like a system for reasoning about partial information games and so-called “epistemic actions,” which are actions within a multi-agent system that may manipulate world state that only some agents can see, such as drawing a card in a card game. Another student is working on a social skills training tool based on a linear logic-based model of group conversation; there’s overlap between these two projects, because most conversation theories account for agents having “theory of mind” where they make sense of utterances based on deeply-nested knowledge modalities, as in “I know that she knows that I know.”

Neat — I wouldn’t have thought of those two projects as related. Are they making use of a modal logic?

Yes, the first student is working with dynamic epistemic logic, which deals with changing knowledge states. Unfortunately, it’s a highly non-constructive logic by necessity (it needs to reflect over non-provability within each time step). A longer-term goal might be to figure out some kind of judgmental reconstruction of that logic. But for now we’re getting a lot out of just using it.

Your work brings together two fields that appear very different: formal methods and game design. Can you explain how these topics interact?

If I could do so definitively, I think it would be time to go up for tenure. But there are some things I have noticed so far that some people seem to find compelling.

For example, interactive programs are not like most other programs where any given execution has a fixed input and then can be reasoned about entirely on the basis of the code. Instead, one must reason about a continuous stream of unpredictable input. There are interesting challenges for formal methods in this space, and open problems about which properties of these systems are even decidable (much less tractable algorithms for deciding them).

Furthermore, once you abstract away an interactor, it’s tempting to express the rest of the program in such a way as to respond to changes in world state rather than as a sequence of operations. So there’s a good fit for things like linear logic programming, rewrite systems, and process calculi for concurrent computation; I’ve spent some time exploring how to make those ideas accessible in a creativity setting. Such computational frameworks can be helpful for designing virtual worlds with simultaneous, autonomous parts (such as characters in a simulated population).

One example attracting a lot of interest lately is social simulation in interactive stories. Instead of the standard interaction with a non-player character that typically consists of navigating an opaque dialogue tree, you simulate some model of internal cognitive state for game characters, like their personality, psychological inclinations, goals, desires, and beliefs. Dialogue options with that character are procedurally generated by those constraints.

One theory for how to set up those constraints is Roger Schank’s idea of scripts, or social protocols that exist as conventions in our heads for what set of behaviors is permissible in which situations. For example, at a restaurant there are many things you can do, as long as they follow the “going to a restaurant” protocol — ordering, eating, paying, and so on — and those actions have causal inter-dependencies too. It’s easy to express each such action as a rule in a rule-based language (as in a forward-chaining linear logic program, say), but expressing the constraints created by the global structure of a script seems to need another approach, maybe something like session types.

So right now, programmers need to express every single action, but if you could express the global constraints, you would be able to generate actions according to those constraints (assuming a simple enough logic)? Has anything been done in this vein?

A lot has been done in a sort of ad-hoc way for specific games or demonstrations. There’s an idea called drama management from interactive storytelling that consists of techniques for handling nondeterminism in a simulation in the presence of constraints; those constraints are usually in the form of a list of beats or scenes that are required to occur.

There is also some work on using grammars and predicates to constrain the structure of a story, so that you can, for example, give a logical definition of what it means to be a betrayal narrative (character A betrays B if and only if B believes A will help B accomplish a goal G, but A instead acts on a secret intention I where I subverts G). Then with definitions of what kinds of actions count as helping, accomplishing a goal, and so on, you can generate distinct stories that match the “betrayal” structure. But this approach, since it assumes some level of “top-down” constraint satisfaction, doesn’t lend itself as easily to interaction.

What I’m not aware of is any attempt to unify the simulationist approach (throw characters in a world and let them interact systematically, including possible player intervention) with the ability to enforce global structure to that same degree.

In what other ways do formal methods and game design intersect?

Game designers are really interested in generative methods, that is, algorithms that automate what humans would call “design” of artifacts like levels, music, story, and mechanics, often in response to play outcomes. They want to synthesize a highly variable space of data, but within certain representational constraints.

One piece of advancing the state of the art for generative methods is how to specify what you want to generate, or as Kate Compton calls it, the “monkey’s paw AI Law”— When you make a wish-granting machine, how do you make your wish so that the computer doesn’t provide you with technically correct, but unsatisfying, results?

This is a language design problem: Having ways of generating or manipulating large amounts of data isn’t enough; we also need expressive ways to query and constrain that data. These challenges also apply to the creation of virtual worlds with emergent behavior more generally.

Interesting — I know this is a problem that comes up a lot with angelic execution and program synthesis (getting technically correct but useless answers). Do you think these two problems are related?

Yes, absolutely! I’ve been wondering recently whether common techniques in generative methods might apply to program synthesis, or vice versa. Generative methods tend to solve simpler problems because they’re just generating “things” rather than processes. But then again, there’s also active research on generating the rules and mechanics of games, which are of course reactive processes (I worked on this problem for my postdoc).

How did you approach this problem for your postdoc work?

That was a daunting challenge, and I’m really excited about the approach we decided to try out for that, because it’s wildly interdisciplinary: We stole ideas from games humanists (people who study games from a perspective of literary and critical theory) and turned them into a logic program.

Games humanists like Ian Bogost (who is considered on the more “formalist” end of things) have this idea that the mechanics of games can create meaning by way of what he calls procedural rhetoric, or the ability of interactive processes to argue points.

For example, if I tell you that citizens of other countries have a hard time at border control, and how hard a time they have depends on the politics of our respective countries, you might believe me on one level; but if you play a game where the goal is to pass border control (or to decide whether someone should be allowed past, as in Papers, Please), and the mechanics recreate the challenges inherent to that goal, then you viscerally experience that distinction and remember the cause-and-effect relationships.

Why? Because the mechanics create dynamic effects that harmonize with an cultural meaning overlaid by the player’s knowledge of the world, giving rise to meaning.

So our ridiculously, unapologetically reductionist computer science idea was to describe these relationships in computational terms. That includes relationships between between mechanics (things like when these two objects collide, one of them disappears or gets smaller) and dynamics, or emergent consequences of mechanics — think of it like a static analysis over a game’s rules.

We also did this to a certain extent with thematic elements (audiovisual information) and culturally-imbued meaning. We wrote the whole thing in an answer set programming (ASP) language, which takes a pile of formulas, which can include things like negations, and generates models (sets of facts) that satisfy them.

By establishing relationships between mechanics and meanings this way, we can run the program bidirectionally, either starting with a mechanics description and getting a meaning out (automated game analysis) or starting with a prescribed meaning and getting a set of game mechanics out, which can then be compiled into a running Javascript game (game generation).

Moving on — On bi visibility day you tweeted about the need for bi role models. What do you think the computer science community can do to increase the visibility of bi role models?

That’s a great question! And it’s a thorny one to navigate, because people don’t always desire to be visible, or to make their queer identity central to who they are at their jobs, which is completely valid. However, I really appreciate things like when a senior faculty member mentions her wife by that word casually in a talk or conversation — a cue that I’m in an environment where not being straight is no big deal.

It should be said that such cues would presumably be more likely to occur if our governments would offer workplace protections for folks on the basis of orientation (and gender identity, while we’re at it). Currently it is legal to be fired for being LGBTQ in many US states.

I’m also totally on board with more structured ways of introducing people to like-minded peers and mentors, like LGBTQ meetups at conferences, or interviews for a blog :).

In some ways I feel like this is one of the barriers for bi visibility — Many of us are in opposite-gender relationships or not dating and can’t easily signal that we are bi. Do you have any way of dealing with this?

So I’m kind of of two minds about this. Lots of marginalized groups talk about “passing privilege,” as in, the privileges afforded to someone because they appear to hold a norm-following identity, even if they don’t in reality. And it’s mostly baloney, because those are conditional privileges that don’t reflect your true self. But it is true that I lack a lot of problems that other LGBTQ couples have, and I want to be careful not to take the spotlight away from those issues when they haven’t often been centered.

Caveat aside, I think the most important thing to do is try to be there, as publicly as we’re comfortable with, for our fellow LGBTQ folks — Show up to marches and calls to action, call senators, join a Facebook group, or whatever else. I joined an NCSU “oSTEM” (LGBT in STEM) Facebook group and I guess that’s one example of signaling to folks there (mostly students) “hi, I’m here for you.”

Sometimes this notion of passing privilege makes it hard for bi folk to feel at home in the LGBTQ community. Have you found the community welcoming?

Aside from formal organizations, I don’t know that I’ve ever really encountered “an LGBTQ community,” at least not specific to a local area. In Pittsburgh there was sort of a gay community and a lesbian community; the limited experience I had trying to get to know the latter was discouraging, as I’m shy about integrating into already-cohesive groups of people (but that’s probably more on me than them). But I never experienced any overt biphobia, personally.

The happiest community-finding stories seem to have happened for me at the intersection of LGBTQ women and geeks, which are pretty much the people I feel most at home around. Whenever I’m at tech conferences or similar environments it seems like I wind up in a jolly pack of LGBTQ people most of the time, including bi+, trans, and nonbinary people. It’s one of my favorite thing about conferencing since my day-to-day work environment is more normative.

Do you think there are any issues in the computer science community that are specific to bi folk? Have you encountered any yourself?

I think for me, a lot of the feeling of invisibility and non-belonging has a lot to do with default assumptions. I wish we would do away with teaching the “marriage algorithm” (which is sexist as well as heterosexist) in theory courses, when better analogies exist. I wish women-in-CS groups would stop using language that assumes said women have or want boyfriends/husbands. These are just pinpricks, but they can add up to a chilly climate for LGBTQ women — we’re unusual for being women in our chosen field, but we’re also unusual as women.

Do you know how we can address this as a community?

No, I really don’t. A couple years ago I would have said “maybe unconscious bias training” but recent data seems to suggest that it doesn’t work. Maybe bringing these issues more to the center in WiCS groups and such, but that’s asking more labor from the people it affects. I will persist in continuing to ask people of relative privilege to call out exclusive language when they hear it and keep working on keeping those things in mind when we’re speaking to a crowd or taking on a leadership role. Every little acknowledgement that someone exists, when they’re used to being erased, helps.

Thank you!

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.

Deb Agarwal


Today’s Identity Function post features Deb Agarwal, a senior researcher and head of the Data Science and Technology Department at the Lawrence Berkeley National Laboratory. Deb Agarwal’s research helps scientists in other fields use, analyze, and understand data.

Tell me about yourself and your background. 

I am someone who loves learning new things and helping people to achieve their goals. My work at Berkeley Lab allows me to do both. My hobby until about ten years ago was sailboat racing. I also was a competitive swimmer. These days I am much more domestic and gardening and boating have been my most recent hobbies.

My wife and I have been married since 2008 and have been together since 1998. We met through friends who had a sailboat. I used to race sailboats on the bay at the time and they docked near the end of one of our races. They had invited a few people to go sailing with them for the day and I came over to their boat to join them for dinner after the race. I met my wife there.

Did you compete in swimming or sailboat racing in college?

No, I wanted to concentrate on my studies and give myself the best chance at a good job after college. I was concerned that college-level sports would take too much time away from that. I also probably was not good enough to make the team :). In graduate school, I joined the crew team and loved that.

That makes sense. Collegiate sports are a huge commitment. Did you find it difficult to compete while in graduate school?

Actually, I found the training with the crew team to be a real help because it gave me somewhere to focus my physical energy and it made it easier to concentrate on my studies the rest of the time. The bigger problem is that I had already gone past my NCAA eligibility period, so in the end I could not compete.

Moving on — What are you currently working on?

My projects center around bringing together observational data to help improve understanding of carbon cycle dynamics. In this pursuit we work with researchers studying the tropics, large watersheds, and ecosystems across the world to bring together, QA/QC [quality assurance and quality control], and process the data. The goal is to enable scientific analyses and use of the data with models. In addition, we have a few research projects inspired by the computing challenges we encounter when we are working with the scientists.

Does research on carbon cycle dynamics present unique challenges?

Yes, for many phenomena that we study you can test your predictions by running an experiment and checking your predictions against the results. With the carbon cycle you are trying to understand a very complex system’s behavior.

It sounds like there’s a lot that can be done in this domain. Can you tell me about a particular project?

Well, one that started relatively recently is called NGEE Tropics. It is a DOE-funded project to work on understanding how tropical ecosystems around the world will respond to change. In particular, we are starting with trying to understand the carbon cycle in tropical systems.

We spent the early part of the project assessing what data is needed to be able to improve the models. Then team members headed out to the field to collect that data and to convince collaborators in the tropics to share their data with us. For example, our team went out and added sap flow measurements to trees around the tropics and leaf temperature measurements among other things. We also worked with researchers in the tropics to build collaborations and gain access to existing meteorological data and other data streams.

What has your experience been like collaborating with scientists in other fields?

It is really fun and challenging to work cross-disciplinary. We have developed techniques based on HCI user-centered design concepts. We use this user-centered approach to help understand the problem. We build teams that are a blend of computer scientists and scientists from the field, and work together to solve data challenges.

How are you able to balance your own research goals with user needs? Do you find that they are complementary, or are they ever at odds?

When we first started working more closely with scientists, we thought we would need to just decide to give up our CS research goals, and we did so that we could concentrate on the science. It turns out that working with the scientists so closely has enabled us to identify areas where there are gaping holes of need that no CS capabilities support. It has allowed us to write better CS research proposals and we are now also well-funded on CS research, but driven by science needs fundamentally.

One example is workflow tools: We kept finding that the scientists we were working with needed workflow capabilities but the existing tools did not fit with the science development process. We did an analysis of the problem and put together a proposal to do the research needed to develop a workflow system that better matches the needs of scientists. The resulting workflow tool is now available open-source.

What drew you toward your work at Berkeley Lab?

I love the opportunity to impact science and enable scientific breakthroughs by applying computer science research. I also really enjoy the people at the lab and working in Berkeley. It is a great environment.

You’ve mentioned before that you have not felt the need to be silent at Berkeley. What is the culture like?

Berkeley has such a long history of being a tolerant place that it is hard to imagine intolerance here. This does not mean that everyone is instantly accepting, but it does mean that negative reactions are caused more by ignorance and assumptions than any active dislike or objection. By being very open at work, I hope to help it be unremarkable to have out LGBT co-workers.

That’s great to hear, and it definitely makes a difference. Was it always like this for you, or is your experience at Berkeley unique? 

I was not out before I came to Berkeley. When I first came to Berkeley, a friend of mine was very deliberately out, and I really liked that she talked to people about her female partner as easily as any other woman would talk about a husband. I decided to do the same, and I have never felt that anyone discriminates against me. People mention my wife as naturally now as they would my husband if I had one.

In the lab’s Pride Month Profiles, you mention that hearing from transgender and bisexual women has been eye-opening for you. How so?

It has been easy to think of “LGBT” as “LGbt” because gay and lesbian issues have been dominating the national conversation. But at the last few LGBT lunches at Grace Hopper, we provided time for attendees to stand up and speak about their situations.

At the first one of these, there were people who stood up and spoke about being trans, genderqueer, bisexual, asexual, and so on. The challenges they face at work and school were eye-opening. It was the first time for me to hear these challenges, and it made apparent to me the need to broaden the dialogue beyond the current focus on marriage equality to other pressing issues our community faces.

For instance, at Berkeley Lab, we have a group that has taken on writing up a workplace transitioning guide to help trans employees. We cannot afford to sit still and be satisfied until the entire rainbow of our community has equal opportunities for employment and treatment in the workplace and in life.

Do you know how we in the computer science community can continue to broaden the dialogue?

I feel like I am still learning about these issues. I can guess at some of them, but I am sure I would miss many of them. They are really things we have taken for granted forever.

A good example is a gender selector on a form. Much of the rest of the community cannot easily choose “Male/Female” and do not particularly appreciate the choice “other.” This gender issue applies to bathrooms and many other things in the world around us that we take for granted.

What has your experience been helping run the LGBT forum at Grace Hopper? What advice would you give to people looking to start similar forums at other events?

I help run something that was started by BJ Wishinsky. She created and ran the LGBT activities at Grace Hopper. Julie Mariga and I have been keeping it going, and now many other people have joined in and are helping to run the events.

The best advice I can give is don’t wait for permission. If you see a need and want to fill it, start small and work on building the organization you want to exist.

Thank you!

Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author and do not necessarily reflect the views of the National Science Foundation.

Matthew Kay

matthewkay The third Identity Function post departs from the Programming Languages community and enters into the world of Human-Computer Interaction. We hear from Matthew Kay, who just finished his Ph.D. at the University of Washington. Matthew Kay’s research deals with both HCI and information visualization. In the fall, he will be starting as an Assistant Professor at the University of Michigan School of Information.

Tell me about yourself.

I grew up in Southern Ontario, Canada, about an hour and a half outside Toronto. Besides Computer Science, I’ve always been interested in art (I have a minor in studio art) and social sciences (particularly psychology and philosophy). These days my interests in art manifest in reading books on design and typography. I usually relax by watching movies, eating cheese, or replaying old video games.

What are you currently working on?

I have been working on building a modified version of OneBusAway [a local bus tracking app] that communicates probabilistic predictions of real-time bus arrival times (instead of just the best estimate). Some of that involves figuring out how to visualize a probability distribution of the time to arrival for some bus in a way that “normal” people can use and understand.

I’ve developed a discrete depiction of continuous probability distributions that was inspired by work on statistical reasoning that suggests people’s probabilistic inferences are better when predictions are presented as frequencies rather than abstract probabilities. That project is now moving towards a deployment and field testing of a version of OneBusAway with probabilistic prediction.

I think everyone in Seattle can relate to pulling up OneBusAway and seeing a bus that is five minutes away, only for it to be four minutes away five minutes later. How does this version convey the information to the user?

We use what I have dubbed “quantile dotplots” (see Figure 2 of this paper). It is a dotplot of quantiles from the predictive distribution that has the useful property that counting dots corresponds to estimating intervals from the predictive distribution.

For example, if there are 20 dots in the display, and I count up 2 dots from the left and look at the time at that point on the x axis, that point will correspond to a predicted 2/20 chance of me missing my bus (or 18/20 chance of making it). The idea is to help people make judgements like, “oh, I’d be willing to miss this bus one or two times out of twenty” and then decide when to get to the bus stop based on that.

Interesting — I see several rejected designs in that paper. Why did you ultimately go with this design?

Indeed, and there were many more that didn’t make it into discussion in the paper! A lot of HCI lies in generating a lot of ideas and then chucking them.

The design we settled on elicited more precise probability estimates from people. It also fulfills several unaddressed needs that we found people had in a survey of existing users — things like answering the question, “what is the chance my bus has gone by already?” People unfamiliar with OneBusAway might think that’s an easy question to answer for a system designed to track the location of buses, but it turns out there is plenty enough error in the system to make that hard to answer.

In terms of rejected designs, we tried some crazy things, like visualizations of clocks with uncertainty and animations of buses arriving. The use of animation in conveying uncertainty is something Jessica Hullman (one of my collaborators on that paper) has worked on more; I really like that approach in general, but it has some problems in the context of real-time transit prediction: If you’re standing there trying to quickly decide what bus to take, you don’t really have the time to watch several animations.

So we ended up focusing back on static visualizations, and that led back around to the question of how to efficiently and effectively communicate discrete outcomes in a small space that can be read quickly, and that led around to developing quantile dotplots.

On your website, I saw some more work about communicating uncertainty in a bathroom scale application. I’d love to hear about that.

The weight scale work is similar in spirit to the bus arrival time prediction work. Scales tend to throw numbers at people — one data point at a time — and hope that they can make sense of their data. Even the best scales (that upload data to the cloud and provide graphs of trends over time) typically still just show one data point at the moment of weigh-in. On top of that, they provide no sense of the error in the data — how precise the scale is, or how much you can expect your weight to fluctuate.

I’ve analysed online reviews of scales to see how this affects people’s attitudes towards their scale, finding that statistical misconceptions can cause people to think the scale is worse than it is. But the “state of the art” of showing people one data point at a time does nothing to help guide people away from these misconceptions or help them get more value out of their data.

I’ve been looking at ways to improve this situation, partially through modeling a person’s weight (so we can explain some sources of bias and variance to them) and partially through redesigned scale interfaces.

This also sounds like a major win to me. Are you working on anything else?

Another area I am just starting to work in is building usable tools for Bayesian analysis of experiments. In that area I am focusing on researchers that you might call the “t-test” (or “SPSS”) researcher: someone who today probably just runs a t-test or ANOVA to analyse the results of their experiments.

Especially in HCI, these types of researchers could benefit from incorporating prior knowledge into their analyses using Bayesian approaches in order to get better estimates of the effects they are trying to measure (“better” in the sense of “less error”). While Bayesian analysis is becoming more widespread amongst a certain set of applied researchers, those tools aren’t usable for the typical “t-test” researcher (or alternatively, the researcher who throws their data into SPSS or JMP [statistical analysis software] and wanders around until a test result comes out).

The problem is that the existing tools designed for these researchers are not doing an effective job of guiding them to more appropriate techniques. That is, I don’t think the problem is with this user group, but that the tools available to them aren’t doing a good job of catering to their needs. I want to build tools that target that researcher, helping them set informative priors on simple models, and guiding them in the interpretation of their results.

Interesting – In this way your research could increase the effectiveness and quality of other research. How much of the difficulty of using Bayesian approaches do you think is related to tooling rather than it being difficult to build good models? How are these users’ needs different?

Bear in mind I am just starting out this particular research program, so I don’t have a lot of answers yet.

For the groups I am interested in— let’s say HCI researchers, though that is only a subset—  a lot of the research questions they are interested in are something like “is there a difference in [some measure] between [technique A] versus [technique B] on [some task].” The traditional way to answer that question might be a null-hypothesis significance test: Is there statistical evidence to reject the hypothesis that there is no difference?

However, this null hypothesis is often obviously false: If I give people two different interfaces for some task, I would be surprised if there were exactly zero difference in performance between them. What researchers are often really interested in is how big the difference is, or how reliable.

This requires a shift from thinking about looking for differences to thinking about measuring differences. So a lot of what I will be interested in working on will be helping guide researchers through thinking about measurement instead of null-hypothesis significance testing. How that exactly works and what the interfaces might look like is a further-down-the-road set of issues.

Is there anything else that you’re particularly interested in?

I had a side project a while back looking at gender representation in image searches of occupations. That was a fun collaboration with two friends of mine, not core to any of our normal research.

In a research talk, one of my friends had observed a particularly stereotyped use of an image to represent an occupation being discussed in the talk. Presuming the image was pulled from an image search, we decided to get a bunch of Google Image search results and compare them to data from the Bureau of Labor Statistics to see how well gender proportions matched up.

We found that image search results don’t do a completely terrible job of representing real-world gender proportions in occupations, though there is a stereotype exaggeration effect, where (say) a search for CEO, a male-dominated occupation, will tend to have even more males in it than if it strictly reflected reality.

There’s also something we dubbed the “sexy construction worker” effect, where results from an occupation against the gender stereotype (say female construction workers or male nurses) will tend to be rated as less professional. That got us some press, including one article that noted the first image of a woman in the search results for “CEO” is CEO Barbie (unfortunately, that still seems to be the case).

Neat, do you have any of these articles?

There was a nice article on that work in the Washington Post, and another in the Atlantic. Chelsea Clinton also tweeted about it, which was sort of surreal.

Woah, that’s awesome! Moving on — you just finished your Ph.D. at UW. What are your plans now?

I’m very excited to be starting as an Assistant Professor at the University of Michigan School of Information in the Fall! I have actually moved to Ann Arbor already, which was something of a grueling process but is mostly complete now

Congratulations on the faculty position! Were you out during your job search?

Yes, I was. The decision to be out during the search was easy, since I have been out since before the beginning of grad school and would have no intention of going back in to get a job. Put another way, if I had to go into the closet to get a job somewhere, then I wouldn’t want to work there.

Do you think that this impacted your search at all?

It has impacted my search in the sense that there are cities I wouldn’t want to live in because I am gay. On the other hand, places that aren’t friendly to LBGTQ folks tend also not to be places I want to live for other reasons, like not having an art scene or not having much in the way of bars or restaurants. So I don’t know how much that changed the places I wanted to apply.

You’ve probably heard (and experienced) the saying that coming out is a continual process, not a moment in time. Sometimes when meeting someone new I will deliberately drop a mention of my boyfriend in the conversation, if some reason to mention him hasn’t already come up naturally.

But the funny thing about the academic job search is, if you are gay and in a relationship, there is a prescribed moment in the interview process to out yourself. During an interview you will have a meeting with the Dean or Chair of the department. Even though it is technically against the law, they will find some way to ask you whether you have a two-body problem. At that point I can mention my boyfriend, who is an artist, and that consequently I don’t have a two-body problem in the academic sense. And the nice thing about everywhere I interviewed was that that second piece of information —  what he does, and how it might affect my decision to move somewhere —  was the important piece of information to them.

But mostly the fact that I’m gay came up naturally in conversation anyway. A lot of the job search process is a two-way interview where everyone is trying to decide if they might get along as colleagues for years. So you have talk about work and play, and significant others come up naturally.

Are you planning to be out to students?

Definitely. I’m not sure it is possible to even have that choice. After accepting the position at Michigan I was at a party at CHI. A Michigan Ph.D. student who I did not know came up to me and invited me to check out an LGBTQ reading group when I got into town. I was a little surprised he already knew I was gay. Not that I minded! Quite the contrary, it was a nice gesture that made me feel very welcome. But the point is, I don’t think I could be out to professors in the department and not out to students, even if I wanted to.

What are your thoughts on people talking about it? It’s tricky because you never want to accidentally “out” someone, but at the same time, it’s nice for people to know who you are if you are comfortable with it.

Right. Part of really being out of the closet is letting go of control over who knows you are gay. Otherwise — as someone once put it to me — you aren’t out of the closet, you are just pulling other people in with you.

So if I bring up my partner or my sexuality casually in conversation with someone else, I should expect them to mention that fact to another person in any situation they might talk about a straight person’s significant other. It’s equality in gossip: I will hear the odd tidbit about a straight colleague’s husband or wife or children, so I should expect others to hear the equivalent tidbits about me.

I recognize that some people are not comfortable having others out them, and in some cases I might be guarded due to legitimate concerns about safety. But if you are gay and that fact comes up casually, I think it should be fair game for others to talk about it unless you explicitly say not to. You aren’t comfortable with your identity until you are comfortable with other people talking about your identity, and the environment you are in isn’t a totally equal one unless gossip is equal opportunity. The alternative is “don’t ask, don’t tell.”

What was it like for you being out in grad school?

Being out in grad school was great! I was out from the beginning and never had any issues because of it. I have found both Seattle and UW to be a great place to be gay. Within the department, I knew several other grad students who were LGBTQ.

There were some LGBTQ groups on campus as well, though I never got very involved in them. I signed up for the RainbowGrads mailing list, though I never went to any of their meetings — by the time I discovered them, I already had friends and a support network, so I didn’t see the need for myself. I went to an oSTEM meeting, but it was aimed mostly at undergraduates, so I didn’t get much out of it.

I think in general the support systems are there if you want to take advantage of them, but I was already at a good place in my life with respect to being gay so I didn’t really have the need.

I’m glad your experience was great. You say you have a great support network; how did you find such a network?

I found it mostly through other grad students I made friends with. The department is fairly social and has plenty of ways for people to meet each other, especially during your first few years, and I built up my friend group that way.

Did you have any role models who were LGBTQ?

Not in particular. The LGBTQ professors I know are mostly people who I was friends with when they were Ph.D. students, so they weren’t really role models so much as friends and colleagues.

Do you think it would have helped you to have LGBTQ role models? Or do you think it’s enough to know colleagues?

For me it was enough to know colleagues and friends (I would stress the friends part). But this sort of thing varies a lot by individual. It was more important to me to have friends I could talk to about LGBTQ issues.

I think for some people it is more important to them to have role models to aspire to, to be able to see that a person like them in certain ways can do something they want to do. That can be very empowering. It could be my general disposition, or it could be part of my privilege as a white male that I didn’t really feel the need for role models. Different people find support and motivation in different ways.

Different sub-communities of computer science have different cultures. What has your experience been like as an LGBTQ HCI researcher?

It has been completely welcoming! I know several other LGBTQ grad students in HCI (actually, most of them are now faculty or researchers in industy).

At some conferences, people have organized LGBTQ parties (sadly they have always conflicted with other things for me, so I haven’t been to one yet). This year for the first time CHI hosted a huge Diversity Lunch at the conference. I attended that and had a great time. It included small group discussions and a variety of invited speakers, including at least one gay speaker. There is even research into LGBTQ issues conducted within HCI.

That is great to hear! Are orientation and gender identity things that can be freely discussed within HCI, or are they considered private?

Definitely freely discussed! Even outside the lunch that was basically designed as a safe space to discuss such issues.

What sort of HCI research delves into LGBTQ issues?

I’m not intimately familiar with it since it isn’t my sub-area, but I have probably seen a few papers on it each year in the CHI program. There is a lot of work at CHI studying how different groups of people use social media, and I think most of the LGBTQ research I’ve seen has been in that realm. For example, there was a paper this year called “LGBT Parents and Social Media: Advocacy, Privacy, and Disclosure during Shifting Social Movements” that got an honorable mention (oddly enough, a Michigan paper).

Do you have any ideas for why HCI has such an open culture?

The expected response for any question about why HCI is different from other subfields of CS is to point to the fact that HCI is the intersection of CS with fields like psychology, design, and sociology (to name just a few). I think the combination of academic cultures going on there tends to pull HCI culture in a slightly different direction from other areas of CS. I suspect that explanation applies here.

Thanks for your time!


Thank you to Pavel Panchekha for consulting on the interview about Bayesian analysis.

Wren Romano


For the second Identity Function post, we feature Wren Romano, a last-year graduate student at Indiana University. Wren Romano’s research applies concepts from type theory and constructive mathematics to both natural and formal language. This summer, she will receive her Ph.D. and begin work with the security infrastructure team for Google Chrome.

Tell me about yourself and your interests.

I’m finishing up my dissertation this semester, and have been in grad school for about a decade, including some time as a research programmer between finishing my M.S.E and starting the Ph.D. My primary research is in linguistics, mathematics, logic, and computer science; with a secondary focus of cognitive science, anthropology, and gender/sexuality studies; as well as an interest in the areas of philosophy behind both.

I’m interested in applying constructive mathematics to “language” in the general sense— comprising both natural and programming languages. In particular, I focus on the interface between morphology and semantics, especially when multiple languages interact.

I think there is a deep connection between natural and programming languages; there’s a reason we call both of them “languages.” There has been a lot of recent PL work on things like gradual typing and typed metaprogramming, and a lot of the issues that come up in that context have been studied at length in the linguistic community. And we get similar trends in the other direction too.

So that’s my main research focus. But tied up in all these questions about language and semantics, there’s also this question about where meaning comes from. Ultimately meaning comes not from words but from the humans who create and use them. So I’m also interested in how it is that society constructs and maintains these meanings.

What are you currently working on? 

My dissertation is on “chiastic lambda-calculus” which provides a more general notion of composition than standard lambda-calculi. Originally it was designed to capture the compositional semantics of languages with free word order, Japanese in particular. Each lambda and each argument to a function is labeled with some “dimension”— if two things are on different dimensions then they can move around independently of one another, whereas if they’re on the same dimension they’re stuck in order.

We can think of the types for functions as trees, where the inputs are the leaves and the outputs are the roots. If we want to compose functions f and g, we’ll graft g onto f in place of one of f‘s leaves; in order to figure out which leaf to graft g onto, we’ll match up the dimensions. The newly created tree will have f‘s output as its own output, and will take as inputs all the inputs of g plus all the inputs of f (minus the one that g filled).

How is this more general? Well, in a language like Haskell we have to distinguish between (f . g) which grafts g onto the first argument of f, and (f .: g) which grafts g onto the second argument of f. The rigid ordering gets in our way. If argument passing is instead based on dimensions, then we only need one composition operator.

What are some of the applications? 

Once I started looking for related work, I just kept finding one thing after another. For example, in standard lambda-calculi there’s an intentional conflation between the ideas of functions-as-procedures and functions-as-values, whereas in category theory, we keep distinct the ideas of morphisms and exponentials.

Since chiastic lambda-calculi have an associative juxtaposition, we also keep the two notions distinct. The way we do this is to explicitly wrap up arguments/values in brackets like ⟪e⟫ᴀ where the subscript specifies the dimension. This bracketing enforces a syntactic distinction between procedures/morphisms like (λᴀ x. e) and values/exponentials like ⟪λᴀ  x. e⟫ʙ.

More generally, anything in brackets counts as a “value”; whereas anything not in brackets is not a value. This is a different idea of “value” than in, say, ML where “value” means normal form. The bracket tells us enough to know how to glue things together, but the expression under the brackets need not be a normal form. Indeed, if we don’t include the rule for evaluating under brackets, then we can freely mix call-by-value and call-by-name. So we have a coherent notion of “value” but it’s not quite the same as other notions we’re already familiar with; hence shedding light on what exactly this pre-theoretical term “values” actually means computationally.

Are you working on anything outside of your dissertation? 

I’ve also been working on a compiler for a probabilistic programming language with Chung-chieh Shan. In a lot of ways it’s like any compiler , but one of the things that makes it interesting is that we have a bunch of program transformations which are not semantically the identity function. So while most compilers try to make sure they don’t change the meaning of your program, ours very intentionally does change things; so there’s this question about how can we be sure we changed it in “the right way.”

As far as new projects go, a couple weeks ago I was appointed to the Haskell Language 2020 committee! I’ve been pretty involved in Haskell for a while now, and subtly or not-so-subtly effecting change from behind the scenes, so it’ll be cool to be working on it officially. My goal is that by 2020 we should have fully specified all the things that people thought of as “standard Haskell” as far back as 2005. Sounds trivial, but even just doing that would be a huge win for the community and would help clean up a lot of code in the wild.

Congratulations! Are you typically involved in the free/open-source software community? 

Most of the work I do is F/OSS. It’s not something I’ve been very vocal about lately (because it’s less contentious now than a decade ago), but it actually means a lot to me.

These days I’ve been focused on projects in Haskell: not just the Haskell 2020 committee, but also Hakaru, a couple currently unreleased projects, and various libraries for data structures, parsing, unification, and so on. Previously I’ve also been a primary contributor to a number of other compiler and NLP projects including Dyna (weighted logic programming language), Joshua (phrase-based statistical machine translation), L3 (constraint-based XDG parser), and BTO-BLAS (linear algebra kernel programming).

What’s next? Tell me about your upcoming work at Google.

I’ll be working on the security infrastructure team for Chrome. It’s not the sort of thing I would’ve guessed I’d be working on, but of all the teams I talked to at Google, they were the only one that didn’t get scared off by the breadth of my background. Even though the name of the team has “security” in it, it’s really more about writing tools to analyze program sources looking for security bugs; so not a whole lot different from my prior work on compilers and semantics.

Have you done any work in security before, or will this be a new adventure?

I’ve worked on languages that use type systems to enforce dataflow policies. And I’ve done a bunch of sysadmin work. So I’ve some experience with the sort of security that deals with designing and enforcing policies/permissions, but that’s a different sort of security than checking for buffer overflows and the like. So far as I know this project is going to be focusing more on the latter, so it’ll be a new adventure!

Going back, what made you pursue your Ph.D. after working as a research programmer? Was that always the plan?

After finishing undergrad I bumbled around with a bunch of awful jobs, nearly homeless and just barely managing to keep myself off the streets. At some point I sat down to figure out what I should to do with my life. After some soul-searching I figured out that what I really wanted was to become a professor. To do that I needed to go to graduate school.

It wasn’t really feasible to get into a decent Ph.D. program, so I applied to the masters program at my local college. After finishing the M.S.E. I applied to Ph.D. programs but didn’t get in anywhere. One of the professors at my school had funding for a research programmer, so I did that for a year until I could apply again. The second time around I got in.

Wow, that’s an amazing story. How did you discover what you wanted to do?

At the time, I was working at a convenience store. It’s a degrading job, no upward mobility, didn’t pay enough to cover living expenses let alone student loans (my parents disowned me halfway through undergrad, so I had to take out loans and work to pay the last two years myself). I was miserable, but had plenty of time to think about the future.

I’ve always loved doing research and figuring things out; I was a very precocious youth. And in my time at Free Geek [a nonprofit for building and refurbishing computers], I started to realize how much I like teaching folks too— that look in people’s eyes when they finally get something, that joy of witnessing their discovery, how excited, how empowered they get.

So I knew this about myself, but didn’t know how someone could make a living from these tiny moments of joy; like who’s going to pay me to be happy?

And how did you figure that out?

I mentioned to my roommates about how I was trying to figure out what to do with life. And one of them went to his room, grabbed this book, and gave it to me.

The book was Getting What You Came For by Robert Peters. The whole first half of the book is about figuring out what it is you really want from life and honestly appraising whether those goals would be better achieved via a higher degree.

Peters deconstructs the ideology we’re taught growing up about how “more formal education is always better.” But also, Peters has a way of questioning what it is the reader wants out of life that cuts through a lot of ways we lie to ourselves. Most other books are just like “search inside yourself” or some equally useless aphorism; but Peters actually made me stop and think.

So, after reading for a while and sitting for a while, it fell into place.

I think many in that situation would not have persevered.

It’s just, all of my life has been that way. I don’t know what it would mean for one to live a life that doesn’t require such strength. I see the outward effects of folks living otherwise, so I can guess, I can try to imagine, but it’s all intellectual, I have nothing to ground what the experience must actually be like.

On the other hand, applications are really hard for me. Any of this sort of selling one’s self, I find that exceptionally difficult. So knowing I’d have to make new applications again next year, that was tough. [My wife] Alicia helped me through a lot of that.

By the time I finished my M.S.E., I knew how finicky the graduate school application process can be. Like applying for tenure track positions, sometimes you just have to wait a year or two until the right positions open up. So waiting and trying again wasn’t too unexpected.

Was it hard to put together an application from the ground up?

It took work, but it wasn’t especially difficult. Because I didn’t have any formal background in CS, PSU made me take a bunch of courses before letting me into the masters program. But those courses were pretty easy since I had a few years of programming experience already (and a knack for discrete mathematics).

Then I had a professor put together a summer course which was basically applying for and completing Google Summer of Code. Plus I started working at the CAT— they run the systems for all the computing departments at PSU, and they have a weekly “braindump” where they teach you all the CS you really need to know but which no class ever teaches.

Halfway through my masters I ended up transferring to a different school because the person who’d agreed to be my advisor turned out not to have enough time to do so. By this point I had my volunteer work at Free Geek, my course work from PSU, the Google Summer of Code, and my sysadmin work at the CAT. A pretty healthy CV for a masters degree. Plus, by that point my involvement with Free Geek had moved from teaching folks how to build computers to being the chair of the board of directors.

Once you were in graduate school, was it easier for you having already gone through so much introspection?

I think it’s been a lot easier for me than most folks. I still have doubts from time to time, but they’re not about whether academia is right for me, nor about what to do with my life; they’re more about how well I’m doing at it.

You’ve mentioned before that you transitioned during grad school. What was this like?

Overall it went surprisingly well. I’d been open about being trans since my first year of undergrad, so I didn’t lose anyone in my support network, unlike a lot of trans folks.

When I sent emails to my departments to let folks know what’s up (to avoid re-explaining things over and over) I got a surprising amount of positive feedback. A lot of students mailed me to let me know how empowered they felt to read my letter, and a few professors came out to me even though they’re not out to their own departments. It was awesome and quite unexpected.

That’s great! Has anyone inspired you similarly?

My advisor for undergrad was gay and open. He just started at Reed about halfway through my time there. I really liked him in general, and he was an exceptional advisor. But also, it was the first time I’d met “an adult” who was out, and a professional who was in my vocation no less! I think it was probably in those classes with him that I first started to imagine being a professor. Like, that job was never a possibility before and then suddenly “oh, people like me can belong here.”

He also really helped inspire me getting started at grad school. Kind of ironically. He wrote me a terrible letter of recommendation to get in at PSU, but I totally deserved it. I was an awful student at Reed. Smart, sure, but awful at committing to do the work. When I asked if he’d write me a letter, he told me up front that it’d be terrible. We sat down and talked for a while about what would be in it and why. And, of course, being told you’re an awful student, that stings; but it’s true, and I knew it was true, so it only hurt so much and that hurt fades quickly.

But his honesty meant so much more to me than anything anyone else had ever told me. When someone calls you smart, they’ve stopped seeing you. They see glinting reflections, not a person. When they call you smart, they stop questioning you, stop challenging you to improve. So to have someone see through that, to see the person beneath the smart and engage with me directly, that meant the world to me.

Were there any challenges to transitioning in graduate school?

The difficult parts came later. Nothing special about being trans, just standard issues about being a woman in a male-dominated field. As people grew accustomed to seeing me as female they started talking over me, ignoring my statements until repeated by a man, and so on. I was quickly taught never to wear anything particularly feminine at work. It’s all standard, but witnessing people’s behavior change so dramatically over the span of a couple years is quite jarring. I’d known about all this beforehand, of course, but knowing something is different from living it.

How pronounced are these issues compared to what you anticipated before transitioning?

It’s hard to say. It’s less about how pronounced they are, and more about the emotional valence of first-hand experience. Overall things are about as good/bad as I expected, I just identify more intimately with the things I knew before.

It’s also hard to say because life is so much better now. There’s just as much sexism in how boys are raised as there is in how girls are. So yeah, I deal with sexism, but I’ve always dealt with it— just from a different angle. The sexism I deal with now makes more sense to me; I know what’s assumed of me, know the rules of engagement, know how to survive within the system while continuing to challenge it. Whereas before I couldn’t even figure out how I was doing things wrong. So yeah the overall injustice is greater than before, but it “fits” who I am so much better that it’s a lot easier to navigate.

It’s interesting to hear your perspective as someone who was probably not socialized to communicate in a traditionally feminine way.

Socialization’s a funny thing. We’re exposed to both gender roles growing up. The nature of that exposure differs based on what gender people assume of you, but we don’t simply internalize the way people treat us, we also internalize the way other people are treated and how we’re expected to treat others. So, yes, people assumed I should communicate in a traditionally masculine way, but I don’t know how well I ever learned that.

Communication isn’t just about our own actions, it’s about how we respond to the other party. Our ways of acting are inextricably intertwined with how those actions are perceived when performed by a body like ours.

Thank you!

Chung-chieh Shan


We kick off The Identity Function with Chung-chieh Shan, an assistant professor at Indiana University. Chung-chieh Shan received both his B.A. in mathematics and his Ph.D. in computer science from Harvard. His work lies at the intersection of mathematics, linguistics, and programming languages.


Tell me a bit about yourself. 

I grew up in Taipei, Taiwan, in a society and family that privileged academic achievements. I am the youngest of three siblings and my parents worked hard to give me access to computers, telescopes, pianos, and professors. I also enjoyed writing while missing out on video games.

Anyway, I have since forgotten all the physics, chemistry, astronomy, Analects, and piano fingering that I learned. What’s left is intuition and caution in math and programming, and relative pitch, signposting, and apologizing.

It’s great that you had such a supportive environment. What brought you to the US?

College! My high school math teacher suggested it, and my parents went with it. In that era it was kind of rare for people from Taiwan to go abroad for college like I did, but it was very popular to go abroad for grad school.

So speaking of supportive environment, my math teacher had a previous student who went to grad school in the Boston area and stayed, and he and his family supported me in all sorts of ways there: Transportation, dentistry, food, advice…

Wow, that must have been really helpful! Do you think it made a difference for your career path?

Maybe — he was definitely a role model for me, being an immigrant who stayed in academia. And I wouldn’t take for granted the peace of mind that comes from knowing that someone is there to support me if I need it, even if it turns out I don’t.

But academia and STEM were defaults that worked out OK for me, so it’s hard for me to say what I’d be doing instead if not that.

I see that you started in mathematics. How did you get into computer science research?

I was interested in both math and CS in college, and I took a lot of CS courses as a math major. But I didn’t have math research experience and was discouraged by a fruitless mere semester of independent study. Math felt beautiful as a spectator sport to me.

I don’t know why my equal lack of computer science research experience didn’t deter me from applying, but I got in and went!

In the end I found the kind of CS research I’m most interested in is similar to math research in the following way: It is not predictable when you finally discover something very interesting or beautiful, but you can find steady work to do — such as working out special cases, trying out hypotheses, learning background material— and trust that work to contribute to those discoveries eventually.

Tell me more about your research. What are you working on right now?

I’ve been working on probabilistic programming, which generally means making it easier to program with probabilities. I focus on developing languages that make code more reusable and more clearly express human intent. For me this involves figuring out what human expressions mean and how to manipulate them.

What distinguishes the design of probabilistic programming languages from other programming languages?

What’s most important is that the semantics be probabilistic, so if I’m a user who’s interested in a particular probability distribution then I can write a program that denotes it. But we like the syntax and the types of a language to grow in tandem with the semantics, so we end up wanting syntax for composing distributions, types to distinguish distributions from other values, and so on.

The hope is that the programmer can write a program that handles distributions without worrying all the time about how exactly to represent and operate on them, just as programmers today can write a program that handles integers without worrying all the time about binary, adders, and register allocation.

So you’re abstracting the details of distributions? Does this mean that someone with little understanding of probability can write a program in this language, or does this still target domain experts?

The goal is at least that someone with little understanding of probabilistic inference algorithms can write a program in this language and get accurate answers quickly. The user can be an expert in a domain like epidemiology or linguistics and know what distributions are, but shouldn’t need to be an expert on how to compute with them.

Today there is still a tradeoff between getting accurate answers quickly and not needing to know computational details. My group is focused on freeing someone who does know computational details from having to re-implement them from scratch each time.

How does math inform your research?

My current work on probabilistic programming is based on a lot of math. To take one example, to translate a probabilistic program to the measure it denotes, we use induction on its abstract syntax tree; after we simplify the measure mathematically, to translate the result back, we use linear algebra on differential operators.

Formal tools aside, I find math elevates my hope for how small the core of a language can be and how smoothly its parts can fit together to help diverse communities discover common concepts and deepen shared understanding. Because my hopes are higher, I tend to try harder.

That reminds me of the first time I learned about the Curry-Howard Correspondence. It really changed my view of how work from one field can contribute to another.

Indeed —  it won’t surprise you that I’m a big fan of Curry-Howard and of contributions from one field to another!

For these contributions to stick, a computer scientist has to trust that a logician or mathematician who can barely check their email without professional help may nevertheless be willing and able to say something important about programming language design. And the logician or mathematician has to put in the work and vulnerability to subject their idea to foreign scrutiny and testing.

What about linguistics? How does that tie in?

I used to study the semantics of in-situ quantifiers in natural language, and they gave me intuition about how delimited continuations work in programming languages. On one hand, people use in-situ quantifiers in natural language all the time; an example is the word “nobody” in the sentence “I saw nobody yesterday.” On the other hand, although delimited continuations are very useful in programming, most programmers find them kind of weird.

It turns out that in-situ quantifiers and delimited continuations are analogous. For example, the type of “nobody” is (Thing → Prop) → Prop, and doesn’t that look like a continuation-passing type?

This analogy helped me better program with delimited continuations and better analyze in-situ quantifiers.  My dissertation generalized this intuition to one about side effects in natural and programming languages.

How does this relate to side effects?

One view of side effects is that they arise during the execution of a program and contribute indirectly to its result. We could complain that side effects break equational reasoning, but we could also refine our notion of program equivalence to match what reasoning is spared by the effects. In particular, we could apply something like a monad to enrich the denotations we assign to expressions.

Now, linguists also study certain natural-language phenomena, such as quantification, that break equational reasoning. For example, just because nobody is the king of France and I saw nobody yesterday doesn’t mean I saw the king of France yesterday. In response, linguists have applied monads to enrich the denotations they assign to expressions.

Linguists also have the intuition that these phenomena arise during the interpretation of an utterance and contribute indirectly to its result. So it makes sense to call these phenomena too side effects. It turns out that programming language notions such as evaluation order can be transferred to linguistic analyses.

Interesting. I never thought of viewing natural language this way.

I like to think that linguistics helps me bring diverse communities together by making sense when people use different terms for the same meaning or the same term for different meanings. Thus, I’ve been watching people create and analyze and express concepts in context. This has given me a healthy respect for formal methods as well as informal ones.

It has also led me to believe that distinctions that matter tend to have fuzzy edges. When you see that concepts such as games and numbers have fuzzy edges that cannot be formally defined, it’s no surprise that concepts of sexuality and gender do too, and the fuzzy edges of a concept are often revealed when we subject its versions to instances that are often dismissed as corner cases.

On that note, how has being LGBTQ impacted you as a researcher?

I came out to myself and others in college, so I was out in graduate school, and my job searches were two-body problems involving my ex-partner. Still, I didn’t feel that my orientation made much difference at work, whether at a technical discussion, a social occasion, or a hiring decision. I was never involved with campus LGBTQ groups, seldom visited a gay bar, and in more than a decade at work, I did not experience or witness any homophobic incidents.

Though if I could have gained US citizenship by marriage, I would have spent much less time applying for visas to attend international conferences…

I’ve noticed that in our academic culture, orientation is treated as a personal detail, and so it’s taboo to talk about it in the workplace. Has this silence impacted you at all?

There’s an impact like dripping water wears away a stone. The lack of visibility and representation of LGBTQ people in academia has chipped away at my sense of belonging and my hope for role models. And I find myself self-censoring how I describe my family and friends to my colleagues, even when their contributions to my life are relevant to the conversation at hand.

I like to be reminded at work that each of us is a human being, and it’s a lot easier to think that you manage to separate who you are from what you do when who you are happens to fit in better with how society is set up (through no fault or merit of your own) so you don’t have to censor as much the family you keep, the languages you speak, or the clothes you wear. I’d like me and my colleagues to be more conscious of these social expectations.

How have you dealt with this throughout the years?

Instead of separating who I am from what I do, I try to match my colleagues in terms of how much they fail at that separation. I incorporate a bit of my own cultural references into how I speak and dress. I once convened a QUILTBAG lunch table at ICFP and I’ll probably do it again.

What a great idea! How did that work out?

It helped me — I established some friendships and deepened others — and what little feedback I heard was mildly positive. It was just one table at one lunch.

But next time I would advertise my expectations more clearly when I sit down at an empty lunch table, both to QUILTBAG people and to other conference attendees passing by who just want a seat to eat and talk about monads. There was substantial derailing from the latter this time.

Thinking back — if you were to talk to yourself from twenty years ago, would anything about your current life be surprising?

Everything I said so far would have surprised myself twenty years ago, except for my staying in a STEM career in the US. I wasn’t even out to myself twenty years ago. Here’s one more surprise: I regularly travel hundreds of miles to see my friends, and they’re not from work!

Are these friends from the community? One of the things I’ve always loved about being LGBTQ is that it opens up this whole diverse, beautiful, and supportive community.

Yes! Of course every community has its ups and downs, but I’m lucky to be able to access some communities, and they are a big part of what makes Indiana home for me.

If you don’t mind me asking, what was the coming out process like for you? You mention being out to yourself; was there a period of denial?

I probably had a period of denial. But it didn’t make me uncomfortable while I was growing up, because academic performance was so paramount that sexuality of any sort was easy to avoid.

I wonder if, to some degree, this is part of the problem. If we are so focused on academic success that we sometimes forget that who we are is important, too.

I would definitely pay attention to who gets to set the standards as to what counts as academic or professional success and what aspects of who we are are appropriate to bring into a school or workplace.

How do you think we can change this for future researchers?

I hope to be visible, to represent, to step a bit outside my comfort zone, to invite and make space for me and my colleagues to interact as embodied human beings with identities, and finally to recognize others when they do the same.

I’m doing this for other LGBTQ folk. I want us to see each other! (If others see us too, so much the better.)  It takes mutual trust and effort.

Thanks again for doing this! 

Thank you!

What is The Identity Function?


We owe this to Alan Turing

The Identity Function is a blog interview series about LGBTQ computer science researchers.The goal is to increase the visibility of LGBTQ computer scientists and make it clear that our field welcomes people of all gender identities and orientations.

Interviews for The Identity Function are multifaceted: They are focused both on academic achievements and on the impact of being LGBTQ in a field that is largely silent.

The lambda is a historical gay rights symbol. The title image is the identity function in the lambda calculus. The lambda calculus is an elegant, simple, and expressive programming language.

Orientation and gender identity are functions of identity. The identity function maps any value to itself.  The title reflects the intersectional nature of this blog.

Why is this necessary?

In an ideal world, it wouldn’t be. But our world is far from ideal.

The default assumption is that everyone is straight and cisgender. The impact of silence on invisible minorities is heavy: If we don’t know that anybody is like us, how do we know that we are welcome?  Who are our role-models?

Imagine that you are going to a party through your department. You bring your spouse. If you are married to someone of the opposite gender, this is probably something you do already. It surprises nobody. If you are married to someone of the same gender, you are inadvertently making a statement. People notice. How do you know if it is OK?

There is no good place to talk about this in our academic culture. And this makes sense. Why would we talk about our dating lives in class or in the lab? But there needs to be a place to talk about it. That’s what this blog is.

What exactly will I learn?

You’ll learn about researchers who are invisible minorities. You’ll learn how this impacts the researchers.  You’ll learn about the researchers. You’ll learn about their research.

Again, this is a function of identity. Orientation is about attraction, partnership, and identity. Gender identity is about identity.

Won’t this alienate people in our field?

The goal is to create an isolated, safe medium in which to discuss orientation and gender identity among computer science researchers, with the goal that any benefits will outweigh the harms. People who are disinterested or uncomfortable can choose whether or not to read this. This will not permeate the classroom. It is what it is: A blog.

All people are free to have the opinions they choose, and these opinions are surely shaped by culture. Computer science should also be a welcoming field across cultures.

But people of different identities should feel comfortable being themselves. This is not currently true. This blog aims to change that.

I’m interested in being interviewed!

Awesome! Reach out to me directly. Check out my website for contact information. Send an email with the title “Identity Function Interview,” or reach out to me through social media.

Thanks for making the world a better place!

About the Author

Talia Ringer is a graduate student at the University of Washington studying programming languages & software engineering. She graduated from Maryland in 2012 with a degree in mathematics and computer science. She then worked at Amazon for three years before returning to research. In her spare time, she enjoys running, triathlon, and writing. She is active in both outreach and mentorship. She has been openly bi for more than ten years.