30 Days of Research Challenge

I’m a fan of 30 day challenges. I’ve been a regular participant in AcWriMo for a few years running, and I occasionally do 30 Days of Creativity in June. A few of my colleagues are participating in 30 Days of Biking this month, and Runner’s World famously does a holiday running streak, where you pledge to run every day between Thanksgiving and New Year’s.

There’s something really appealing about these. The challenge is short enough to not be daunting (unlike, say, Project 365), but still challenging enough (you know there will be at least one crazy day where it will be a struggle to fit in that run or make that craft or draft that article). And there’s always the hope that the 30 day kick-start of a habit will prolong the habit once the project ends.

While, to be honest, I’ve not yet found that any of the 30 day challenges I’ve done actually translates into an honest-to-goodness daily habit, I still like doing them. They give me permission to spent concentrated time on things I deem important—communicating my research, in the case of AcWriMo, and taking creative time for myself, in the case of 30 Days of Creativity. And even if I don’t end up continuing the daily aspect of the challenges past the 30 days, I often sustain some momentum post-challenge, which is definitely worthwhile.

So I’m embarking on a 30 day challenge of my own, in hopes of kick-starting a habit that’s sadly fallen by the wayside: research. Winter term was insane, and even though I consider myself the Queen of At Least 30 Minutes of Research Every Workday, that hasn’t happened regularly since….er, January. And even the few times I had time, theoretically, for research, I was somewhat stuck on some difficult problems and at some point it just became easier to….do other things and ignore the research.

This madness has to stop, if for no other reason than I genuinely like my work and want to get back to it!

So my challenge: 30 days of research. Yep, every day in April, I pledge to do between 30-60 minutes of research. Every day. Even weekends.

Research is (almost) anything related to my work. Right now, for instance, I’m reading/working my way through a fascinating article. I did an extensive lit search the other day. I need and want to sketch out some article ideas. A while back someone emailed me for help replicating one of our experiments, and I need to get back to them with some setup-related things. I want to play around with a related dataset I found. These all count. However, some research tasks, like meeting with my research student, don’t count—this has to be MY work in order to count.

It will be interesting to see how many days I can keep this up, and how much this will kick-start my productivity on the research front. If you’re interested on embarking on this with me, let me know in the comments or on Twitter!

 

Teaching a new language in a course, when the language is not the focus of the course

Like many computer science departments, the languages we teach our students vary over time. When I was hired, we taught Java in Intro and C++ in Data Structures (our CS 2 course). The year I started, we moved to teaching Java in both Intro and Data Structures. (Thank god, because my C++ was pretty rusty at that point.) When I returned from maternity leave in 2008, we switched to Python in both Intro and Data Structures. This was absolutely the right move for Intro, as it’s much easier to get up and get going in Python than it is in Java, but proved a bit problematic for Data Structures—not right away, but down the road, as we found that our majors were less willing to learn new languages since Python was so easy and familiar to them, which in some cases really hurt their Comps (capstone) projects. (Image and sound processing in Python? Bad idea!)

A few years ago, we decided to keep Python in Intro, but switch Data Structures to Java. The switch had the intended effect—our majors are more comfortable learning new languages on the fly, because by the time they’ve finished their first 2 CS courses they’ve programmed in 2 languages. But of course we originally switched from Java for a reason—its steeper learning curve. (public static void main(String[] args), anyone?) And so we still run into the issue: how do you successfully introduce Java, or any new language, in an early CS course, when the language itself is secondary to the course?

I’ve taught the course twice now under this “new” format, and I think this time around things with the language transition went much, much better. There’s still a lot I can improve, for sure (more coding in front of the class instead of just giving them some code and setting them loose, more small examples at the beginning), but there were a few things that definitely went better this time around:

  • I spent a full 2 weeks just on Java. Even though this meant I had to cut down on some things I would normally cover (like my beloved Dijkstra’s algorithm, and some of the finer points of hash tables), I felt it was important to give the students enough time to become comfortable, or at least familiar, with the new language before asking them to dive into the course concepts AND implement them in the new language.
  • I started the language transition by providing examples in both Python and Java. I wanted my students to come away from the experience realizing that Python and Java really aren’t so different, and while Java definitely has more overhead, it also has a lot in common with Python. Showing the same code in both languages, and giving them both versions of the code to play with and modify, helped them be comfortable with thinking in the new language. In fact, in many of the early exercises, I encouraged students to write the code in Python first if they were confused, and then translate it into Java. (I also relied on readings that introduced Java syntax and principles in relation to Python: Brad Miller’s Java for Python Programmers, and Ken Lambert’s From Python to Java. The latter is great because it has the same concept presented with side-by-side code examples.)
  • I approached inheritance differently. Inheritance is a topic we all agree that students should be familiar with by the time they finish Data Structures. I used to stress inheritance quite a bit early on, having students write subclasses and interfaces and so on in an early project. This time around, we did some straightforward inheritance examples late in Week 2, with subclasses and superclasses, and discussed a bit about abstract classes, but I limited this largely to in-class exercises. Related to this…
  • I incorporated interfaces throughout the course, as “code templates”. Students find the idea of interfaces confusing, and rightly so. I decided this time around that I was ok if they didn’t fully understand what an interface was or the instances in which we might use one, as long as they could use and incorporate interfaces somewhat competently in their code. So for every ADT we studied, I gave them an interface for that ADT. I “sold” it as a template for what their methods should look like and how they should behave. I used it to illustrate that we can implement ADTs quite differently and they can still function the same way (and that the end user doesn’t have to and shouldn’t know anything about the inner workings of the resulting data structure). I don’t know how much students really understood about interfaces by the end of the term, but at least they were able to competently integrate them into their code. (Bonus: they made grading the projects much, much easier—everyone’s methods had the same signatures!)

There are still challenges when teaching the course in Java: how and when to introduce generics (I tend to minimize these: students can use them, but I don’t require them to implement classes with generics), finding a textbook that I can live with (still searching), etc. And surely as I continue to reflect on Winter Term as I gear up for Spring Term, I’ll remember more of what worked and what didn’t. But overall I’m pretty pleased with the language-related stuff in the course this time around, and will probably use largely the same model the next time I teach the course. (Assuming, of course, we don’t decide on another language switch between now and then….)

Leading in the midst of tragedy

On Saturday, the Saturday at the end of 8th week of winter term, our computer science seniors gathered to present their Comps (group capstone projects, for those readers outside of Carleton). The day typically has a celebratory feel: this is the culmination of 2 terms of hard work on their part, and this is their chance to present their work to their friends, family, and classmates. The morning started, as it usually does, with a welcome from the CS faculty, which this year I gave.

Except instead of welcoming the students, friends, and family like I normally would, I stood in front of all those gathered, with the rest of the CS faculty at my side, and tried to speak words that would make some sense at all of the tragic events of the day before: the loss of three students, including one of our junior majors, and the serious injuries to two other students.

Someone asked me later what I said. To be honest, I have no idea. The shock and grief were too much. I remember going to the front of the room and picking up a microphone (and then handing it off to one of our seniors when I couldn’t figure out how to turn it on). I remember talking, but not the actual words. I remember asking for a moment of silence. I remember thanking everyone. And the next thing I remember, I was sobbing in the ladies’ room.

Our students carried on admirably, given the circumstances. I think it helped that we were all together that day, as a department, and that we had something else to concentrate on for a while. It helped that we rearranged the schedule so that we could attend the memorial service in the middle of the day. But I’ll admit I was splitting my time between listening to the presentations and figuring out what we, as a department, should do: for our grieving students, for the family of Paxton, for each other.

There is nothing in the chair’s handbook that walks you through what to do as a department when a student passes away. There is nothing in the faculty handbook that indicates what you should do the first class meeting after a tragic event plunges a campus into grief, or how to counsel students who are struggling to make sense of something that makes no sense at all, who are grief-stricken and in shock and maybe feeling even more alone than before. There is nothing in my years of on-the-job experience that remotely prepares me for what I, as a faculty member and as a department chair, am dealing with now.

