Cool Stuff in Computer Science has a weblog; I expect this will provide a forum for announcements, posting things we build/do, etc. I’m also hoping that I can get a few people involved to help maintain it, by posting what’s up, what they’re up to, things they find “out in the world” that are interesting, etc.

We’ll see what happens. We’re closing in on 2 hours…

Yesterday was the defense of my [ research prospectus ] . It was a two hour conversation with my committee, Ian Utting and Peter Linington. It was a spectacular demonstration of how not to manage your PhD process.

This post is about my failure to manage the PhD process adequately over the past three weeks (three months?). In subsequent posts I’ll dive into the content of the conversation, which is much more important to me. My mistakes should be of interest to PhD students who need models to avoid. The content of the conversation (and how my own confusion manifested itself therein) is primarily of interest to me, although other students may benefit from these reflections as well.

Mistake #1
The first mistake goes back to last May; I got too involved in the Bootstrapping CS Education project. Considering the timing, I shouldn’t have been hacking code to mine data for the project. Please, don’t get me wrong: It was a very rewarding experience, I met lots of great people, and am very glad I did it. That said, it was time I should have been spending on reading literature and exploring ideas related to my new thesis direction.

I followed that up with another mistake: I went to the States for… 6 weeks? During that time, I spent no more than 5 days in any one place. While it was wonderful to see all our friends and family, I got no work done (to speak of). Furthermore, I realized (in hindsight) that I had no downtime. It came to the point where I had to schedule a morning of golf with my father, because I was so over-committed in going to weddings, visiting people, etc. There wasn’t time to just breathe. (Our next to the States, while potentially a long one, will be spent at home, working. Anyone wishing to see us during this time may drive/fly/walk to Ohio.)

We returned to the UK from the States, and immediately spent two weeks traveling with Carrie’s family: up to Edinburgh, into London, and back down to the Southeast of England. Again, this was wonderful, but it wasn’t in any way relaxing. And, again, it was time spent not thinking about work.

So two months go by with no work, and furthermore, they aren’t restful. When Carrie and I got back, I was a wreck. I spent the month of August useless. No work. I was, simply put, depressed. This was a new experience for me. I coped by trying to remain interested/excited about anything. (This led to a series of posts about XML-RPC and Applescript on my weblog, for what it’s worth.)

Part of this was because the 30+ articles I asked Carrie to bring to the States for me were completely inappropriate for the new research direction. They were all cognitive in nature, and provided no insights into compilation behavior. I came back having no literature to support my new research direction, and the prospectus was supposed to be submitted back in July.

The month of September got better; I found my relevant literature, dug into it, and fortunately it was neither wide nor deep–this is a novel area for research, and there isn’t a large body of research directly related to the study of novice compilation behavior (or compilation behavior, or even the behavior of programmers). But this lead me into mistake number two.

Mistake #2
The second mistake was not spending enough time asking how and why, and discussing that with my supervisor. By this, I mean that we had a working hypothesis: compilation behavior is related to programming effectiveness (and no, for the moment, I won’t define or defend any of that… I mean for that statement to be, at this exact moment, to be over-broad and sloppy). We had a proposed mechanism for collecting interesting data, and some ways to go about analyzing that data.

In writing up the prospectus, I got caught up more than once on distractions, and those were (at some level) related to the nature of the data being collected and how we were going to analyze that data. It boiled down (for me) to questions of research methodology.

We had worked out what I was going to do, by-and-large, and I proceeded to start worrying about the approach I would take to get this work done, instead of focusing on the goals of the work and why I was doing it. As a result, I become concerned with the methodological approach I would be employing in my research. So, I started reading as much stuff about radical behaviorism as I could, focusing primarily on the works of B.F. Skinner. In particular, The Selection of Behaviour: The Operant Behaviour of B. F. Skinner: Comments and Consequences, edited by Catania and Harnad, and About Behaviorism, by B.F. Skinner. (Selection of Behavior is great because it takes a handful of papers, critics respond to them, and you get Skinner’s replies to each of those critiques. Fascinating reading.)

This is what I mean by not spending enough time on the how and why of my thesis. When I became lost/confused, I reached out for a methodology to ground myself in, without fully working out the question. This is like saying “I’m going to use a hammer!,” and then going in search of a problem. Yes, I can probably use the hammer for a lot of different tasks, but I might be better served by, say, a screwdriver.

