Sunday, August 28, 2016

Arguing for your research

Everything from paper abstracts to grant proposals to fellowship applications, at every level from an undergraduate independent study to a full grant proposal as a faculty member, requires one key task: convincing the reader that your research project is any good. Usually "good" more specifically means: does it solve an important problem? Does it address an important issue? Does it explore important unexplored territory? And, if you haven't done it yet, do you have the right tools to solve/address/explore it?

In general, I'm not a huge believer in "formulaic" writing -- the idea that every body of writing ought to be formatted the same way for best results. Especially in creative domains, so much power can be wielded in breaking traditional structures. But for scientific writing, especially project proposals or article submissions, I do find that it really helps to not have to think about how to structure something and instead just plop down a default outline. If it does happen to make sense for the writing in question, it's great -- heavy scaffolding laid down can save time when later editing the details. Philip Guo talks about this kind of scaffolding in terms of the hierarchical structure (tree, outline) of written text that mediates between the messy undirected web of concepts in our head and the linear string of text that communicates to the reader. I like this framing in general; I want to talk more specifically about the contents of a certain kind of top-level outline.

A formula that I have found especially helpful for everything from abstracts to grant proposals is something I learned from CMU's Global Communications Center, the so-called novelty moves. This strategy proposes three steps:

  1. Establish the territory;
  2. Identify a gap;
  3. Fill the gap with your research.

I have been presenting this structure to the undergraduate students I'm advising this semester in a little bit more detail; my version goes (operative words bolded):

  1. Motivate the research area.
  2. Provide context of what has been achieved in that area.
  3. Identify a gap or a compelling research question.
  4. Describe the approach we're going to take to fill or explore it.
  5. Describe the impact our work will have on (1) if we're successful.

The interesting thing to me about "structures" like these is that they're always given in sequential (list) order, the same way the final writing product will be, but what they really pertain to is an argument structure. Each step of this plan serves a communicative purpose, and the sequence as a whole satisfies a communicative goal.

A bunch of my prior research has focused on formalizing narrative structure for written text or games that are designed to entertain, to tell stories leading to rich emergent interactions between characters. With so much thinking about the structure of scientific arguments, I've instead been thinking of the structure found in those. In fact, my postdoc project at UCSC involved a formalization of proceduralist readings, which are effectively arguments about what a game means. We realized that we could use logic programming techniques to construct these arguments from a set of hand-authored rules (paper coming out soon!).

Each line of the novelty moves serves a purpose -- in conjunction with some axiomatic assumptions (e.g. "My reader believes field X has value"), the line in the argument serves to satisfy the goal "convince the reader that my research solves an important problem related to field X (which they believe has value)." If it doesn't work toward that purpose (or if the reader can't infer its purpose to that end), it will confuse the reader; if one of the assumed inferences or axioms doesn't hold, the reader will fail to be convinced. Of course, formal logic was originally invented for the purpose of formalizing arguments, so it's no surprise that their structure winds up looking very proof-like. (Then again, the inference rules that occur in human cognition are pretty different from those used in formal logics.) It seems like a perfect opportunity to unify narrative discourse generation and formal logic.

So there you go. I've been so fixated on research that now I want to do research on research writing.

Thursday, August 18, 2016

First semester as a tenure-track professor begins!

In the wake of the busiest Spring and Summer of my life, it appears that I have neglected to inform this blog of a major change to my academic life: I have accepted a position as a tenure-track Assistant Professor in the Computer Science Department at North Carolina State University! The semester just started yesterday; I taught my first Ph.D. seminar class on Generative Methods.

At NCSU I am joining an active Games research community with colleagues Dave RobertsTiffany Barnes, and -- as a result of his move this summer from UCSC -- Arnav Jhala. These folks also have very active research programmes in in learning technology (Barnes), visual narrative (Jhala), and dog cognitive science (Roberts) (yes, you read that right) (dognitive science?). I also have a number of new colleagues doing research in Software Engineering, HCI, and AI topics that overlap with my PL, tool design, and logic interests, so I'm excited about learning more!

Once I get my research priorities established and a webpage set up, I'm going to be actively recruiting Ph.D. students, so keep an eye out for that post.

Saturday, May 14, 2016

Learning to love conferences

Jean Yang, Nadia Polikarpova, and Shachar Itzhaky recently put together a post giving advice to a first-time academic conference-goer. Looking at this advice from where I am now, as a semi-experienced academic with several conference communities I really love to be around, the advice resonates with me, to an extent: if I prepare well, a conference can be a great opportunity to extend the breadth of my network and find new collaboration opportunities.

But careful preparation and bold approaches of strangers were not, by a long shot, how I learned to enjoy conferences. And enjoyment was, for me, a crucial step to being good at them. I don't want to say you have to enjoy conferences in order to be good at them, but, since they are primarily social & emotional labor, sincerely enjoying yourself will make the job easier.

