Mar 29, 2024  
Graduate Record 2020-2021 
    
Graduate Record 2020-2021 [ARCHIVED RECORD]

Computer Science


Return to: School of Graduate Engineering and Applied Science  


Department of Computer Science Degrees


As digital computers and networked systems have become ubiquitous, the need to understand the nature of computation, both in its fundamental theoretical capabilities and limitations, as well as in the design, implementation and application of practical systems, has become increasingly important. Our Computer Science Department provides opportunities, through PhD and Masters degree programs, for students to engage in research across this spectrum, and indeed, to make substantial contributions to the overall body of knowledge in computer science. To be prepared to join in this research, students must have a solid background in computer science and be motivated to explore frontiers of knowledge. Of course, with a field as dynamic as computer science, our instructional program continually strikes a balance between the incorporation of current innovations and the established foundations of computer science knowledge.

The spectrum of research opportunities available through our graduate programs includes wireless sensor networks, cyber-physical systems, real-time systems, programming languages and environments,  compilers, critical systems and survivability, computer architecture, electronic commerce, system security, cryptography, machine learning, algorithms, software engineering, program repair, distributed and cloud computing, computer graphics and vision, parallel computing, bioinformatics, mobile wireless health, and computational science and medicine. An emphasis in many of these areas is in empirical research framed by solid theoretical analysis and collaborative multi-disciplinary research. The department has a number of highly visible research projects that are building innovative, cutting-edge systems with national exposure. The department’s computer core infrastructure includes a state-of-the-art mix of hardware and software systems, connected with high-bandwidth networks, as well as high-quality software engineering tools, including commercial development and debugging tools for a variety of programming environments.

The department offers a Doctor of Philosophy of Computer Science degree, along with Master of Science and Master of Computer Science degrees at the graduate level 

In brief summary, the department offers the following degree paths:

Master’s Degrees


Master of Science (MS) degree: A student completes coursework and conducts independent research overseen by a professor which requires a written thesis and oral defense; the level of research effort is commensurate with two typical academic courses.

Master of Computer Science (MCS) degree: Focuses either on all coursework (the student performs no independent research), or involves a project (student conducts independent research overseen by a professor where the level of research effort is commensurate with one typical academic course).

Note: A Master’s Degree student is assigned an academic adviser upon entering the program. If the student selects either an MS or MCS (project) degree, their research adviser then becomes the academic advisor.

Master’s Degree Requirements

All Master’s degrees require a minimum of 31 graded, graduate-level credits (a graduate-level class is any class numbered 5000 or above). A graded credit means that the course resulted in a letter grade (A, B, C…) as opposed to an audited course (AU) or a pass/fail or credit/no credit course (CR/NC). 

No grade lower than a “B” will be accepted towards satisfying the master’s degree requirements. The average of all grades in courses used to satisfy CS graduate degree requirements must have at least a B average (i.e., a minimum cumulative GPA of 3.0). While a course with a passing grade lower than B will count in the GPA, it will not count toward degree requirements.

A UVA BS/BA student who has completed acceptable CS graduate courses that were not used to satisfy the BS/BA requirement can request to use UVA CS graduate courses to fulfill the requirements of our master’s curriculum.

A non-UVA BS/BA student who has completed acceptable CS graduate courses that were not used to satisfy the non-UVA BS/BA requirement can request a transfer of a maximum of 6 graduate credits. 

Whether any individual transfer course counts toward our master’s degree requirements is determined by the Master’s Graduate Programs Director (MGPD).

All Master’s degrees require:

  • 1 credit of CS 6190 (Computer Science Perspectives).

  • 12 credits of graded, graduate-level CS breadth electives, comprised of a minimum of 3 credits in any four of the six focal areas (tracks) listed at https://docs.google.com/document/d/1FNuz86MYke3RhjsAFe0CMQTkd3BytAbsPEZpFclHeBU/edit?usp=sharing

  • The breadth requirement is the same for all three master’s degrees and for the PhD.

  • 18 credits of graded, graduate-level CS electives (or other graduate courses approved by the advisor and the Master’s Graduate Program Director) are required for each Master’s degree.

  • No 5000-level CS courses are acceptable.

  • At most 3 credits of CS 6993/7993 (Independent Study) may count toward the degree.

  • CS 8897/9897 (Graduate Teaching Instruction) can be used to satisfy the full-time requirement.

