Advancing your studies past the Bachelors degree can be a wonderful experience. Learning about the cutting-edge of the field and possibly doing research that moves the field forward can be very rewarding. Students often have questions about graduate school and hopefully this page and the associated links will help you figure out if graduate school is for you.
What Graduate Degrees are Available?
That depends on your field. In computer science, the primary graduate degrees are the Masters (MA or MS) and the Doctorate (PhD) in computer science. The Masters degree is comprised primarily of coursework that builds on your undergraduate work and better prepares you for industry or further graduate studies. It may involve writing a thesis. The Doctorate moves past the Masters course work to individual research in a specific area of computer science. A PhD is required for a career in academia. It also can prepare you for a career in industrial research. Some PhD programs require a Masters degree before you can be admitted; others accept students who have completed just a Bachelors degree.
How do I Prepare?
If you think you might want to go to graduate school, it is important that you start preparing early. Here is a list of things that are important for grad school admissions:
- The rigor of your undergraduate CS and mathematics courses
- Your undergraduate GPA
- Letters of recommendation, particularly from faculty members who know your work well
- Your GRE scores
- Your other CS experiences, including internships and research
While your GPA is important to a graduate admissions committee, the committee will also look at several other factors. You will need to find between three and five faculty to write letters of recommendation for you. It is best if these faculty know you well. The best way to get to know a faculty member is to do an individual research project (CS 370 and possibly CS 379H). You should plan on starting this during your junior year so that your results can be reflected in your letters. You also need to take the general GRE exam. For some schools you will need to take the CS subject exam. You should take the CS subject exam as late as possible so that you can use what you have learned in all of your courses. To prepare for the CS exam, take a look at a sample test. Depending on the classes you have taken, you may need to fill in some gaps in what you have learned.
Graduate School Preparation
Graduate admission committees are looking for students who are likely to succeed in research. The best way to convince them that you are one of those students is to get involved in research as an undergraduate. See more on how to get involved in research.
Documenting research requires technical writing skills. Students considering graduate school may want to prepare by enrolling for CS 234 - Technical Writing. This is a small class with lots of opportunity for individual attention that will help satisfy your substantial writing component requirement.
What School Should I Go To?
The answer to this question is very difficult. Your primary consideration should be a school at which you can succeed and accomplish your goals. Perhaps you want to go to a school that specializes in computer theory or maybe a school that is strong with no particular specialization. Once you have some idea of the area(s) that you may want to study, find a CS faculty member whose work is in that/those area(s). Go to office hours or ask for an appointment to talk about schools that are strong in your area(s).
Paying for Graduate School
Most PhD students are supported by their department or by an external fellowship. Many Masters students are also supported by their departments. As you are considering schools, you should look at their websites to find out what levels of support they offer to their students.
There are also fellowships that are awarded by external organizations. If you receive one of these, you can take it to any school to which you are admitted: