Policies and Procedures

  1. Prerequisite Policy
  2. CS Elective Policy
  3. Policy on Course Credit for Internships
  4. Double Counting Courses Policy
  5. Missing/Replacement Credits Policy
  6. Policy on Changing Graduation Year / Graduating Early
  7. Grade Appeal Policy
  8. CS Department Grading Guidelines
  9. UVA Policies

Prerequisite Policy

The CS department enforces all course prerequisites listed in course descriptions. For example, if you take a course that requires CS 2100 with a C- or higher and you don’t meet that prereq, you may be able to enroll but you’ll be removed at the start of the semester. Obey the prerequisite rules!

Q: What if I am taking a course over the summer / J-term? Will that count toward prereqs for the next regular term?
A: The courses taken at another institution cannot apply toward prerequisites at UVA until it has been completed and the grade is shown in SIS. For example, if you plan to take a course to replace CS 2100 over the summer, SIS will not let you register for CS 3140 for the following fall until the course you are taking over the summer has been successfully completed AND is in SIS. There is no good way to put in exceptions in SIS based on what a student “plans to do.” You can always reach out to the professors of the course you want to get in to, but they will generally let the registration process proceed normally.

If, however, the summer / J-term course is taken at UVA, SIS will treat the course the same as if you are taking it in the current semester. Example: You are taking CS 2100 in the Spring semester and want to enroll in CS 3100 in the Fall. CS 3100, however, requires that you have both CS 2100 and CS 2120. If you register for CS 2120 over the summer at UVA, SIS will treat CS 2120 as part of your academic plan ahead of the fall and will allow you to register for CS 3100.

NOTE: Regardless of what SIS let’s you register for, the CS department will still check all prerequisites at the start of each semester. If you do not have the appropriate grades in the needed courses, we will drop you from the courses that have these prerequisites.

CS Elective Policy

CS electives consist of CS courses at the 3000 level or higher that are not already being used for a degree requirement. These courses must have the CS mnemonic. Courses from other disciplines will only be accepted under rare circumstances and by approval of the CS Undergraduate Curriculum Committee. Per accredidation rules, CS electives must build upon foundational computer science material and therefore must have at least one non-introductory CS course as a prerequisite. Additional CS electives may be required as part of the CS 4991 option for the senior thesis or to fill in missing credits due to place-out test.

Guidelines for CS Electives:

  • Must have a CS mnemonic.
  • Must be at the 3000 level or higher.
  • Must not be a foundation course or upper-level required course.
  • Must have CS 2100 as a prerequisite at a minimum (3000-level foundation prerequisite is preferred).
  • Second digit of course number must not be 0 or 9, except as noted below.
  • Two electives with significant overlap of material cannot both count toward the CS degree.
  • Up to three (3) credits of CS 4993 - Independent Study may count toward the CS elective requirement. Credits beyond this limit may be applied to the unrestricted elective requirement.
  • CS 4980 and CS 4998 do not count as CS electives.

Policy on Course Credit for Internships

Students often ask if they can receive CS course credit for an internship experience that they have. While the department highly encourages students to seek out internships, these are not part of our degree program and cannot grant course credit.

The reasons for this are:

  • For accreditation reasons, CS coursework that counts toward the degree program must be supervised by a faculty member with an appointment in Computer Science.
  • The course description for our independent study course states that it is an “in-depth study of a computer science or computer engineering problem by an individual student in close consultation with departmental faculty.” This is almost never the case with an internship.
  • Per the registrar, a student cannot be paid for any work or employment experience that is being considered for credit.

Students who must get course credit for an internship (such as for visa requirements or CPT) should sign up for UNST 3910 or UNST 3920. These one-credit courses are offered CR/NC and cannot be used toward degree requirements, but do count toward overall credits taken.

