Planning for Computer Science Graduate School
Making the Graduate School Decision
For Hunter students nearing the end of our Computer Science undergraduate program, the decision of whether or not to begin the application process for graduate school may be a difficult one. While Faculty Advisors, professors and fellow students can offer invaluable help in fleshing out your field of options, we've pulled together the information below to better prepare you to make an informed decision. If you've already decided to pursue a graduate degree, you'll find helpful resources here, too. For further discussion and assistance, drop by while our advisors are in session, or contact the CS Department at firstname.lastname@example.org for an appointment.
What is Graduate School?
For most computer scientists, graduate school means one of three things:
- Graduate degrees in majors for which an undergraduate computer science degree is helpful. Examples include advanced degrees in the sciences where you apply your computer science background to other areas, and professional schools such as law.
- Terminal master's degrees. These are master's programs that allow you to get more exposure to computer science than possible in the limited amount of time in your undergraduate years.
- Ph.D. degrees. These are intended for those interested in doing computer science research. It is almost always mandatory for getting a job either in industrial research or academia.
For option 1, it is best to consult advisers in the corresponding undergraduate departments to make sure you have adequate undergraduate coursework in both computer science and the other area. If your goal is a scientific major, a strong mathematics background beyond the courses required for your computer science degree is essential.
Option 2 is gaining in popularity, and is becoming increasingly desirable by employers. It allows you to learn more advanced versions of your undergraduate courses, and also do independent work. Typically, this takes the form of 2 years of additional coursework, including a major project and/or a master's thesis. Since this involves independent work, a master's degree will allow you to get a higher-level and more interesting job with more individual responsibilities than attainable with an undergraduate degree. Terminal master's degrees are typically not funded, and some are expensive; however, many believe that the extra costs are recovered quickly in a few years since salaries are higher for those with master's degrees. Traditionally, the master's degree was in computer science; however, some schools have recently started master's programs in various computer science subareas. Sample areas include software engineering, information science & technology, computer security, embedded systems, computational biology, and game programming. These may take the form of degrees or certificates associated with a computer science degree.
Option 3 is intended for researchers. Ph.D. students typically get jobs as college professors, or in industrial or government research labs, with a few also going on to start their own companies or head groups related to their areas. Many studies have shown that computer scientists have one of the highest job satisfactions of all majors, but computer science researchers tend to have high job satisfactions even relative to computer scientists. Typically, a Ph.D. program takes 4-8 years, with the bulk of the time being spent doing independent research and writing a thesis. This is a long time; however, it is generally funded at a level supporting your tuition and a basic subsistence lifestyle. You do not need a master's degree to apply for the Ph.D. program; however, many Hunter students find a master's degree helpful in getting more advanced knowledge and in getting accepted to more prestigious Ph.D. programs (see below).
You should also be aware of a disadvantage of advanced degrees - the higher the degree, the more focused it is. You will be spending the rest of your life in a somewhat narrow computer science subarea. Note, however, that this is also true for an undergraduate degree, but to a lesser extent - while an undergraduate's first job may be as an entry-level programmer, future jobs will likely be in subareas related to the first job.
The rest of this page is mostly intended to provide advice for those intending to enter options 2 or 3; however, the research component is to be de-emphasized for option 2.
Format Of A Ph.D. Program
The end goal of the Ph.D. is to become an expert individual researcher in a particular research area. As such, there are generally 3 stages in a Ph.D. program.
- The first phase (typically 1 year) involves taking courses that give you a broad exposure to computer science that is more advanced than an undergraduate program. People with master's degrees are sometimes exempted from the coursework. This may or may not be a good thing, as you are required to take a qualifying examination based on your courses before continuing in the program, which may pose problems if your MS is at a different college. The exams are a major hurdle, as you typically have to repeat the first year if you fail them.
- The second phase involves taking advanced courses and reading research papers related to your general research area, picking an advisor/mentor, and deciding what your research will be on. You may join a research group consisting of several professors and other Ph.D. students. Picking a good topic often takes time, and it helps to start early (even as early as during your Hunter days). At the end of this phase, you will write a proposal outlining your planned research, and be tested to ensure that your research makes sense and that you have done sufficient background research to proceed.
- The third phase involves doing the research and writing a thesis, preferably also publishing quality papers. Contrary to popular perception, researchers seldom work by themselves, and a good research group can be invaluable to performing good research. At the end of the thesis, you will defend your research. The thesis (and related publications) is the most important part of your Ph.D. program, and its quality will determine your future.
The entire program typically takes 4-8 years. Some people leave the Ph.D. program without completing phase 3; at most schools, they have taken enough credits to receive a master's degree.
Debunking the Grad School Myths
Misconceptions about grad school abound, making the decision to pursue a graduate degree even more daunting for many students, so let's dispel some of those myths to clarify the concept of graduate school:
Myth: I Can't Afford Grad School
Indeed, many schools do not offer financial support to their Master's students (though the number of schools offering aid is growing), however, you'll find that nearly all offer various forms of financial assistance to their Ph.D. students. If you're already considering an eventual Ph.D. in Computer Science, it would be wise to apply to Ph.D. programs right away— should you decide at a later date that the program doesn't fit, you still have the opportunity to leave graduate school once you've completed your Master's. Hunter's Financial Aid office can point you in the direction of currently available options at CUNY, and a good resource on the web is the FinAid! site including information about grants, federal funds, scholarships and more.
Myth: Degree First, Then Grad Applications
As we noted above, most Computer Science graduate schools offer admission directly into their Ph.D. programs, allowing their students to complete their Master's while in attendance. Whether you choose to apply to Master's or Ph.D. programs, plan on beginning the graduate school application process no later than a year in advance of completing your undergraduate degree— your successful entrance into the program of your choice depends on early planning.
Myth: Grad School = Several More Years of Heavy Course Work
Your primary focus and the bulk of your work in grad school will be research. So, the time to start learning good research habits and honing those writing and speaking skills would be while you're still an undergraduate.
What to Expect
Graduate school is your opportunity to enrich and deepen your knowledge and understanding of your field of computer science, allowing you to develop professionally as an independent individual while offering the potential for unprecedented collaborative experiences. Instead of short-term class grades and course projects on which you've relied as an undergraduate, your success in grad school will primarily depend on long-term projects that will be informed by meaningful ongoing research, conference attendance and participation, creative problem solving, and productive peer interaction. However, exams are important, too— your GRE (Graduate Record Examination) scores will carry significant weight with admissions committees, fellowship boards, grant organizations and scholarship foundations throughout your career.
In short, your tenacity, resourcefulness, interpersonal/communication skills, and ability to solve problems creatively and independently will be the key factors on which your degree will be awarded.
You've wrapped your head around the concept of graduate school and you're ready to begin the application process. Congratulations— Now, the work begins! The easiest track to grad school success is to start planning as a freshman by first picking your subfield of study, determining your long-term career goals, selecting a graduate school, forging relationships with your professors, and even defining the subject of your dissertation. Since this is the real world, however, we offer the following general guidance:
You should know that the application process is time consuming and requires a great deal of research and planning. In addition to the obvious decisions about which schools, programs and fields would most benefit and interest you, the groundwork for the graduate school path starts at least a year in advance of taking the GRE. Practice tests are essential in determining areas of weakness and enabling you to strengthen them.
Make an Impression
Because at least three letters of reference will be requirements of your applications, it's important to impress your professors enough to inspire them to write strong recommendations for your admission. Of course, this means that it's probably a good idea to plan which professors with whom you'd like to study. Did we mention, "start early?"
Even if you're only vaguely toying with the idea of graduate school, you should consider taking additional math courses required by the Computer Science program's grad school path that aren't actually required for the major. And again, we cannot stress enough the importance of early practice GRE tests in defining and strengthening your weaknesses.
Your Faculty Advisors are available to speak with you about planning your post-graduate career. To arrange an off-schedule appointment, contact the department at email@example.com. Helpful related resources on the web include:
- PhDs.Org: Comprehensive collection of links and resources relating to all things Ph.D: job postings, tips on getting into the right programs, succeeding in grad school, post-doctoral life, and more. Good jump station. Go...
- FinAid: Self-billed as "the smart student guide to Financial Aid," this funding resources clearing house provides information about scholarships, graduate fellowships, loans, lotteries and grants. You'll also find handy calculators and even applications online. Go...
- CRA: Computer Science Ph.D. Rankings: The Computing Research Association's searchable database of information provided in the National Research Council's Research-Doctorate Programs in the United States: Continuity and Change study. Impressively granular search criteria, but data is from a 1995 study. Good starting point, though. Go...