So I’m figuring things out as I go along. I didn’t plan any special remarks for class—I went with what I was thinking at the moment, and I honestly told my students that I wasn’t sure how to proceed, either, but that I would just try. That we’d be flexible and figure things out together and see where that left us. That it was important to reach out and to keep talking and to use the available campus resources. That I am also a resource that they can lean on, even if I don’t exactly know what I’m doing. That the next days and weeks and months would be sad and hard, but that we are a strong community and that ultimately that will get us through.

This afternoon and this evening, we will gather as a department to remember Paxton especially, but also James and Michael, and send healing thoughts to Will and Connor. It won’t be enough. It won’t be nearly enough. But it’s something, and we’ll figure out the rest as we go along.

Catching my breath

Today, for the first time in weeks, I am working at home, in my sun-drenched home office, with my work tunes playing, a steady supply of hot tea, and my feet propped up. Save for a few phone calls and a flurry of emails earlier, my day has been blissfully interruption-free. I’ve actually had time to think for more than 5 minutes! I tackled (and finished) a task that I knew would take me a while that I’ve been saving for a day like today. I’ve caught up on the million little things that have been piling up over the past month-plus, and will tackle a bunch more this afternoon. I may even finish the draft of the exam I’m giving in class on Friday. (Dare I dream that I’ll even get to “read a research article”, the last item on my list for today?)

The past month and a half has been a whirlwind of running from one thing to the next (sometimes literally). Service activities that I thought would be quite manageable morphed into time-suckers. Some unbloggable things happened that required more time and energy than I had to spare, but that had to be dealt with immediately. (If there’s a silver lining there, it’s that I now know an awful lot more about the existence of various campus resources, and that info will definitely come in handy in the future.) Then there’s scheduling, scheduling, and more scheduling—finalizing the spring term schedule, making the schedule for next year and the year beyond. At least the spring schedule was easy—a room change here and there, perhaps a change in the course capacity. I’m quickly learning that making a schedule and satisfying a million usually conflicting constraints is hard, hard, hard. And hiring, which has pretty much taken up all of my time for the past month and a half. (Logistics! Campus visits! Entertaining! And that’s after going through the amazingly challenging work of reading applications and narrowing down the strongest pool I’ve ever seen.) If it weren’t for my research student this term, there would be no research happening this term. And thank goodness I’m teaching one course that I’ve taught many times in the past, with an incredible group of students who has made my job as a teacher so much easier this term, because otherwise I’m sure I would not be sleeping at all.

I really, really, REALLY needed a day like today. When you’re in the midst of such craziness, you almost lose a sense of your surroundings—you’re so focused on getting something done in the moment so that you can move onto doing something else in the next moment, and you don’t dare stop to breathe because the sheer volume of what needs to be done may drown you. But that’s not healthy or sustainable. (In fact, the moment things calmed down a teeny bit? I got sick. Of course.) We need time to reflect, time to work carefully and deliberately, time to sit and stare out the window and think. Time to not be interrupted. Time to consciously decide what to do next. Time away from the tsunami of tasks and demands. Time to control the to-do list, instead of having it control you.

The next few weeks are still packed—our seniors present their Comps on Saturday, we’re still in the process of hiring, the term ends soon, and I’ll be at SIGCSE next week (yay!). So this respite is brief. On the other hand, these upcoming weeks are at least manageably packed, and you can bet I’ll be making time to, if not fully re-create today, at least partially re-create it, even if it’s just closing my door for an hour and consciously deciding how *I* want to spend that time.

Musings on learning a new (to me) subfield

The other day, a student left my office, beaming. She and I had just finished discussing some project ideas she might pursue, with me serving as a technical mentor (and mentor in general). I was also beaming—the projects and the potential collaborations sound exciting! There’s lots of stuff of interest to pursue!

Then I put my head on my desk and groaned, as the Impostor Syndrome and doubts started to creep in.

