Policies and Procedures

  1. Prerequisite Policy
  2. CS Elective Policy
  3. Policy on Course Credit for Internships
  4. Policy on Independent Study Courses
  5. Policy on Enrolled Students Taking Course Work at Other Institutions
  6. Double Counting Courses Policy
  7. Missing/Replacement Credits Policy
  8. Policy on Changing Graduation Year / Graduating Early
  9. Policy on Conflicts Between Required Courses for Graduating Students
  10. Grade Appeal Policy
  11. CS Department Grading Guidelines
  12. Laptop policy for Computer Science courses
  13. 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.

NOTE: ECE courses that are cross-listed with CS do count as CS electives (e.g., CS 4457 and ECE 4457), even if you sign up for the ECE number. However, we will have to put an exception in SIS to make this count before you graduate.

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.

Policy on Independent Study Courses

These courses are one-off offerings tailored to specific students. In general, they may consist of:

  • Instruction in topics not of general interest
  • Supervised research, in which the primary goal is the student performing or assisting in a research project
  • Supervised project work, in which the primary goal is the student creating or assisting in the creation of a significant artifact

All independent study courses must be offered by a faculty member with an appointment in the Computer Science department. Independent studies can be performed with faculty outside the CS department for credit, but it is required that a CS faculty member have some oversight in the project such that they can offer the actual independent study course and assign a final grade.

The independent study courses offered by the department are:

  • CS 2993 - Should have limited prereqs and deal in less advanced material than a typical computing elective. Generally counts as an unrestricted elective, and not a CS elective.
  • CS 4980 - Independent work done in pursuit of the capstone for BSCS students only.
  • CS 4993 - Must build on the student’s foundational CS knowledge in some way and require CS 2100, CS 2120, or CS 2130 at a minimum as a prerequisite. Should be work equivalent to what is done in a typical CS elective course and counts as a CS elective.
  • CS 4998 - Independent work done in pursuit of the Distinguished Major for BACS students only.

Before signing up for an independent study course, there should be an initial discussion between the student and the professor to ensure that both individuals want to move forward. Note that all independent study courses are set up as permission of instructor in SIS and require professor approval. Faculty members who do not have a particular independent study course listed in SIS for a given semester should reach out to the department scheduler for assistance.

Instructors of independent study courses should clearly specify their expectations in writing to students early in the term (a week before the drop deadline at a minimum) and should grade them based on those expectations. The final output of an independent study course is at the discretion of the faculty member, bearing in mind the level and purpose of the course as described above. Some common outputs include a technical paper or report or a significant software project.

It is appropriate to mix and match independent study sections with other sections. For example, the following are appropriate:

  • Having a group of undergraduates working on a project, some for CS 4993, some for CS 4980, and some as an uncredited side project
  • Having an undergrad in CS 4993 attend a graduate course as their primary learning activity
  • Having a BSCS student work on a year-long project with 3 credits of CS 4993 in one semester and 3 credits of CS 4980 in the other

Independent study courses are variable credit courses, which means a student can register for 1, 2, or 3 credits of work in a given semester. A studnet and faculty member can spread independent study credits out as well if that makese sense for the project (e.g., the student takes 1 credit of CS 4980 in the fall to do a literature review and 2 credits of CS 4980 in the spring to do the project). Note that a student can only earn a total of 3 credits of CS 4993 and it count as a CS elective. Any credits of CS 4993 beyond 3 will count as unrestricted elective credits.

Policy on Enrolled Students Taking Course Work at Other Institutions

NOTE: This policy was emailed out by the SEAS Dean’s Office in January 2024. We are reviewing how it may also apply to BACS majors.

Per UVA’s Academic Record, “University of Virginia students must secure the permission of their dean’s office prior to enrolling in courses at another institution and transferring academic credit back to the University to apply toward their degree program.”

