Resources for Undergraduates - CS Graduate School

URO Zone · Why go to Graduate School? · Application Process · A Day in the Life Blog · Research Opportunities

Considering Grad School?

Why go to Graduate School?

Graduate school in CS provides you with an opportunity to study CS broadly and deeply and to engage in research.

Your classes will move from the foundations that you learned as an undergraduate to the current state-of-the-art in the discipline. As a researcher, you'll have a chance to work on exciting projects and problems that will both challenge you intellectually and allow you to contribute to your research community and to society.

There are two types of graduate programs: Master's programs and Ph.D. programs.

Master's Programs: A master's typically takes about two years to complete and involves coursework and, in many cases, a research project (often called a master's thesis). The coursework is generally some combination of the next level of the foundational courses that you took as an undergraduate (e.g., algorithms, systems, programming languages, etc.) and elective courses. The master's project or thesis is usually a well-defined project that can be done in about a year.

A master's degree can provide you with a level of preparation that will allow you to serve as a manager in industry or teach at a community college. A master's program typically charges tuition but there may be some opportunities to get your tuition reduced and earn a stipend through a teaching or research assistantship.

Ph.D. Programs: A Ph.D. program typically takes 4-6 years to complete (starting from a bachelor's degree) and involves both coursework and original research. The coursework varies from school-to-school. In some cases, it's just a few required courses and at others it may be a few years of coursework to provide you with both breadth and depth in the field. In some Ph.D. programs, you will get a master's along the way for completing a certain subset of the requirements whereas other Ph.D. programs skip the masters's entirely.

The main part of a Ph.D. is research in an area of your choosing. You'll work with your research adviser on new and challenging problems, you'll present and publish your results in conferences and journals, and you'll become a leading expert in your field of study. Ultimately, you'll write a dissertation that describes your research in detail.

Typically, a Ph.D. student gets tuition waived and receives a stipend that is sufficient to cover the cost of living. This stipend can come in the form of a teaching assistantship (grading and running recitation and lab sections of undergraduate courses), a research assistantship (often paid for by your adviser's research grant), or a fellowship (a stipend paid by your department or some private foundation or federal agency). In most cases, any of these will pay enough to cover your living expenses.

A Ph.D. provides preparation and training that are needed for research in academia and industrial and government research labs. In addition, many product development groups in industry seek Ph.D.s. Indeed, in some subdisciplines of computer science, many Ph.D.'s choose to work in advanced development positions.

Graduate Student Virtual Panel

Aleatha Parker-Wood

University of California, Santa Cruz

Aleatha Parker-Wood has spent most of her adult life in Silicon Valley, first working as a software engineer, then attending graduate school. While finishing a late bachelors, she discovered she had a passion for research, and was encouraged to consider graduate school. She has a BS and MS in computer science from University of California, Santa Cruz, where she is now preparing to advance to doctoral candidacy. Her research is on exascale file system search, particularly ranking algorithms, security, and disambiguation of search results. She is married, and has a beautiful five month-old daughter who enjoys watching her mother practice her conference talks.

Adrian Sampson

University of Washington, Seattle

Adrian Sampson is a third-year graduate student at the University of Washington in Seattle. He is originally from nearby Bainbridge Island, Washington but did his undergrad in computer science at Harvey Mudd College. Adrian became interested in CS research through class projects at Harvey Mudd as well as an REU there that focused on algorithm design for routing in optical networks. When he started at UW, Adrian explored research in theory and computer architecture and has eventually focused on the latter. Adrian's recent research is on energy-efficient computing and energy-aware programming languages. Adrian finds non-computational solace in cycling, gardening, poetry, rock climbing, and baking.

Justine Sherry

UC Berkeley

Justine Sherry is studying networking in the PhD program at UC Berkeley. She received a B.S. in Computer Science and a B.A. in International Studies from the University of Washington in 2010. As an undergraduate researcher at UW, she worked on problems in Internet Measurement, helping researchers and companies better understand the Internet to improve network performance and better diagnose network failures. In graduate school, she is exploring problems that arise when networks filter and transform traffic rather than just deliver them to their destination. She is a recipient of the NSF graduate fellowship, the Microsoft Research Graduate Women's Scholarship, and the CRA outstanding undergraduate research award. A Seattle native, Justine loves good coffee, and in her time off can be found in one of Berkeley's coffee shops with good friends and perhaps a geeky board game for amusement.

 

When did you decide that you wanted to go to graduate school and what experiences contributed to that decision?

Aleatha Parker-Wood - In my operating systems class. I had been dissatisfied with software engineering for a while, and felt that I didn't have room to grow. I really enjoyed OS, and it was a very challenging course. The professors teaching it both met with me during the quarter, and encouraged me to really think about research. I felt (and still do) that in research, my horizons are limited more by my capabilities, and less by externalities.

Adrian Sampson - Research first seemed like a pretty cool idea when my undergrad courses first started including class projects. I wondered what it would be like to do larger-scale projects full-time, so I did an NSF REU in the summer after my sophomore year. I was hooked quickly: I really enjoyed spending time with other students and wrestling big, undefined problems that were just at the edge of my understanding. I saw grad school as an opportunity to do more of the same -- and, so far, I haven't been disappointed.

Justine Sherry - My International Studies background made me want to do something that I felt would have impact on a global scale, and the Internet has shaken up the world in terms of politics, economics, and our day to day lives incredibly. By doing undergraduate research, I got to have my hands in how the Internet worked and grew, and that hooked me. Graduate school allows me to continue to work on networking problems that are very open-ended and exciting.

What did you do to prepare yourself for graduate school? In particular, what kinds of research and other experiences did you have as an undergraduate?

Aleatha Parker-Wood - I had no idea how to prepare myself for graduate school, but I had a lot of intellectual curiosity, so I took lots of classes that weren't required for graduation. My machine learning professor kindly let me do summer research for him, so I got to experience the research process -- reading papers, setting up experiments, writing a paper and poster, and so on. In retrospect, I wish I had done more research, and connected with more professors (both for research, and so I was more confident about asking for letters of recommendation.)

Adrian Sampson - My summer in an REU program went a long way to introducing me to the process and habits of doing research -- reading research papers, defining the important problems, and writing up results -- even though I work on very different problems these days as a grad student. Although Harvey Mudd doesn't have a graduate program, I was still able to do some research alongside classes during the academic year as well -- for that project, my advisor left the the topic choice was entirely up to me, which helped acclimate me to the experience of generating my own ideas. On the other hand, while I came into grad school with less previous research experience than some of my peers, I've found other students (and my advisors) incredibly helpful in getting up to speed. You don't have to be a Turing Award winner as an undergrad to be successful as a grad student.

Justine Sherry - I worked on an undergraduate research project with a graduate student to guide me for a year and a half. I also made sure to attend talks and seminars on networking in my department. During the summers, I did two industrial internships at Amazon to learn about computer science in practice and to beef up my programming skills.

What's a typical day in graduate school like for you?

Aleatha Parker-Wood - First thing in the morning, before I even go into the lab (if I am not working at home that day), I will sit down with a cup of coffee and deal with administrative things like email and expense reports. I'll often also play with my daughter during this time, since it's less important to focus. Then I'll hand my daughter over to my husband or the babysitter, and settle in for focused research time. I try to pick one thing to focus on each day... Maybe it's a paper or grant I'm writing, maybe it's code for an experiment, or a couple of challenging papers I'm reading. On the days when I can't get a baby sitter, I'll read less challenging papers, or meet with my lab mates to discuss research roadmaps, problems I'm stuck on, etc. I spend something like half my time reading and analyzing, a quarter writing (code or prose), and the rest in meetings and administrative tasks.

Adrian Sampson - Now that I've finished my pre-"quals" coursework, I get to focus on research exclusively. I spend most of my days in the office (I enjoy the spontaneous meetings and conversations with people in the department, and I like my officemates), but once every week or two I'll set up in a coffee shop or on my lawn at home for a change of scenery. Then, depending on the phase of my current project, I spend my time reading/thinking/head-scratching, coding, analyzing data, or writing. I also typically have a few meetings with people I'm collaborating with, from undergrads to professors, which is where most of the good ideas come from.

Justine Sherry - On a typical day, I come to campus late/mid morning (I like to sleep in!), grab a cup of coffee, and attend a class or seminar. In the afternoon, I might meet with my advisor to catch up on our research projects and make plans for the week. We try to meet once a week, although around deadlines I might drop in to her office every day with a question or an idea. I'll spend the rest of the day programming, reading research papers, or writing and editing my own paper submissions. I live with other graduate students, so in the evenings we'll often eat together, discuss our days, and play cards.

What's the best part of graduate school from your perspective?

Aleatha Parker-Wood - A huge degree of intellectual freedom, and being surrounded by other people who are just as excited about research. There's a great energy when someone has an idea, and then the group starts building on it, figuring out how to test it, how to extend it, and so on. There are practical limits to what you can research, but you have more flexibility in graduate school than ever before (or, I'm told, after.)

Adrian Sampson - My favorite part of grad school is working with my awesome colleagues to generate ideas and solve problems. I find that my best research gets done when I'm talking to someone else, so I relish the time I spend pondering (and arguing) with my advisors and other students.

Justine Sherry - I love the flexibility in everything: when I show up to school, what classes I take, and what I work on are all driven by what I want to do.

What's the hardest part of graduate school?

Aleatha Parker-Wood - I've found that for me, learning to present information is the hardest part. It's something they don't really talk about when you're thinking about graduate school, and of course, you don't think of it when you're imagining yourself as a researcher, but you will spend a huge amount of time writing about your work, giving presentations about your work, creating posters about it, etc. Worse yet, your ability to get funding and notice in your field is at least as much about presentation as it is about the ideas you come up with. After all, if no one understands what you did, they're not going to give you money to keep doing it!

Adrian Sampson - The hardest part for me right now is managing a large number of responsibilities. It's easy to take on way too many projects without realizing it, so I need to work hard to keep my focus on just one or two research tracks at a time. This is further complicated by the need to arrange projects based on conference deadlines: a puzzle I haven't yet completely solved.

Justine Sherry - Also the flexibility! There is no "set track" to success like there was in undergrad - you can't just get good grades and go home. It's very difficult to find interesting problems to work on, figure out the best way to solve them, and decide whether or not it's worth it to submit a research paper now or wait until you have more results.

Based on your experiences, what advice would you give someone who is seriously considering going to graduate school?

Aleatha Parker-Wood - You know that old quote about "If I see farther it is because I have stood on the shoulders of giants"? Undergraduate has only scratched the surface of what you will need to learn, and you will spend your first year or two trying to climb up the giant's back, reading papers, learning what's been done already. Don't expect to show up and turn the world on its ear in your first year. Many things have already been tried before, and failed, and if you don't have a realistic expectation about what you can accomplish in a year, you will wind up frustrated and burnt out before you ever produce your first good research. Expect to fail often. Science is the process of finding new and exciting ways to fail, until you find something that succeeds.

Adrian Sampson - Give research a try to see if you like it. Before you've actually spent time working on research problems, it can seem intimidating or impenetrable. But really, cluelessness and mysteriousness are normal and part of what make research enjoyable. If you have the chance to do an REU or any other research as an undergrad, go for it -- it's the best preview you can get of what grad school is like.

Justine Sherry - You have the opportunity as a computer science student to try out the things you might do after graduation! If you have a chance, do both an industrial internship and undergraduate research. Once you've tried your options out, see what suits you best.

Faculty Virtual Panel

 

Gregory Hager

Johns Hopkins University

Greg Hager is a professor of computer science at Johns Hopkins University in Baltimore, Maryland. He completed his B.A. in mathematics and computer science at Luther College in Decorah Iowa, and his Ph.D. in computer science at the University of Pennsylvania. After his PhD, he spent a year as a Fulbright scholar in Karlsruhe, Germany. Subsequently he taught at Yale University for 8 years before moving to Hopkins in 1999. His research interests include computer vision, robotics, human-machine interaction, and computational applications in medicine. He is also a strong advocate of international exchange, and of cross-disciplinary research and education. When he's not working (which seems to be less and less often!), he enjoys any outdoor activity that involves a mountain.

Stephanie Forrest

University of New Mexico in Albuquerque

Stephanie Forrest is Professor and former Chairman of the Computer Science Department at the University of New Mexico in Albuquerque. She is also an External Professor of the Santa Fe Institute and co-Chair of its Science Board. Professor Forrest received M.S. and Ph.D. degrees in Computer and Communication Sciences from the University of Michigan (1982,1985) and a B.A. from St. John's College (1977). Her research studies complex adaptive systems, including immunology, evolutionary computation, biological modeling, and computer security.

Margo I. Seltzer

Harvard School of Engineering and Applied Sciences

Margo I. Seltzer is a professor of Computer Science in the Harvard School of Engineering and Applied Sciences. She earned an A.B. degree in Applied Mathematics from Harvard/Radcliffe College in 1983 and a Ph.D. in Computer Science from the University of California, Berkeley in 1992. Between those two, she dabbled at various Boston-area computer startup companies. While on the faculty at Harvard, she and her husband co-founded Sleepycat Software, the makers of Berkeley DB, and she is now an architect for the Berkeley DB group at Oracle. Outside of Harvard, Margo is an avid soccer player, devoted fan of the Boston Breakers and US Women's National team, a cook who considers any dietary restriction a culinary challenge, and the mother of two kids, who sometimes admit to being related to her.

What are the attributes that you think are most important for someone to succeed and enjoy graduate school?

Gregory Hager - Grad school requires a rather unusual combination of a desire to explore, driven by basic curiosity, combined with the focus and drive to define a goal and achieve it. I think the students who most enjoy graduate school have a fundamental love to learn, imagine and experience new things. However, to *succeed*, they also have to know when to put on blinders and focus on achieving a specific goal. This right balance of imagination, exploration and focus is what I view as most essential to success in grad school (and beyond).

Margo Seltzer - First, you have to be self-directed -- at some point, professors and advisors stop telling you what to do and expect that you care enough to figure out what to do. Second, you need to be the kind of person who wants to know, "Why?" Graduate school is about research and research is about understanding why. Third, you should be able to give and receive criticism gracefully -- this is an essential life skill, even more so in graduate school.

If I'm uncertain about whether I want to go to graduate school or not, would you recommend that I try it or would you suggest that I wait until I'm absolutely certain I want to go?

Gregory Hager - Well, I think this depends on the person ultimately; I don't think there is a single correct answer here. But I would generally say that it is rare for someone to work for more than a year or two, then decide to go back to graduate school. So, my general advice is to try grad school first. It's much easier to decide its not for you and switch to a job; it quickly becomes much harder to go the other way around.

Stephanie Forrest - The M.S. is a professional degree and requires much less commitment. If you are unsure, start with the M.S. The Ph.D. is a much larger intellectual commitment. I tell prospective students that they should "attempt the Ph.D. only if there is nothing else that they can imagine doing instead." This is not meant to discourage you, but to convey the level of passion and commitment that are required to see you through a Ph.D. and beyond.

Margo Seltzer - I'm answering this question about PhD programs; the answer for a Master's program might be different. I think you should go to graduate school only when you're certain you want to be there. Getting a Ph.D. can be fun and exhilarating at times, but it can also be challenging and difficult--if you're doing something you know you want to do, that will get you through the rough times.

What do you think is the best part of graduate school?

Gregory Hager - I most enjoyed going to seminars and subsequent discussion and learning from my (student) colleagues. We often had serious debates about the pros and cons of any speaker. It taught an important skill -- how to question what you were told and not simply accept it as scripture.

Stephanie Forrest - Computer science is the most exciting field I know of, so I loved the opportunity to dig deeply into several areas of CS, learning as much as I could handle and then moving beyond what was known to develop research for my dissertation. I also liked the opportunity to work closely with a single professor.

Margo Seltzer - Getting your first first-author paper published (if you haven't already done that as an undergrad).

What do you think is the hardest part of graduate school?

Gregory Hager - Well, again this surely varies from person to person. For me, the hardest part of school of doing rote studying and the careful mathematical spadework necessary to back up any real scientific paper. I was always much happier doing my own thing, building some cool system, and explaining it to the world. But, the background spade work is essential. What I also found (and find) difficult was choosing *not* to pursue some line of work. Not everything is an equally productive direction to go. Picking what to do with your finite resources is half the game!

Stephanie Forrest - I require my students to choose their own dissertation topics, and this is always the most difficult part of the program for them. "Choosing the right question" is in fact the most challenging and important part of any science.

Margo Seltzer - That period of time after you have completed your coursework and you are trying to nail down a thesis topic. Identifying something you are willing to focus on for a couple of years and that you believe will let you make an original contribution can be daunting.

 

What have we missed on this page?

Please send suggestions or references to other resources to Ran Libeskind-Hadas (ran@cs.hmc.edu). Also please feel free to use the comments box below to post your questions, advice, resources and thoughts.

Back to the CCC Home Page