View the Computer Science Faculty .
The Computer Science Program
The Computer Science Department at William and Mary offers a stimulating, collegial environment in which to pursue a Master’s or Ph.D. degree. With coursework in several broad areas of computer science, William and Mary provides a wide spectrum of advanced study and research opportunities. Defining qualities include the opportunity for easy interaction with faculty, and equal dedication to research and teaching -- a tradition rooted in the university’s history as the nation’s second-oldest institution of higher learning. Graduate students benefit from the proximity of NASA Langley Research Center, and the Thomas Jefferson National Accelerator Facility (TJNAF), institutions which offer opportunities for collaborative research.
Established in 1986, the graduate program features an excellent placement record for its graduates. Our master’s students have found employment primarily with major computer system manufacturers, software development companies, and within the aerospace and defense industry. Our Ph.D. students have gone on to tenure-track academic positions, or have accepted industrial research and development positions. The department’s current graduate enrollment is about ninety students. Historically, one-third of the graduate students have been women.
The Master’s (M.S.) program is appropriate for students who would like to improve their professional competence or prepare for future doctoral study. The program can normally be completed in two years or less without prior graduatelevel coursework. The department also offers, in conjunction with the Mathematics Department, a specialized M.S. degree in Computational Operations Research (COR). COR students conduct research in modeling real world systems using a variety of mathematical and computational techniques. Sample applications include airline crew scheduling, actuator placement in flexible space structures, allocation of spare parts, job shop scheduling and performance analysis.
Students from either M.S. program can continue for the Ph.D. in Computer Science. The Ph.D. program prepares students for careers in research or academia. The program can generally be completed in five years or less of graduate study and requires a dissertation based on original research that makes a significant contribution to scholarly knowledge in the student’s research area.
Areas of Research and Study
The Computer Science Department provides a strong research program with faculty actively engaged in research in the following areas: algorithms, computer systems and networking, high performance computing, modeling and simulation, programming languages and compilers, software verification, software engineering, graphics, and scientific computing.
The Department offers a Master of Science (M.S.) in computer science and a Doctor of Philosophy (Ph.D.) in computer science. In conjunction with faculty from the Mathematics Department, the department also offers a M.S. with a specialization in computational operations research. As part of the Computational Science Cluster, the department offers a M.S. and a Ph.D. with a specialization in computational science. Well qualified students who earn a M.S. with a specialization in computational operations research are encouraged to apply for admission to the Ph.D. program. Faculty are actively engaged in research in the following areas:
- Operating systems: networks, architecture, parallel and distributed computation, security, compiler construction, software engineering;
- Modeling and Simulation: discrete-event simulation, stochastic systems;
- Computational Science: serial and parallel numerical methods, numerical optimization;
- Foundations: analysis of algorithms and graph theory;
- Operations Research: nonlinear programming, discrete optimization, metaheuristics, reliability, computational statistics, stochastic optimization.
Some faculty and graduate students participate in joint research activities with two nearby national research facilities: the NASA Langley Research Center and the Thomas Jefferson National Accelerator Facility (Jefferson Lab).
The department maintains several heterogeneous networks to support teaching and research. These networks include personal computers, Unix workstations, and multiprocessors. Additional information about the department can be found on the web at http://www.wm.edu/computerscience.
Applicants must submit test results for the aptitude portion of the Graduate Record Examination and are encouraged (but not required) to submit results from a suitable subject area. Students from non-English speaking countries must submit TOEFL results.
Admission requirements for the M.S. and Ph.D. in computer science
Students seeking the M.S. or Ph.D. degrees in computer science are expected to have a background that includes the following:
Mathematics: two calculus courses and one linear algebra course.
Computer Science: two introductory programming courses (CS1 and CS2 in the standard computer science curriculum) and one course in each of discrete mathematics, data structures, algorithms, and computer organization.
Applicants lacking this background may be admitted provisionally into the M.S. program. In that case, the department will establish a suitable set of qualifying courses at the time of admission. To achieve regular status, provisionally accepted students must earn at least a B in each qualifying course. There is no provisional admission into the Ph.D. program.
Admission requirements for the M.S. with a specialization in computational operations research
Students seeking the M.S. degree with a specialization in computational operations research are expected to have a background in mathematics, science or engineering and the ability to program in a high-level language. Students with insufficient background in computer science may be required to enroll in CSCI 241 and CSCI 303. Applicants lacking an appropriate background may be admitted provisionally.
Admission requirements for the M.S. with a specialization in computational science
Students seeking the M.S. degree with a specialization in computational science are expected to have a background in mathematics, science or engineering that includes the following:
Mathematics: two calculus courses and one linear algebra course
Computer Science: two introductory programming courses (CS1 and CS2 in the standard computer science curriculum).
Students with insufficient background in data structures, algorithms, computer organization, and systems programming may be required to enroll in CSCI 241, CSCI 303, CSCI 304, and CSCI 315.
Programs and Course Descriptions
Description of Courses
Wherever a William and Mary course is specified as a prerequisite, it is understood that appropriate experience or an equivalent course, taken at another institution, may be substituted for the specified prerequisite. Each such substitution must be approved by the instructor of the course for which a substitution is appropriate. Generally, graduate students should also consult with their advisors to verify that they meet all course prerequisites.
Note that 500-level courses are cross-listed as 400-level courses or 300-level courses in the undergraduate catalog and will thus be open to undergraduates. In these cross-listed courses, there will be higher expectations and additional requirements for graduate students. Students should consult with the instructor of such a course for further information.
Unless otherwise noted, all courses are graded using standard grading [A, B, C, D, F] scheme (See Grading and Academic Progress in the section entitled ‘Graduate Regulations ’) and may not be repeated for credit (See Repeated Courses requirements in the section entitled ‘Graduate Regulations ’).