For much of my career, I have been a Networking Person. Not as in “someone who schmoozes and hands out business cards” or “one who is always on Facebook” (ok, maybe that latter one is true), but as in someone working in the field of computer/communications networks. I was a Networking Person when I was still an electrical engineer. I was a Networking Person in my Master’s project and PhD dissertation. I was a Networking Person in my post-doc. I am “the” Networking Person at Carleton. I do research in the broad areas of Computer Networks, publish most of the time in networks-related conferences, journals, and workshops. I always have, and continue to enjoy, networks as a field (other that the dismal percentage of women)—I find the field fascinating, the possibilities endless. I geek out on RFCs and traceroute; an afternoon playing with Wireshark is my idea of fun.

However, lately I’m finding that I have a new passion in an entirely different subfield. It started off as mainly a teaching interest: a module in a Software Design course, a dyad, and eventually an A&I (freshman) seminar. At some point I realized I was actually doing some of this stuff in my research. And then I started working on a project where this other subfield is as much a part of the project as the Networking part. And started getting excited about other projects—like the one at the start of this post—that are clearly and firmly in this subfield.

I think this means that I’m not just a Networking Person anymore. I’m well on my way to being a Human-Computer Interaction (HCI) Person.

When I was just “dabbling” in the field, or just teaching it, I felt more comfortable with this dual role—perhaps because Networking Persona was still the dominant persona. But as time goes on, that’s becoming less true. It’s definitely not half-and-half, but it’s getting close. HCI Persona is here to stay, and is growing. I’m just as fascinated, and sometimes more fascinated, with the HCI research questions in this project (and in general) as I am with the networking questions.

And this has me somewhat panicked. Philosophically, I’m thinking about the point of the PhD. Is the point more to make you an expert in a tiny corner of your chosen subfield? Or is it more to teach you the skills you need to become an expert in a tiny corner of any subfield? Some skills obviously do transfer—how to do a literature search, how to evaluate sources and conferences and journals, how to learn something quickly, how to envision further extensions and applications of a concept. But a lot of your time in graduate school is learning a particular piece of a particular subfield: what are the seminal works and ideas? what is the main corpus of knowledge and main skill set that everyone in this subfield should have and know? what are you going to be the expert in?

To what extent are you “stuck” in your subfield post-PhD? And how far afield can you go, successfully?

In some respects, this whole internal discussion and line of questioning is moot, because I’ve clearly already headed down the HCI Persona road and don’t particularly want to turn back. But it is something I continue to reflect on, as I work hard to catch up to speed on something I have never, ever formally studied.*

Have you gone far a(sub-)field of your dissertation subfield, or discipline? If so, I’d love to hear your experiences in the comments!

* The irony is not lost on me that I’m choosing to stress about switching subfields within the same discipline, when in fact I switched an entire FIELD and have never formally studied the field in which I now work.

Cutting myself some slack

Around the start of the new year, some friends started a Facebook conversation on their new year’s themes and resolutions. For various reasons mostly relating to exhaustion and burnout, I was in a pretty foul mood at the time, and I jokingly posted that my resolutions were to cut myself some slack, take more bubble baths, and eat more good chocolate.

Except something funny happened: I realized that these, in fact, were brilliant resolutions, and that I should, in fact, adopt them this year.

I haven’t made much progress on the “eat more good chocolate” front. I’m doing slightly better in the bubble bath category. I have, however, made a lot of progress on the cutting myself some slack front.

