Breech's Bash: Welcome to Grad School

Wow a column! Who would have guessed that the powers that be would be foolish enough to give me a column to write? Well, I suppose I should make the best of it. Now I have to find things to write about...

Well, let's start at the beginning. The fall of 2002 is the start of my 5th year here. Since you're reading this, I'll assume you're new here. So, lemme give you some useless tidbits of advice for your grad school tenure. Naturally, these are just my opinions and not necessarily those of the department, or any sane person for that matter.

  1. Learn Emacs -- Take some time now to learn emacs, and you'll be happier later on. If you haven't heard of it, emacs is an extraordinarily powerful editor that provides support for editing just about anything you can imagine. I use it for editing source code, reading mail, reading news, writing papers, and even running other programs. Emacs can also do a lot more. Here's a pathetically short list of keystrokes to get you started.
  2. Learn vi -- another text editor. There are alot of people who jump up and down and claim that you should only learn emacs or only learn vi. Personally, I think those people have some serious problems if they get that obsessive about their text editors. In any event, why would I tell you to learn two different editors? My preference when editing text is to use vi for small, quick changes and use emacs for any editing that will take a while. Of course your preference may differ, but you won't know that unless you try both.
    The quick lesson: vi has two modes, a command mode and an insert mode. In command mode, you, strangely enough, issue commands to the editor. These commands include moving the cursor up a line, finding some bit of text, etc. In insert mode, you actually, you know, insert text. This is an odd paradigm for text editing. You're probably used to editors, such as emacs, that allow you to issue commands and insert text at the same time. To get into command mode, hit the escape key. Once in command mode, you can do the following: Most versions of vi permit you to use the arrow keys to move around. I find this annoying as any movement of my hands off the home row slows down my typing. You'll find that after you learn vi, the hjkl keys become second nature, to the point that you don't even consider what keys you're actually hitting, you just do it. (In order to write this tidbit, I actually had to stop and look at what key I was hitting.) Naturally, vi can do alot more.
  3. Don't annoy the secretaries -- This is just general advice that you should follow anywhere. If you doubt this, consider who has the real power in the department. The chair? Ha! the assistant to the chair? Wrong again. It's the secretaries. I see that vacant look on your face that just screams out to be enlightened. Very well. Who touches every single piece of paper that goes or comes into the department? Yup, the secretaries. Big deal I hear you say. Well, what do those pieces contain? Let's see... there's your paycheck information, you registration, that grant proposal, copies of your answers on the prelims, etc. Get the picture yet? Just thank your lucky stars that Pat, Fran and Vicky happen to be nice and will help you. Still, I know I'm not going to run off and annoy them anytime soon.
  4. Make every effort to meet your office hours -- Seriously. Do you have any idea how damn annoying it is to want help and then find that the TA has decided to skip out on his/her office hours? Any idea? No, of course not because if you did, then you wouldn't even think of skipping them. Nonetheless, occassionally a TA skips his/her hours. If you can't be there because of some outstanding commitment (conference, etc) then give your students as much notice as you can. If some emergency comes up, well, these things happen and people understand. Just don't go skipping your office hours because you thought no one would show up, or you were too busy with homework, etc.
  5. Get involved in research early -- I don't have the statistics handy, but I would hazard a guess that the average amount of time a grad student is here is close to 6 years. If you take 3 courses a semester, you could clear all the course requirements within 2.5 years. So what's the rest of the time? Research.

    If you want to shorten that time, then get started earlier. Sounds easy right? I wish it was. Start thinking about possible areas that interest you and what faculty are involved in those areas. Sit in on a couple of the SIG talks. You're required to attend one SIG group each semester, but you can also go to any of the talks in any SIG group that interest you.

    Once you've got an idea of what topics interest you, talk to the faculty involved. They can give you an overview of the specific research they do, and perhaps even have a small project you could work on for a little bit. You may not get RA funding right away, but you do get an idea of whether or not you like the area. That alone is worth alot. The last thing you want is to be doing research in an area you later decide you hate. Yes, you could change areas later, but you could lose a lot of time depending on how far along in the process you are.

    If everything goes well, within 2 or 3 semesters you probably have picked your research advisor and are working on topics. It may be slow going at first while you're taking classes, but once the classes are done, you'll get through pretty quick and be out of here in less than 5 years.

  6. Take time for yourself -- Seems like a cliche. Yuck. But it's true. There will be times that you're working 60-80 hours a week, maybe more (I've gotten past the 80 hour mark once or twice. It's not fun). It happens. You could find yourself in the position of taking 3 classes, having TA duties and doing some research. Do whatever you have to get through it, but don't forget to take some time away from all the work. Even if that time is spent staring at a wall, while listening to Pink Floyd or the Grateful Dead, or out with other grad students, it'll help.
  7. I'd recommend against taking 601 (theory of computation) and 621 (Algorithms) together in the same semester unless you happen to be particularly math inclined. Some grads can pull it off, but most of us will find either one of those courses challenging enough.
  8. In the same vein, I'd also recommmend against taking 672 (Compilers) with any other programming intensive class like 681 (AI). You'll have enough programming in 672 (or 681) to keep you busy.
  9. Get to know some of the indentured servants -- err, umm, I meant "grad students" and not indentured servants. Yeah, that's it (especially if you're facutly reading this). Now, I know this one is asking alot. Computer science doesn't exactly attract the most extroverted people. I, for one, am way on the introverted side. Still it wouldn't hurt you to at least know some of the grad students so you can say "Hi" when you happen to run into them. At the very least, your tenure here will be a little more pleasant. You may also find people to work with in the various classes you have, to study for prelims with, etc.
  10. If you're wondering, yes you can do more than one master's degree while you're here. I know, I'm doing it (I'm having a fling with physics). Just remember that doing this will add to your time here. For some (like me) that doesn't matter. For others it may.
  11. LaTeX -- Before I say anything else about this, let's be absolutely clear about you pronounce "LaTeX". I can't do the correct critical marks, but it goes like this: "la - tech", got it? The "a" is short. The emphasis tends to be on the second syllable. Ok, got the right pronunciation for this. I dont' want to hear anyone saying "lA - techs", as in the source of rubber.

    Glad we got that cleared up. What is LaTeX? It's a typesetting system used to format papers, books, etc. It's vaguely similar to HTML in that you provide various tags that tell LaTeX what to do, such as bolding text, etc. LaTeX, however, is much more powerful than just bolding text. You can type set tables, math symbols, easily handle bibliographies, etc. The cool thing is that you just type. You don't worry about what the final document will look like, as LaTeX will handle all those messy details. The importance of LaTex and the reason you need it, is that most published papers are written in LaTeX. Sooner or later, you will have to deal with it, so you might as well take some time now.

    By the way, if you get the chance, pull down AUCTeX, a package for emacs (you did learn emacs right?) that makes using LaTeX a lot easier.

  12. SIG groups -- Ok, here's the deal with the SIG (Special Interest Group) groups (yes, the G in SIG mean group, so I don't know why we usually append "groups" after SIG. It seems redundant, but then, so are my parenthetical remarks). What are they? Basically, colloqiums. They bring in speakers, either faculty, grad students, or industry researchers to talk about their research. Each SIG group focuses on a particular area of research, such as program analysis, AI, theory, symbolic computation, etc. They provide a good opportunity to learn what others are doing in a particular field.

    You are required to register for one SIG group each semester you are here. It may be the same SIG group each semester, or it can different ones, it doesn't matter. Furthermore, just because you are in SigAI doesn't mean you can't attend a talk in SigPACT. In fact, you're encouraged to attend talks in other groups if the area interests you (see the above point about getting started early). I won't go into the various groups here. There will be a department colloquium early in the semester where the powers that be for each group will give you an overview.


Ben Breech
breech@cis.udel.edu