MS degree. For the MS, exactly 6 credits (3 credits in each of two semesters) of CS 8999 (Thesis) must be taken with the research advisor. These 6 credits reflect the execution, writing, and presentation of the Master’s thesis, and they replace 6 of the 18 hours of CS electives. CS 7995 (Supervised Project Research) cannot be used.

The research activity requires a written thesis and oral presentation. While the exact content of the thesis is under the control of the advisor, a CS MS thesis typically includes an identification of a problem, commentary on why the problem is of importance, a review of the state of the art, a hypothesis regarding the expected outcome of the research, how the research was accomplished, what research results were obtained, an explanation of whether the original hypothesis was or was not verified, summary/conclusions, and topics for future research. 

The assessment of the student’s MS degree is based upon a written thesis and an oral defense. File the form Appointment of Final Examination Committee in advance of the oral defense. The Engineering Thesis and Dissertation Assessment form and the Report on Dissertation or Thesis Final Examination form must be submitted. These two forms are completed by the final examination committee at the conclusion of the thesis defense. See Appendix A for a list of forms and URLs.

MCS degree (project). For the MCS (project), exactly 3 credits of CS 7995 (Supervised Project Research) must be taken with the research advisor. These 3 credits reflect the execution, summary report, and presentation of the MCS project. These 3 credits replace 3 of the 18 credits of CS electives. CS 8999 (Thesis) cannot be used.

The assessment for the MCS (project) requires a written project description, an oral presentation before a minimum of two CS faculty, and the following forms: Engineering Design Assessment, Engineering Analysis Assessment, and Engineering Oral Communication Assessment. It is the responsibility of the student to get these forms completed by the research advisor or committee chair.

MCS degree (coursework). For the MCS (coursework), no credits of CS 7995 (Supervised Project Research) or CS 8999 (Thesis) are allowed.

The assessment for the MCS (coursework) degree requires the following forms: Engineering Graduate Plan of Study Assessment, Engineering Design Assessment, and Engineering Analysis Assessment. The student’s academic advisor or the MGPD normally completes the Graduate Plan of Study Assessment, and any faculty member(s) (typically a course instructor) can complete the other two forms. It is the responsibility of the student to get these forms completed and delivered to the Graduate Student Coordinator.

PhD Degree


There are a number of steps that are required for a PhD degree, finding an advisor via the first-year rotation program, the PhD qualifying exam, forming a PhD Committee, writing and presenting a PhD proposal, writing a PhD dissertation, presenting a public defense of the dissertation, and completing four semesters of half-time work (or equivalent) as a GTA. A typical PhD timeline and financial support options are discussed in the department handbook. 

Assessment. Each semester the Department conducts a review of each PhD student’s progress along these steps. Faculty are asked to evaluate each student’s performance and deadlines for each step and to provide documentation substantiating the evaluation. The PhD Graduate Program Director normally consults with those students who receive a rating of fair or poor to determine what can be done to improve performance. If marginal performance continues, the student may be asked to leave the PhD program. 

Terminology. A person who has an undergraduate degree and who wishes to pursue a PhD is known as a PhD student or a doctoral student.   That person advances to the status of PhD candidate or doctoral candidate after completing all coursework and passing the PhD Qualifying Examination.

PhD Coursework & Other Requirements

The entering PhD student takes 3 credits of CS 6190 Perspectives (required) in the first semester. This course is coordinated with, and the course grade is in part conditioned upon, performance in the First-Year Rotation.