UVA expects you to be fully invested in your coursework here during the regular Fall and Spring semesters, and not taking courses elsewhere. If you enroll in a course elsewhere during the Fall or Spring UVA semesters without getting explicit written permission from your dean’s office, then you will not be able to transfer any credits from that course back to UVA. This rule does not normally apply to summer or J-term enrollment.

Per the SEAS dean’s office, in making a decision on whether to allow enrollment elsewhere and transfer of credits during a regular enrolled semester at UVA, we will consider whether doing so is necessary or only a preference. We will consider whether a suitable class is already available at UVA and whether it is possible for you to take it. We may also consider the degree of overlap of the course with our semester, whether by one week or many weeks, and we will consider your current academic load. Examples of requests that will not normally be approved include a fondness for online learning, a preference to take the class elsewhere, a desire to go to increased load, or a wish to “get ahead.”

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

Note: Effective 2/28/2024, the College of Arts and Sciences will no longer manually change a student’s expected graduation term, which means College students cannot get an updated registration time when they plan to graduate early. This will not prevent a BACS student from graduating early; they will simply apply for graduation in SIS during the semester in which they will graduate. This website appears to document how to do this, but contact your College Association Dean if you have questions.

For SEAS students, read the following information below.

The department will help a CS student in SEAS 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.

The timeframe for making this change is:

  • If it is currently the spring semester and you aim to graduate in one year in the next spring semester, submit your request between the Add Deadline (2 weeks after the start of the current spring semester) and February 15.
  • If it is currently the fall semester you aim to graduate in one year in the next fall semester, submit your request between the Add Deadline (2 weeks after the start of the current fall semester) and September 15.

While requests can be made outside of this timeframe, the department cannot guarantee that a student’s class year can be changed in time for the next registration cycle if the request comes in after the 15th of Februrary or September, respectively.

If a SEAS 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 - with their plan to set up a meeting. If the program director agrees that this plan is feasible, the program director will contact the SEAS 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.

Policy on Conflicts Between Required Courses for Graduating Students

If a student is double majoring in a computing major and something else or is minoring in CS, there is a chance that in a student’s final semester, there could be a conflict between required courses from the two programs.

Student is majoring in the BACS and Psychology and is entering their last semester at UVA. The student needs both CS 3120 (a required course) and a specific advanced research methods course in Psychology that meets at the same time as CS 3120 and there is only one section of each course.

If a student is in this situation, they should document the conflict (specfically showing the required courses and their conflicting time) and reach out to the appropriate program director (see below) to discuss options. Sometimes, we may be able to substitute a similar course or allow a student to take a class asnychronously. There is no “one size fits all” solution to this issue, so a student should reach out as soon as the problem becomes apparent.

Please note that this only applies to required courses in both degree programs. If there are viable alternatives, we expect the student to take the alternate course, even if it is not optimal (e.g., different elective, a time slot the student doesn’t want, etc.).

Student has a required class in another major that conflicts with CS 4774: Machine Learning, an elective that they want to take. In this case, the student would need to choose another CS elective.

Students who have more than one semester at UVA remaining cannot and should not ask for a curriculum modification due to conflicting classes. Note that CS offers all required courses every semester, so there is ample opportunity to complete our required courses.


Grade Appeal Policy

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.

Laptop policy for Computer Science courses

There is already a policy in place that requires SEAS students to have and maintain a laptop for course work. However, the College does not have a similar policy. It is allowable for any faculty member to institute a laptop requirement for any Computer Science course as they see fit. If a student does not have access to a laptop that fits this requirement, the CS systems staff has obtained a number of long-term loaner computers that can be given to students. The student should contact the systems staff - cshelpdesk@virginia.edu - in order to begin this process.

The faculty member should make it clear to the students that laptops are required AND that this laptop loaner program is available to them. Students must return the laptop at the end of each semester, but can loan a new laptop at the beginning of the following semester if necessary. If, for some reason, the department finds that the demand for these laptops exceeds supply and a loaner is not able to be issued, then the faculty member must waive the laptop requirement for the student however they deem most appropriate.

UVA Policies

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