Computer Science: Graduate School
Masters vs PhD Programs
Your undergraduate degree gives you introductions to many different areas of computing. If you want to develop greater expertise and delve deeper into some of these areas, then you may want to consider a M.S. or Ph.D. program. What is the difference?
- In a master鈥檚 program, you take additional computing courses that are more specialized or go into greater depth than your undergraduate courses. Toward the end of the program, you may specialize in a particular area of computing (e.g., databases, graphics, networking, etc.) and develop special mastery of that area. Most people complete a master鈥檚 program in 1-2 years.
In a PhD program, you take some courses 鈥 mainly ones you choose to round out your knowledge in your area of expertise, and that will help you in your research. Then you work with a faculty advisor to solve an open (unsolved) research problem. Without a masters degree and including the coursework, the average time to complete a PhD program is 5-6 years, though at many schools, this includes getting a master鈥檚 degree.
听Your research potential is the most important factor for PhD programs, so if you are interested in pursuing a PhD, the best strategy is to (i) do good work on research projects with undergraduate faculty members, (ii) work with those faculty members to get a paper published about your research, and (iii) get those faculty members to write recommendation letters for you for grad study in which they highlight your research.
Paying For Grad School
What most people don鈥檛 realize is that full-time graduate students in computing usually get paid to attend graduate school, in either of two ways:
- With a teaching assistantship (TA), your department pays you to grade, hold tutorial sessions for, or even teach undergraduate courses. On the positive side, this lets you try your hand at teaching, and if you like it, you can make a career of it. However, if you are in a PhD program, every hour you spend grading, preparing for class, and teaching class is an hour not spent on your research. If you are not disciplined, this can make it take longer to finish your program.
- With a research fellowship (RF), you get paid to work at solving a research problem. The payment usually comes from a grant, so either you have to apply for the fellowship or your advisor has to have a grant. In the ideal case, the fellowship pays you to work on your research problem!
Both a TA and a RF cover one鈥檚 tuition, fees, and pay a stipend that鈥檚 usually sufficient to cover room and board. For example, at one nearby university, the stipend in 2008 was $24,000 to $28,000 (including health insurance), depending on your year and experience. You won鈥檛 get rich, but you won鈥檛 starve. You also are not required to begin paying back any student loans, so long as you remain enrolled as a graduate student.
Graduate programs in computing generally require the GRE basic test; some may also require the CS subject test. If you are interested in graduate school, you should plan to take both in the fall semester of your senior year. Don鈥檛 worry if you don鈥檛 do well on the subject test 鈥 you are competing with students who have completed their master鈥檚 degree, and are now trying to get into PhD programs. GRE practice tests and other materials .
Choosing A Graduate Program
So if you are interested in grad school, how do you choose a school?
Here鈥檚 a strategy for those interested in the PhD:
- Make a list of the computing-related areas in which you are most interested. If you鈥檙e not strongly interested in any particular area, make a list of all the areas, and then strike those you know you are not interested in, to narrow the field.
- Look at conference proceedings and journals for the past 3-4 years in the area(s) you are interested in; identify faculty who are regularly publishing at those venues, and note their schools.
- Check out those schools鈥 websites, and look for a research lab or group in that area. If there are not multiple faculty working in the area, eliminate that school from your list (unless there鈥檚 some compelling reason not to). You generally want multiple faculty because that gives you several people from whom to choose your advisor, and multiple people with whom to discuss ideas. Advisors can leave a university, or retire, or 鈥 so you鈥檙e better off going to a school where several people could be your advisor.
- Contact graduate students who work with those faculty, to see how those faculty are to work with. Ask the students: if they had the option to do it again, would they? Use that feedback to eliminate some of the schools.
- Consider any geographic factors that are important to you. For example, if climate or distance from home matter to you, you may be able to use factors like this to eliminate some schools.
- Talk to your academic advisor, or another faculty member at your undergraduate institution. He or she may have helpful insights to share. Tell them what you are interested in, and ask them to put you in contact with alumni who are studying that subject in grad school.
Look over the school鈥檚 rankings in computing. Some rankings to compare are:
- The are a bit dated, but still useful for comparisons against other rankings.
- The
- The
- The
You may want to eliminate schools whose departments are consistently ranked very low, unless there is a compelling reason to keep them.
- If possible, visit the remaining schools and meet with the faculty and students, to get a feel for the people and place. Contact the faculty members ahead of time and make an appointment to meet with them. Do your homework ahead of time, so that you can talk intelligently with a faculty member about the kinds of research he or she is doing. If you can convince them that you are a student worth admitting, you will have an advocate there.
- Apply to a 鈥渟pread鈥 of the remaining 鈥渁cceptable鈥 schools 鈥 a few 鈥渢op鈥 schools, some 鈥渕edium鈥 schools, and some 鈥渟afety net鈥 schools.
- Go to the highest ranked school that accepts you!
Graduate schools where Calvin CS grads have been accepted include Indiana, Kentucky, Michigan, Michigan State, MIT, North Carolina State, Ohio State, Purdue, Rochester, Stanford, Texas (Austin), USC, Utah, Waterloo, and Wisconsin (Madison).
For More Information
For more insights (mostly specific to Tier-1 PhD programs), check out from Carnegie Mellon University.