The true breakdown of process occurred when I failed to discuss this with my supervisor before my defense. As a result, I walked into the defense, and laid out a (new) research approach, one that wasn’t reflected in the prospectus. I didn’t exactly throw away everything I had done previously, but I sure came close.

Why did this happen? I became confused as to what I was doing, searched for a tool I could cling to. After wrapping my head around the new tool, I looked back at what I had said I would do, and… well, I couldn’t use my new tool to accomplish that task–there was a mismatch. So, there was (to my feeble mind) only one thing to do: come up with something that fit the tool, and try and retain as much as possible of what I had done previously.

I did just this, proceeded to present a new research direction to my committee, and then try and explain what I had done to my supervisor… she wasn’t pleased. And, rightly so.

The next few posts will explore what the document proposed, what I presented to my committee, and where I need to land with these two proposals in mind, by going back to the goals of the research and what I hope to accomplish.

What are the lessons learned?

  • Talk to your supervisor when you’re confused.
  • Focus on what you want to accomplish.
  • Keep asking how you’re going to get to your goal, and then ask why that’s a good way to do it.
  • The how/why sequence will lead you to an appropriate methodology. Choose methods appropriate to the task. Do not let the method drive the research; the question/hypothesis drives the project, not the tool.
  • Did I say talk to your supervisor?

Awful as this sounds, all is not lost for our expatriated protagonist! Tune in next time, when Matthew reveals how a tub of Chocolate Fudge Brownie, a glass of cheap port, and sleeping in the next day led to the revelation that he had made a critical error, and surely his perspective alone wasn’t enough to see what was the correct, next step!

Mark replied to a post from earlier today:

I miss having students, preparing lecture notes, designing homeworks, actual deadlines, etc. Sure, there’ll be pressure times, but damn, it’ll be fun.

I agree, and this gives me the opportunity to announce what I’ve done it here at Kent. Starting this Thursday, I’ll be leading a workshop series entitled Cool Stuff in Computer Science. There’s a lot of neat things going on here, but it seems like those cool things aren’t percolating down to the undergrads through as part of their coursework. Having a three year course of study (as opposed to four years for an undergraduate degree in the States) cuts down on the amount of stuff you can fit into the degree.

Hopefully, I’ll get a good turnout. Otherwise, the workshop dies.

We’ll see what the students think, but I think it’ll be fun… I mean, we’ve got LEGO, mobile phones, agent-based systems, exploring programming languages… what more could you want?

Testing some emoticonish images:

Hrmpf:
Grin
Oh No, Not Again
Holy Shit!
Wink

Why? I don’t know…

I just defended my research proposal. There will be a lot of posts following this one in the near future on this, as I need to work though some methodological ideas; by posting them here, I can look to others for feedback by pointing them to the site. That, and knowing that one, maybe two people will read what I say encourages me to maintain a minimum level of conceptual clarity.

The weblog provides a framework for expressing ideas; writing to it keeps me writing. That’s something, I suppose.

After the defense (2 hours?), and a subsequent meeting with my supervisor (another hour), I’m a bit wiped. So, I thought I’d check the blogroll, and see what’s up. And what do I find, but Pete talking about how little time he has for anything that passes for normal right now. He refers to this, I think, as “bitching.”

At some level, yes. At another, it’s about expectations and what we want from life. In the last year, I’ve spent a lot of time having assumptions of all sorts challenged. I’ve had a lot of things in my life change. And I still don’t know what to expect when I finish here. Where will I go? What kinds of positions will I be looking for? What kinds of schools will take my work seriously? I’ve had some very closed-minded people weigh in with their almighty opinions in the past, and invariably, they consider my research area (computer science education) a joke.

But, we can’t all walk on water, now can we?

While I tend not to believe the detractors and nay-sayers, I wonder about the What’s next? question. I tend to be most concerned with issues regarding quality of life; concerns about income are largely negated by the loans we’re taking out for Carrie and I to do our degrees in the UK… no matter what we make, it all belongs to someone else.

So, winding around to it, Pete’s bitching is a view into a new CS faculty member’s experiences. A colleague fell ill, he picks up the slack, and finds himself up to his neck in it, doing 14, 16 hour days a few weeks into the semester. Papers? Grants? Those take real time, and when your best hours are lost to administration and the mechanics of getting things in place to teach (as opposed to drawing on a large base of previous material), you’re hosed. Something gives, and that something is going to be the non-immediate. Thirty students in class tomorrow at 9:30 AM is immediate; a paper deadline 6 weeks from now is not.