Personally, when I first received advice like Jean et al.'s as a new grad student, I had very bad experiences. I went in believing that I was all but disallowed from talking to people I already knew, and that the path to success was to go up to strangers I wanted to meet and try my hardest to impress them with my research. Here's the problem: I've struggled with social anxiety my entire life, and only started treating it several years in to grad school. So... the first several times I mentally prepared myself to approach someone and introduce myself at a conference, I had panic attacks -- shaking uncontrollably, difficulty breathing, nausea, &c. I stopped being functional at all and had to retreat to my hotel room to recover. Not the best way to make friends at a conference!

The few times I happened into conversations with new folks, as soon as my research came up, I felt so much pressure to impress that I did a terrible job of explaining it, and utterly failed to communicate excitement or interest in my work (or theirs), because there were so many negative feelings behind the activity I felt like I was trying to take part in. I came away from my first few conferences thinking, "Networking is just one of those necessary evils of academia, where everyone has to be fake to get ahead, and I'm never going to like it or be good at it."

Reflecting on the difference between this attitude and my current one wherein I look forward to conferences and find them energizing and inspiring, I can list a few things that seem like they played key roles. Of course, combating social anxiety should definitely include professional therapy if at all possible, which I've discussed in a prior post. But allow me to stick to the conference-specific points for this post.

  1. Acknowledging that conference anxiety is common was important for me -- hearing from my peers that they, too, find conferences exhausting and socially draining, helped me feel less alone. Realize that most folks who have a great deal of facility in a given conference environment have probably built up relationships with that community over several years, and don't expect yourself to have the same facility immediately. It's okay to be a newcomer, and it's okay not to be neurotypical.
  2. Going in with a cohort and/or a buddy that I could treat as "home base." Counter to the "don't talk to people you know" advice, I'd say it can actually be really important and helpful to do so -- not constantly, but simply as an anchor point. Have someone you can check in with to say "Hey, I just met [really famous researcher] and she was super nice to me! Do you want an introduction?" or "Wow, that person was kind of rude in Q&A, huh?" or whatever. Help each other out!

    As a personal concrete example: when I was first getting to know the games research crowd at FDG last year, being in a cohort of UCSC folks, who are well known as a group, and being able to introduce myself in relationship to them, was really enormously helpful in getting a foothold with strangers.
  3. Not being afraid to sacrifice breadth for depth. Sometimes it feels like you're not winning the conference game unless you're meeting as many people as possible, and during a great in-depth research discussion, it might be tempting to say "let's continue later, I need to circulate around the room." I've actually found it useful not to do this. As someone who tends to get more mileage out of few close connections than loads of shallow ones, allowing myself to really spend time with one or two new people has had a lot better future payoff.
  4. Posting to social media (in my case Twitter) has been a surprisingly effective way to make friends at conferences. Use the conference hashtag; post your notes or thoughts about a talk; check the hashtag yourself and reply to other people conversing. Often what happens is someone will ask to say hi to you in person if they'd like to talk in more depth about a comment you've made. I'm a lot more comfortable speaking my mind online, so this has been a great way to take advantage of my current comfort zone in order to expand it.
  5. On the hallway track: a common adage about conferences is that they're "mostly about the hallway track" and "the talks are less important than the people." I agree, but it took me a long time to get there, and when I first started out, I wasn't really sure how to apply this advice, because I'd often waste the hallway tracks standing around awkwardly with no one to talk to. Then, at lunchtime or whatever, someone would ask a question about that one great talk and I'd have nothing to say because I had skipped it. As a newer member of a community, I've found splitting talk/hallway track more like 70/30 (rather than my typical 30/70 these days) to be beneficial. And be sure to ask any senior members of the community you know which talks are not to be missed. (As a general rule, don't skip keynotes).
  6. Finding my people in sometimes-arbitrary ways can be helpful. For example, if the catered lunch isn't vegetarian friendly, asking a group (online or otherwise) who wants to go visit the nearest Indian restaurant/Chipotle/fancy local vegan place can be a great way to carve a subset of people with whom you immediately have a common discussion topic. Doing this by research interest -- e.g. at FDG, my roommate and I organized a "computational narrative" informal birds-of-a-feather meetup -- can be even better. (See point 2: having a "partner in crime" to help you spearhead things like this can be super useful!)
  7. Giving myself room to acknowledge and care for my needs has probably been the most critical change in behavior for being happy at conferences. At literally every conference, even now, I pick 1 or more sessions to skip just to do whatever feels most comforting to myself: lying in my hotel room with a book, sitting in a park, working out, grabbing tea with a close local friend, even just camping somewhere inconspicuously adjacent to the conference with my laptop and working on some research code or reading Twitter. It's really, really okay to disengage to whatever extent you need to, and it's been crucial for helping me conserve energy to keep being socially involved throughout longer conferences.

On the conference organization side, here are some things your committee can do to help guests with (my particular flavor of) social anxiety feel more comfortable and welcomed:

  1. Host the conference either in, or very close to, the hotel(s) where folks are staying so that it's easy to get back to your room.
  2. Host the conference somewhere in an environment where it's easy to get away for short durations: an urban environment, a campus with public spaces, or somewhere close to good transit options.
  3. Have a quiet room.
  4. To the extend that budget allows, do catered or otherwise on-site lunches (taking care to accommodate a wide range of diets!). It avoids awkward "will the team captain pick me last" situations where people have to self-organize into meal groups.
  5. Do some (optional) group off-site activities like hikes or board game nights, which allows folks to interact in a more casual, low-stakes environment if they wish.
  6. Hold post-talk discussions in their own room rather than doing Q&As, so that even those who are nervous about talking in front of large groups of people can have their thoughts about a talk heard. (Bonus: this saves time in the talk schedule!)
  7. Have a mentoring workshop or doctoral consortium to help acclimate junior researchers to the conference environment and provide a space for asking "beginner questions."
  8. Especially for the mentoring activities noted in (7), but also just in general, do all the usual things for ensuring you have a diverse line-up of conference speakers and leadership. There's nothing like being not only a brand-new member of a community with few connections but also feeling like a total outsider in terms of your core identity.

Thursday, April 21, 2016

Two new drafts

I'm pleased to report that two new papers have been accepted to upcoming conferences!

A short abstract "Towards Computational Support for Experimental Theater" (2 pages) has been accepted for presentation at FDG/DiGRA.

And a new collaboration with Rogelio Cardona-Rivera on "Discourse-driven Comic Generation" (8 pages), building off work previously featured on this blog, has been accepted for poster presentation (and inclusion in proceedings) at ICCC.

These papers both represent very preliminary work, so I'm looking forward to conversations about these ideas with the broader community.

Monday, April 18, 2016

Call for Papers: International Conference on Interactive Digital Storytelling (ICIDS 2016)

I'm on the program committee for ICIDS 2016! CFP copied below.


ICIDS 2016
November 15-18, 2016

The Institute for Creative Technologies
The University of Southern California
Los Angeles, USA

Tuesday, February 9, 2016

Call for Papers: Trends in Functional Programming 2016

I'm on the program committee for TFP, the Trends in Functional Programming Symposium! TFP is an unconventional conference: papers are very lightly reviewed in order to be accepted at the symposium, then after they are presented, another phase of refereeing happens to select a subset of the articles for formal publication.

The Symposium is June 8-10 at the University of Maryland, and draft paper submissions are due April 8!

Quoting the scope from the official CFP, TFP is interested in the following kinds of articles:
  • Research Articles: leading-edge, previously unpublished research work
  • Position Articles: on what new trends should or should not be
  • Project Articles: descriptions of recently started new projects
  • Evaluation Articles: what lessons can be drawn from a finished project
  • Overview Articles: summarizing work with respect to a trendy subject
Topics of interest include (but are not limited to):
  • Functional programming and multicore/manycore computing
  • Functional programming in the cloud
  • High performance functional computing
  • Extra-functional (behavioural) properties of functional programs
  • Dependently typed functional programming
  • Validation and verification of functional programs
  • Debugging and profiling for functional languages
  • Functional programming in different application areas: security, mobility, telecommunications applications, embedded systems, global computing, grids, etc.
  • Interoperability with imperative programming languages
  • Novel memory management techniques
  • Program analysis and transformation techniques
  • Empirical performance studies
  • Abstract/virtual machines and compilers for functional languages
  • (Embedded) domain specific languages
  • New implementation strategies
  • Any new emerging trend in the functional programming area
More information can be found on TFP's website.

Friday, February 5, 2016

OBT 2016: Operationalizing Creative Theories

Below are the slides for my keynote at Off the Beaten Track (OBT) 2016, co-located with POPL:

Since my preference for sparse slides makes this deck difficult to follow sans soundtrack, I'd like to recap some of the ideas I presented. If you'd like to open the slides in a new tab, here they are on Speaker Deck.

I titled the talk "Operationalizing Creative Theories" before I knew what the talk was going to be about, so it's not a perfect title. I initially picked the word "operationalizing" in the sense of Eger et al.'s "Operationalizing the Master Book of All Plots," which I like very much as the verb referring to the Generative Methods idea of "taking a formal, declarative specification of what a creative domain is made up of and turning it into an algorithm for constructing instances of that domain."

I talked a little bit about operationalization, but mostly I talked about interrelations between formal logic and the concepts of world simulation and generativity in games. The first few slides allude to Dave Walker's POPL keynote on Research Confluences, instantiated at the confluence of POP methods (computational logic) and EIS methods (expressive game design). (Since EIS is pronounced "ice," it just occurred to me that I missed an opportunity to make an ice-pop pun. C'est la vie.)

Text to the accompany the slides after the introduction follows.