Here are some ways I’ve been cutting myself some slack since the start of the year:

  • Making the (tough) decision to not resubmit my failed NSF grant this round. I’d fallen behind on the revisions and some of my experiments didn’t end up panning out as I’d hoped. It would have taken a herculean effort to submit it on time, and with all my other obligations (particularly as chair of our hiring committee), I decided that sleep and eating and not whipping myself into a frenzied panic was worth a year’s delay in resubmitting it. (This ended up absolutely being the right decision—right after I emailed our grants person, my schedule for the week exploded. I seriously would not have slept at all that week.)
  • Recognizing when to let work go undone/taking care of myself. Several times this year I’ve gone to bed right after my kids, even though my to-do list overfloweth. Guess what? I’m way more productive when I get a proper night’s sleep, and the work gets done anyway. (Duh!) Or it doesn’t. And that’s ok too.
  • Saying no. One of the ways I repeatedly get myself into trouble is by way overestimating the amount of “free time” I have. This term, I am ruthlessly saying no as much as possible and being very, very selfish of my time. Partly this is to rebalance my workload so that I have more time for research and spend less time on service. Partly this is so I can, oh, have some semblance of a life outside of work (unlike fall term, which was all work all the time, hence the burnout).
  • Letting go of the working parent guilt. I sometimes tend to beat myself up that I don’t spend every waking minute from the time I get home until my kids are in bed having Meaningful Experiences with my kids. Surely, I think, I should leave the dinner dishes until later, and play with my kids now! Surely we should be doing art projects and playing games so that they have happy childhood memories! One night this week, as I was cleaning up the kitchen after dinner and the kids were playing in the next room, the parental guilt showed up. (I was also single parenting, so the guilt was doubled, as it usually is.) But then I realized: Yes, I could leave the dishes and cleanup until later, and play with my kids, but then I’d spend all evening fixated on the fact that I’d have to do dishes and clean up the kitchen after the kids were in bed, instead of doing something for myself after the kids were in bed. And I was having a great time listening to my kids play together, and they were having a great time playing together without me. If we were all doing things that were making us happy, why on earth was I feeling guilty? Problem solved; guilt extinguished.

I still have lots to work on—sometimes less-productive days will still send me into a tailspin of guilt, and darned if it isn’t really hard to say no and to get to bed at a decent hour and let the inbox grow. But being more mindful of my sticking points, and working hard to overcome them, has been a tremendously freeing exercise.

Now, however, I need to go do something about that good chocolate resolution…

On productivity and expectations of productivity

By some accounts, this year in research was a failure.

One of the challenges of being at a teaching institution is that there is an expectation of research productivity, but the exact/precise expectation is not always clearly articulated. There are good reasons for this, of course. Different fields, and even different subfields within the same field, can have very different ideas of what constitutes “scholarly activity”. Additionally, leaving the expectations a bit vague allows for more freedom for individual faculty to define or explore various scholarly activities, whether that’s pedagogical research or, particularly after tenure, exploring new subfields. But it does often lead to angst, especially among junior faculty, who are not sure where exactly the research bar sits.

When I was junior faculty, I dealt with this uncertainty by coming up with heuristics for my research productivity. I looked at what my peer scholars produced in a year and calibrated this for my teaching load and service responsibilities to come up with my own “research productivity rules”. My rules: (1) at least one publication every year, approximately (journal or conference paper); (2) one journal publication every 3 years. So far, these heuristics have served me well.

Now, of course I don’t expect to hit these exactly every year, and if you look at my CV, I have years with zero pubs and years with several pubs. So they do tend to average out. I recognize this, and when I have an “off” year I just assume I’ll have multiple pubs the next year (which is usually the case). And so much of this is dependent on other factors, like whether reviewers like or abhor my work, what point a particular project is at, family/life circumstances, etc. (Although looking at my CV, I tend to be very productive around big life events, like the birth of my daughter or when my son joined our family. Go figure.)

This year was a zero pub year. I submitted a journal article (rejected) and a grant application (also rejected) and started a new research project, so it’s not like I was sitting around eating bon-bons. I recognize this, and on one level am proud of what I was able to accomplish given everything else that was going on in my life this year. (Particularly submitting the grant, which was a huge personal step for me). And last year I had 2 pubs, so again, it averages out. Still, when I look at my CV and see nothing marked with the year “2013″, it does disappoint me a bit. (OK, more than a bit.)

I am my own worst critic, sometimes.

The bright side to this—and there always is a silver lining—is that I tend after less-productive years to focus more closely on developing a publication plan for the next year. And that’s what I’m doing now: re-evaluating things that are in the queue that I never finished writing up, thinking up new experiments that should lead to quickly-publishable results, etc. This is also a great way to get my confidence back up and to drive back the panicky feelings of I’ll-never-publish-again. It’s also made me recognize how much I’ve missed my interdisciplinary writing/gossip group—we’ve not met recently because our schedules are way mismatched, but we have managed to meet a few times this break and are hoping to continue into the winter term and beyond.

Wherever you are, and whatever you did or didn’t accomplish this year, I hope you have a merry, restful, joyful, and productive holiday season!