This isn’t preaching to Pete; this is me coming to terms with what the realities of life after graduation might be like. It looks like I’ll have spent 3 years living apart from my wife when I get done in the UK. That, for the record, sucks. And then, we might be looking at me busting my ass like mad in some CS program for the first year or two… it just doesn’t sound like fun.

Anyway. I guess this is just sympathetic bitching inspired by Pete’s bitching.

While reading through some old posts and discussion on Lambda the Ultimate, I noticed (for the first time) that there is a list of other weblogs/wikis at the bottom of the page.

So I followed the link for Erlang.

And under People on the Erlang List was a picture of Clara! (Clara is a colleague and friend here at Kent.)

And I just realized, I know almost nothing about Erlang. It embodies a process algebra (I know that much), but I don’t know much else about it. Perhaps I should ask Clara… she’s on the Erlang mailing list, after all.

Anyone have any comments on a new look for this weblog? I thought I’d steal some CSS from around the WWW and apply it to my templates.

Thoughts?

I dropped in James Seng’s top secret security code thingy in to try and stop comment spam.

Now anyone who wants to make a comment on this weblog has to look at an image, read the number in that image, and enter it into a text field before their comment will be accepted. Tedious, but … well, the blacklist I installed to prevent porn spam in my comments wasn’t doing it’s job.

Spam sucks.

Reading a thread on Lambda the Ultimate about Expressiveness vs. Execution Speed turned up this fun story—about how “doing it right” can turn into “doing it fast.”

The last two comments in the thread are telling as well, and Ehud Lamm brings up the spectre of the Pointy Haired Boss (essentially):

First, a comment by Peter Van Roy:

We have active opposition that quickly hoists the performance banner every time it feels under threat. If we want good concepts to pass that naval blockade, we had better get out the big guns and go for compiled performance as well as undeniable, problem-solving expressive power.

Yes, there is active opposition. My attitude now is one I first heard from Helmut Simonis: I don’t care about converting the gray masses who learned programming the wrong way and who (for many possible reasons) will not learn anything else, it’s too late for them anyway. I care only about two groups of people: students and smart programmers. That is the raison d’être of CTM: it targets those two groups explicitly.

Followed by Ehud’s reply:

If only it was so easy… There are two problems with this approach.

1. Students want to learn the lang de jour, and pressure schools to accomodate.

2. Faculty people specializing in other fields of CS (e.g., complexity, networks) and not interested in PL are likley to belong to the masses who learned programming the wrong way, that you wrote about.

The combination of these two factors can be very dangerous when decisions need to be made about which languages to teach.

First language choice is sometimes motivated by sound reasoning, but as often as not it is influenced by people who don’t know why they’re making the choices they’re making (students, administrators), as well as other (real-world) concerns (“If we choose Language X and Tool Y, Company Z will give us 45 new workstations!”) In one form or another, a pointy haired boss rears his ugly head.

Of the two issues Ehud brings up, I most often ponder the first: how can you … (educate? inform?) … the students? Why is it a student just starting a computing degree already has a dogmatic belief in one language or languages over another? What have they seen of the world? …

Ah. The convictions of youth. I get it. I live it every day. I’ve answered my own question.

Certainly a topic to come back to.

Time to take a shower and keep laundry going.

I have two things I want to post about. One is about being a graduate student (general life), the second (ish) is to follow up on a previous post about programming languages.

But I was inspired to rant by a recent post on Tom Hoffman’s weblog:

I think that younger people are more worried about terrorism because older folks like me still remember somewhere deep down in our lizard brain if not consciously (and I’m amazed at how many people have blocked this out) that for most of our lives we were minutes away from a nuclear holocaust that would make 9/11 look like a mosquito bite. So really, despite everyone’s protestations that “We suddenly realized we aren’t safe,” we all know deep down that terrorism is small potatoes compared to living in the world of The Day After or Ark II .

Fear is a powerful tool, and a tool of the weak.

Fear has long been the tool of tyrants and despots. It is a powerful mechanism for control, but any population made to live in fear will eventually wake up and realize that the thing they have been conditioned to fear has long since died, or that the fear has been stoked and fed by the very agents who are supposed to dispel that fear, and make their world a better place.

Orange alert, my ass. I can only hope that votes are not cast in fear come election day.