The PhD degree requires 72 graduate-level credits, including:

  • At least 24 credits of graded, graduate-level coursework, consisting of

  • A graded credit means that the course resulted in a letter grade (A, B, C,…). 

  • No grade lower than a “B” will be accepted towards satisfying the PhD degree requirements. The average of all grades in courses used to satisfy CS graduate degree requirements must have at least a B average (i.e., a minimum cumulative GPA of 3.0). While a course with a passing grade lower than B will count in the GPA, it will not count toward degree requirements.

  • No 5000-level CS courses are acceptable.

  • At most 3 credits of CS 6993/7993 (Independent Study) may count toward the degree.

  •  None of CS 6190 (Computer Science Perspectives), CS 8897/9897 (Graduate Teaching Instruction), CS 8999 (Thesis), CS 9999 (Dissertation) or any English as a Second Language (ESL) course can be used to satisfy this 24-credit coursework requirement.

  • If a student transfers a Master’s degree and receives 24 “bulk transfer” credits, then 6 additional credits of CS coursework taken at UVA are required. These credits cannot be transferred.

  • Coursework should be chosen from among our CS graduate courses. Non-CS courses may be approved on a case-by-case basis by the student’s academic advisor and the PGPD.

  • 48 graduate-level research and teaching credits must be taken at UVA, including 12 credits of CS 8897/9897 (Graduate Teaching Instruction) which correspond to the four semesters of half-time (10 hours per week) of GTA work required (or equivalent), and 36 credits of CS 8999 (Thesis, taken pre-qualifying exam) and CS 9999 (Dissertation, taken after passing the qualifying exam) research. The research credits cannot be transferred.

Computer Science Graduate Program


As digital computers and networked systems have become ubiquitous, the need to understand the nature of computation, both in its fundamental theoretical capabilities and limitations, as well as in the design, implementation and application of practical systems, has become increasingly important. Our Computer Science Department provides opportunities, through PhD and Masters degree programs, for students to engage in research across this spectrum, and indeed, to make substantial contributions to the overall body of knowledge in computer science. To be prepared to join in this research, students must have a solid background in computer science and be motivated to explore frontiers of knowledge. Of course, with a field as dynamic as computer science, our instructional program continually strikes a balance between the incorporation of current innovations and the established foundations of computer science knowledge.

The spectrum of research opportunities available through our graduate programs includes wireless sensor networks, cyber-physical systems, real-time systems, programming languages and environments,  compilers, critical systems and survivability, computer architecture, electronic commerce, system security, cryptography, machine learning, algorithms, software engineering, program repair, distributed and cloud computing, computer graphics and vision, parallel computing, bioinformatics, mobile wireless health, and computational science and medicine. An emphasis in many of these areas is in empirical research framed by solid theoretical analysis and collaborative multi-disciplinary research. The department has a number of highly visible research projects that are building innovative, cutting-edge systems with national exposure. The department’s computer core infrastructure includes a state-of-the-art mix of hardware and software systems, connected with high-bandwidth networks, as well as high-quality software engineering tools, including commercial development and debugging tools for a variety of programming environments.

The department offers a Doctor of Philosophy of Computer Science degree, along with Master of Science and Master of Computer Science degrees at the graduate level and the Bachelor of Science and Bachelor of Arts majors at the undergraduate level. Regardless of the degree track all graduate students engage in substantial research. To this end, the department keeps its graduate classes small and fosters a one-to-one relationship with the faculty. In brief summary, the department offers five graduate degree paths:

  1. A project-, exam- and coursework-based Master of Computer Science degree. MCS students are funded by assistantships or fellowships and often go on to complete a PhD.
  2. A thesis-, exam- and coursework-based Master of Science degree. MS students are funded by assistantships or fellowships and often go on to complete a PhD.
  3. A terminal, coursework-based version of the Master of Computer Science degree. Terminal MCS students are often self-funded.
  4. A terminal, thesis- and coursework-based version of the Master of Science degree. Terminal MS students are often self-funded.
  5. A research-based Doctor of Philosophy degree. PhD students are funded by assistantships or fellowships.

Graduate students are also expected to master one area of computer science in depth. To this end, each new student chooses a research advisor within the first semester, takes several advanced seminars, participates in professional conferences, and submits refereed publications during their tenure here. Although specific course requirements are minimal for the Ph.D. degree, students in the program are expected to develop the mathematical skills necessary for well-founded scientific research, participate in the ongoing intellectual life of the department, and regularly attend colloquia and seminars. The department also offers a Doctor of Philosophy of Computer Engineering degree, along with Master of Science and Master of Engineering degrees at the graduate level and the Bachelor of Science major at the undergraduate level. Master’s Degree Requirements

