Graduate programs in computer science can serve as a continuation of the academic knowledge you earned as an undergrad in computer science or a related major, a means to perform research in the field, or as a way to gain exposure to the field.
Degree programs
Most graduate programs offer master's degrees in computer science, doctoral degrees in computer science, or both. With either degree you can seek employment as a professional or in academia; however the Ph.D. is the terminal degree in this case. With that in mind, you should pick the institution that offers the type of degree you want to pursue; however, do not necessarily limit yourself to only one type.
Let's say you have no intention to earn a Ph.D. in computer science and just only want to study for an additional 2 or so years to earn a master's degree in computer science. Think about it. If you choose a program that offers doctoral degrees, they are more likely to have an extensive computer science research department and will not suffer from a lack of funding. If you decide to change your mind about the Ph.D., you can continue on in the same institution.
That's not to say that only large programs are the optimal choice for all graduate students. You may find that you really do want a small program that caters to computer science theory over practice and research. Whatever you choose, make sure you pick a program that accurately reflects your needs and career goals.
Specializations and student-faculty research collaborations
What are you interested in studying? Computer science is a vast subject area that branches into many sub-sets; therefore, graduate programs will most likely reflect the needs, current trends, and standards of the industry.
However, most graduate programs also offer courses and research opportunities that are driven not only by important theoretical aspects of computer science but by faculty interest or student-faculty collaborations.
Examples:
- Algorithms and Analysis
- Artificial Intelligence
- Computer Architecture
- Database Systems
- Human-computer Interaction
- Networks
- Software Engineering
- Systems Security