Advice on CS Graduate School
from recent Williams College graduates

Seth Rogers from the University of Michigan writes:

For context, I started grad school here in September 1991 immediately after finishing at Williams. I first worked in Computer Vision as an RA, then I was a TA for Computer Graphics, then I was an RA again for AI/Machine Learning. I satisfied my requirements for an MS after two years, although I never actually received it. I hope to get my PhD in December.

Finally, there is an excellent paper on being a graduate student by Marie DesJardins from SRI. There's more similar stuff in page of Advice on Research and Writing , including Duane's "Letter to Research Students."

Lisa Masterman from the University of Delaware writes:

I've been in grad school at the University of Delaware for a little over a year now... Let's see what I have to say...

What I wish I'd known: living arrangements aren't what you think they'll be. It's very hard to live in your own apartment (I've got the cheapest place in town and I still can't afford it on my $14,000 NSF funding) the first year. Living in grad student housing is not necessarily a bad idea; Stina did it and she got to make friends with other single first-year grad students. Living with roommates also gives you a leg up on friends. Living by yourself means it will be much harder to connect with other grads - you all have your own lives, and most of the people around you are married. There isn't the same sense of community as in college, so you really need to work to make friends.

A good thing about grad school: once you jump through the hoops of the Masters program, you get to do what *you* want to do.

A bad thing about grad school: you still have to take all of the subjects you didn't like the first time, and really learn them well so you can pass your exams!

Why one should or shouldn't decide to go to grad school: a hard one for me to answer. I went because I knew I didn't belong in industry as a programmer. I didn't fit very well with the traditional concept of a computer person, so I needed to explore things more. Now I'm finding out areas of research I didn't know existed that speak to my interests in ways I didn't know possible. There is *so* *much* going on out there that even Williams can't tell you about it all! Grad school is a great oportunity to continue learning about new and exciting things.

Masters vs. PhD: well, for me the Masters part is just the obstacle to the PhD research. Once it's over, I will greatly appreciate the freedom I will have to choose my own course of study.

Further comments: anyone who is interested in Artificial Intelligence, and more specifically the field of Natural Language Processing, should feel free to mail me personally. To explain a little: NLP is the study of the languages and techniques we use to interact with each other and how they can be understood and generated by computers. It is the *perfect* field for someone with a liberal arts background and an interest in language. My specific area is Computer-Assisted Language Learning, which is VERY cool and I'll tell you all about it if you want.

Kathy Fisler of Rice University, who recently obtained her Ph.D. at University of Indiana writes:

The good and bad points about grad schools:


Bad (more like Cautions):

What you wished you had known before going to grad school:

What things a student should be looking for in grad schools:

Things I would ask students

Why one should or shouldn't decide to go to grad school:

Feelings about Masters vs Ph.D. programs, etc:

I don't have much sense on this one. If you are going for a Master's program though, make sure the coursework is more closely tied to that of the PhD students rather than that of the MS students (if the courses are all joint undergrad/MS courses, be wary).

P. J. Weingartner, currently working for Intel, formerly a graduate student at the University of Indiana, writes:

I left IU this summer. I am now employed by Intel as what is grandly termed a Graduate Rotational Engineer. Basically, I'm an intern... except the pay is much better. For a year after my hire date, I will work in three different working groups (four months in each). The selection of the groups is pretty much up to me and the manager of the potential group. At the end of the year, I will rotate into a final placement and work there for the duration. It's basically a learning position, since I get to see (if I wish) several different aspects of the company. I'm currently in my first rotation, which is with a group of people looking at compiler technologies to take advantage of some new architecture ideas Intel is considering for the next generation of processors. Although it is not the most exciting job in the world on a daily basis (I tend to spend my days staring at assembly code and wondering why it's so slow), I do get to listen in on people discussing the design of the new chip and I am now familiar with the specs of one of Intel's newest designs. This kind of thing is very exciting... seeing the design process of one of the top chip companies as it designs its next big offering. I get to watch a _real_ company design a _real_ processor, and I'm enjoying the view immensely. While I might someday decide to restart my PhD (_not_ at IU), it won't be for a while. I like where I am now, and I'm learning gobs. If I do go back to grad school after a few years, I'll be a much stronger student. Life is good.

My biggest mistake in grad school was in expecting it to be like college. In college, classes are important and are the most important thing academically. In grad school, on the other hand, I found classes to be of secondary importance. What is paramount, at least for the PhD, is research. Unfortunately, I did not come to this conclusion until very late in my grad school career, after I had spent much of my energy taking grad courses that were of little importance to me. This is not to say that all grad courses are useless; I had a number of classes which I wouldn't trade for the world. More, it is to say that, if you are going for your PhD, classes are second to research and are only important in find you a research topic and giving you the background to do it.

My second point is related. I thought that Williams, being a liberal arts college, would not be able to give me a really strong background in CS. I was dead wrong. I was very well prepared for my grad school. In fact, part of my jaded attitude towards coursework stems from the fact that I was so well prepared that fully 50% of the grad courses I took were rehashes of material I had already had at Williams (and many of them were watered down, at that). The Williams CS program is fully and firmly grounded in what I would consider the closest thing to a canon in computer science, and it is taught very well. Just as an indicator: I took and passed IU's screening exam questions in operating systems based solely on what I had learned in Tom's course some two or three years before.

My final point to the PhD student is a lesson I learned very recently. The PhD is a very lonely goal. Your success or failure depends solely upon your initiative, drive, and endurance. Your advisor and institution have some effect on this (let's face it, an advisor with a going research program and an international reputation will give you a bigger edge than one without either of these), but ultimately you are responsible for yourself. The PhD requires a lot of fortitude... you shouldn't go for it unless you really love what you're doing.

As for the masters, I don't have much advice. I'd guess my main advice is to go for a university with a good mix of current, hot technology and academic quirkiness (IU is big on academic quirkiness). You will need exposure to the latest technology to get hired at a good job, but it's not as important as you might think. This stuff changes so fast, that what is important is if you can keep up. Can you learn new things? Can you adapt to a new environment? Can you take a patently absurd premise and make it work? An environment of academic quirkiness will give you the edge, here. As a particular example, I learned scheme but good at IU (IU is its spiritual homeland). Nobody uses scheme outside of IU or its allies for anything serious, so this might seem like a waste to have learned scheme. Yet, with scheme, you can learn much about the essence of programming and programming languages (and, I think I have done so). So, even so the particular language is not too useful to me, the things I learned indirectly have matured my thinking. It is this later skill that my employer was seeking when they hired me. Particular skills are helpful (so avoid those places still using punch cards), but they aren't as important as the ability to think and learn.