Double Counting Courses Policy


  1. With a minor: The College has a strict policy that a course cannot be used to satisfy both a minor and a major requirement. This means that for BACS majors, both CS major requirements and integration electives cannot be used to also satisfy a minor requirement (even if that minor is outside the College, like Data Science). However, the two CS courses that are prerequisites to the BACS major, CS111x and CS2100, can be used for a minor.
  2. With another major: If you want to count a course for two majors, it depends on if you’re following the “new” degree requirements or the “old” requirements. The “old” degree is officially an interdisciplinary degree and the “new” one is not.
  3. If you’re following the “new” curriculum requirements, the CS degree you’ll get is NOT an interdisciplinary major. If the other major is interdisciplinary, you can share up to 3 courses from the BACS (CS courses and/or Integration Electives) with that interdisciplinary major. But if the other major is not interdisciplinary, you can share only 2 courses.
  4. If you’re following the “old” curriculum requirements, the CS degree you’ll get is an interdisciplinary major, i.e. it is officially part of the “interdisciplinary” degree program. Therefore, you can share up to 3 courses from the BACS (CS courses and/or Integration Electives) with any other major.
  5. It’s possible that the other department may need to agree to sharing. CS always approves of such sharing. Check with your advisor or DUP in the other department to see if they have any restrictions. Cognitive Science in particular has some specific rules about this. Check with CogSci about this if that’s your second major.



  1. SEAS has no restriction on allowing a course to count for two majors.
  2. SEAS has no restriction on allowing a course to count for both a SEAS major and a minor.

Missing/Replacement Credits Policy

If a course transferred in to UVA as 3 credits, but the UVA-equivalent course is 4 credits, then there is a “missing credit” that must be replaced. This could be the case for CS 2100, CS 2130, CS 3130, and some APMA courses.

Also, a student could be “missing credits” if they took the CS 1110 or CS 2100 place-out tests. These tests meet the prerequisite for later courses, but do not award credit, so the missing credits have to be made up.

For CS 1110: Any technical course will count EXCEPT our own CS 1 courses (CS 1110, 1111, 1112, or 1113). Some examples include:

  • Any CS course numbered 2000 or higher
  • A programming course in another department, such as PHYS 1655 or STAT 1602
  • An APMA course not already being used toward the major
  • Another SEAS science elective

For CS 2100, CS 2130, or CS 3130: Any CS course numbered 2000 or higher.

For APMA: Any other APMA or MATH course credits not already being used toward the major.

Policy on Changing Graduation Year / Graduating Early

The department will help a CS student change their graduation year / class year standing in SIS because they are graduating early only when they are about to start their final year at UVA. This typically means the student has roughly 30-36 credits remaining and plans on enrolling in two more regular semesters at UVA.

If a student is in this position and wishes to proceed, they need to create a course schedule / outline that shows that they can finish the degree in one year and make an appointment with the appropriate program director - bscsdirector@virginia.edu or bacsdirector@virginia.edu - with their plan to set up a meeting. If the program director agrees that this plan is feasible, the program director will contact the appropriate school registrar to make the change in SIS.

We will not entertain requests to change a graduation year / class standing until one year remains because it is not uncommon for students to think they want to graduate early, only to find that they require more time.

Further, if we process this change for you, you are committing to graduating early and cannot revert this change except under special circumstances.

Grade Appeal Policy

This policy is a draft as of 8/4/2023. If and when it is approved, this comment will be removed.

Students who wish to dispute their course grade in an undergraduate CS course must follow the following process. The process applies to any student taking a CS course no matter what school they are enrolled in. This policy is meant to be compatible and not conflict with school or university policies, including the SEAS Grade Appeal Policy.

Before filing a grievance with the department, the student should have attempted to resolve their concerns directly with the instructor(s). These attempts should be sincere and substantial. If these attempts do not resolve the issue, the student affected should email their grievance to the contact listed at end of this section. The grievance must include:

  • Which course policy or procedure has been violated, e.g. the specific issue(s) behind the appeal;
  • Any syllabus or posted course policies that are relevant (including links or a PDF of the information), describing how they apply to the situation;
  • What efforts the student has made to resolve the concern with the instructor(s), including copies of emails, etc. if relevant; and,
  • The requested resolution.

