Graduate Program - Application Prerequisites
We are interested in recruiting graduate students from a variety of fields. Computer Science is pervasive and touches a lot of application domains; it is a strength to have broader experience and knowledge. We also have a goal of contributing skilled and well-trained individuals to our nation's workforce. Our degrees are technical, and require a technical background, which is appropriate given that we are in the College of Engineering at N.C. State.
The subjects we believe are necessary for success in our graduate program are:
- Mathematics: calculus (2 or 3 semesters), probability and statistics (typically at a junior or senior level), and discrete math. A course in linear algebra can also be helpful.
- Programming and algorithmic thinking: 2 semesters of object-oriented programming (Java, C++, or the like), and a course in data structures. A course in algorithm analysis / automata theory is worth considering.
- Computer Systems: a course on operating systems and material on computer organization.
At N.C. State, these undergraduate courses and their descriptions are as follows:
- two- or three-semester calculus sequence (MA 141, MA 241, MA 242)
- linear algebra (MA 305 or MA 405)
- probability and statistics (ST 370 or MA 421)
- discrete math (CSC 226)
- object-oriented programming (CSC 116 and CSC 216)
- data structures (CSC 316)
- operating systems (CSC 246)
If you have taken all of these, great, you are ready for graduate school! Otherwise, you will have to decide which ones you wish to take before applying. Only you can judge whether courses taken elsewhere are "close enough", or whether work experience or self-study substitutes for some of these classes. Just be aware that the above are the expectations of our faculty.
All or almost all of these Computer Science prerequisites at NC State are available online to non-degree seeking students. See the NDS program and the Computer Programming Certificate for more information. Standard math courses are commonly available from any reputable community or 4-year college.
All aspects of an application are reviewed before making admissions decisions, including previous degrees and coursework, personal statements, etc. We do not admit conditionally or provisionally. We have had many prospective applicants successfully make up gaps in their preparation, then apply and get admitted, do well in the graduate program, and go on to very good opportunities. This includes talented individuals who came from a variety of backgrounds: business, other branches of engineering and science, the liberal arts, etc.
Our purpose is not to keep people out of computing or discourage pursuit of a graduate degree. It is just the opposite. At the same time, the above is meant to prepare students for a successful experience in graduate school.