The official requirements for a Master’s Degree are as follolws:

  • A minimum of 31 graduate-level credits, including 1 credit of “Computer Science Perspectives” (CS 6190) – can be waived by permission of the graduate program director
  • 3 credits of a graded graduate-level Mathematics Elective
    • MATH, APMA and STAT courses are acceptable
    • “Machine Learning” (CS 6316) from Fall 2015 onward is acceptable
    • “Introduction to Machine Learning and Data Mining” (CS 6501) from Spring 2015 or earlier is acceptable
    • other non-CS graduate courses with a significant mathematical component can also satisfy this requirement with the prior written approval of the graduate program director
  • 12 credit hours of graded graduate-level Categorized CS Electives
    • 3 credits from “Computer Systems” category
    • 3 credits from “Software Systems” category
    • 3 credits from “Application Systems” category
    • 3 credits from “Theory” category
  • 15 credit hours of graded graduate-level Graduate Electives, following one of three options:

1. Project. Exactly 3 credits of CS 7995 must be used. No credits of CS 8999 may be used to satisfy degree requirements (but CS 8999 may be taken for other purposes, see below). A project presentation must be completed (in the same semester as CS 7995 is taken). 
2. Thesis. Exactly 6 credits of CS 8999 must be used. No credits of CS 7995 may be used. A thesis presentation must be completed.
3. Coursework. No credits of CS 7995 or 8999 may be used to satisfy degree requirements (but CS 8999 may be taken for other purposes, see below). No presentation is necessary. You may not continue on to the PhD program.

  • Restrictions on Graduate Electives:
    • no more than 6 credits from non-CS 5000-level courses
    • no 5000-level CS courses at all
    • no more than 6 transfer credits
    • no TA credits (CS 8897 and CS 9897; see Chapter 3.1)) count toward the degree
    • no more than 3 credits of Independent Study (CS 6993/7993) can be counted toward the degree
  • 3 Assessments forms, chosen from:

1. “Engineering Analysis” assessment form, completed with an instructor from one of your Graduate Electives or your CS advisor
2. “Engineering Design” assessment form, completed with an instructor from one of your Graduate Electives or your CS advisor
3. “Oral Communication” assessment form, completed with an instructor from one of your Graduate Electives of your CS advisor
4. “Plan of Study” assessment form, completed with your CS advisor

  • Complete the “Application for Graduate Degree” form at the start of the semester during which you expect to graduate.  If you are leaving the program after obtaining your Master’s Degree, complete the “Graduate Student Leave Request” form.  Note that while CS 8999 only satisfies degree requirements for students pursuing the Thesis option, it can be taken by Coursework or Project students to help qualify for full-time status (12 credits per semester). In that case it helps with full-time status but does not count toward Master’s degree requirements. 

The PhD degree requires 72 graduate-level credits, including:

  • at least 24 credits of graded graduate-level coursework, containing
    • one graded graduate-level mathematics course (may be satisfied by transfer credit), MATH and APMA courses are acceptable, “Introduction to Machine Learning and Data Mining” (CS 6501) is acceptable and other non-CS graduate courses with a significant mathematical component can also satisfy this requirement with the prior written approval of the graduate program director
    • no more than 6 credits from 5000-level courses, none of which are from the CS department
    • at least 6 credits of graded graduate-level coursework in excess of that required for the Master’s degree (if possessing or obtaining a Master’s degree)
    • The remaining 48 graduate-level credits are typically satisfied via graduate teaching and research hours such as CS 9999.
  • Completion of the Qualifying Examination
  • Completion of the PhD Proposal
  • Completion of the Oral Defense of the written Dissertation
  • Finally, complete the “Graduate Student Leave Request” form to leave the program.
  • These requirements have significant overlap with the MCS and MS degree requirements;
    • many students choose to earn one of those Master’s degrees as part of their PhD studies.
    • SEAS does not limit PhD transfer credit, but all transfer credits must be approved by the student’s PhD committee. Students should not assume that transfer courses will be accepted prior to curriculum committee approval.
    • Students may take additional courses beyond those required for graduation.