It is the responsibility of the student filing the grievance to ensure that the grievance clearly describes the issue and includes all necessary supporting documentation at the time of submission.

A disagreement over the quality of the student’s work is not sufficient grounds for an appeal. Appeals may only relate to adherence to course policies, the process of how the final grade was computed, etc. An appeal based on a student’s disagreement with a documented course policy is unlikely to succeed, unless the student can argue that the policy has been applied in an unfair or unreasonable manner.

A grade appeal to the CS department from a course offered during the fall term must be initiated by the student by February 1st of the following spring term; the appeal of a grade from a course offered during the spring or summer terms must be initiated by the student by September 1st of the following fall term. The appeal of a grade from a course offered during a student’s final term before graduation must be appealed before graduation.

If the student is unsatisfied with the department’s response to the appeal, they can follow the SEAS Grade Appeal Policy. Note that the SEAS deadlines to submit an appeal are exactly one month after the CS department deadlines listed above. The student should include a copy of the CS department’s response with the appeal to SEAS. By SEAS policy, a student does not have to appeal to the department and can appeal directly to the School. If a student does this, then they cannot appeal to the department once the School has given a response, i.e. the School’s response cannot be appealed to the department.

Email a grade appeal for an undergraduate CS courses to one of the following addresses. Make sure the email subject includes “grade appeal” and the course.

CS Department Grading Guidelines

This document was approved as an official guideline for the CS department and its associated courses by vote of the CS faculty on 2019-02-18.

The giving of grades is a well-established component of our educational system, but the meaning of those grades is not. In an effort to provide some clarity and consistency, the CS department provides the following guidelines. These guidelines are not a grading system, but rather definitions which resulting grades should approximate. Individual courses may establish different definitions in their beginning-of-course memo. Using the definitions in this document will help students understand which subsequent courses and experiences they are prepared to excel in and which they are not yet ready to undertake.

Course grading practice should be described in syllabi or beginning-of-course memos. Such descriptions should explain how the activities and assessments in the course contribute to student grades. Grading practices should result in final grades that approximate the definitions contained in this document.

It is traditional for grades to reflect a combination of several kinds of learning objectives, including but not limited to communication skills, creativity, learning, participation, professionalism, skill, teamwork, timeliness, understanding, etc. Each course may combine these learning objectives differently while still satisfying the following definitions.

  • “A” is used for students who demonstrate mastery of all learning objectives. An “A” should be seen as a recommendation that the student would likely do well in areas that depend on these objectives in the future.
  • “B” is used for students who demonstrate competence in all significant learning objectives. A “B” should be seen as an acknowledgement that the student would be able to do well in areas that depend on these objectives in the future, but that their learning was incomplete; they are encouraged to review and improve in this topical area if it is a significant part of their future plans.
  • “C” is used for students who demonstrate sufficient competence in enough of the learning objectives that subsequent work can be contemplated. A “C” should be seen as a caution that some aspects of the course seem to be missing or misunderstood and that future efforts in areas that depend on these objectives are likely to be challenging unless those gaps are first filled.
  • “D” is used for students who demonstrate minimal competence in learning objectives, but not enough to recommend further studies or activities in related areas. A “D” should be seen as a prediction that future efforts in areas that depend on these objectives are unlikely to be successful unless the course that gave the “D” is first retaken.
  • “F” is used for students who failed to demonstrate minimal competence in learning objectives. An “F” should be seen as indicating that future efforts in areas that depend on these objectives should not be undertaken without first retaking the course that gave the “F”.

Misconduct or lack of professionalism may result in a lower grade than demonstrated competence would otherwise indicate. The scope and nature of such reductions, if any, may be determined independently for each course offering.

UVA Policies

Links are provided here to relevant UVA policies on class activities.