Jun 18, 2024  
Undergraduate Record 2023-2024 
Undergraduate Record 2023-2024 [ARCHIVED RECORD]

Computer Science (B.S.)

Return to {$returnto_text} Return to: Programs

Return to: School of Engineering and Applied Science: Degree Programs  


The Bachelor of Science degree in Computer Science is accredited by the Computing Accreditation Commission of ABET - https://www.abet.org.


Program Objectives

Graduates of the Bachelor of Science in Computer Science program:

  • Have the knowledge and skills that allow them to make tangible contributions in their profession.
  • Have the knowledge and skills that allow them meet new technical challenges.
  • Are able to contribute effectively to society.
  • Are able to work effectively as team leaders and members.
  • Have the ability to be innovators in the design, analysis and application of computer systems.


GPA Requirement

BSCS majors must have a 2.0 GPA average for CS courses in order to graduate.  For courses that must be repeated due to a failing grade or not obtaining the needed grade as a prerequisite for a later course, all grades (including the original grade) count toward the CS GPA.

Place-Out Tests

Some students who come to UVA with programming experience but without any formal credentials to earn degree credits (e.g. AP, IB, or dual-enrollment), can opt to take a place-out test for some early courses.  Place-out tests can be requested from the CS office in Rice 527 during the time periods of (a) the week before classes begin, (b) the first week of classes, and (c) the week preceding the week before enrollment opens.  Upon completing a place-out test and turning it in to the CS office, a CS faculty member will determine whether the student has sufficient background and experience with the material to move on to the next course.  NOTE: Passing a place-out test DOES NOT award degree credit.  It only grants an exception to needing the course as a prerequisite to move on.  Students who pass the place-out test will be informed by the CS office, who will note the completion of the test in the student’s SIS academic report.  The student must at some point in the future complete additional CS courses equivalent to the number of credits that were placed-out of in order to complete the requirement.

Course Enrollment Policies

Prerequisites for Courses

In general, CS courses have the following prerequisite structure:

  • 1000 level courses - no prerequisites

  • 2000 level courses - require completion of a course in Introduction to Programming

  • 3000 level courses - require completion of certain 2000 or other 3000 level courses

  • 4000 level courses - require completion of certain 2000 or 3000 level courses

Each course’s prerequisites can be found with their course catalog entry in SIS.  Students who do not meet the prerequisite for a course or do not have explicit instructor permission to stay in the course may be dropped from the course roster at any time.

Most CS courses require a grade of C- or better in their prerequisite courses. A D- or better in a course is sufficient to meet graduation requirements, but not sufficient to take subsequent courses.


Declaring the Major

Students declare their major in the School of Engineering and Applied Science either in their second semester if they entered the school as a first year student or upon transfer to the School.  More information can be found on the SEAS page for major declaration.

Degree Requirements

All students completing the Bachelor of Science degree in Computer Science must fulfill the following requirements.

School of Engineering and Applied Science General Requirements

BSCS students must complete the unified set of general requirements for all engineering majors.  More information can be found on the SEAS Curricular Requirements page.  These courses are often completed during the first two years in SEAS, with the exception of STS 4500 and 4600, which are taken during the fall and spring of the fourth year, respectively.

Introduction to Programming

All SEAS students (including CS majors) must complete one Introduction to Programming course as a part of their general SEAS requirements.  Students may also complete this requirement through Advanced Placement (AP), International Baccalaureate (IB), or dual-enrollment credit.  Some students with programming experience may wish to take the place-out test, which satisfies the requirement but does not award degree credit.  More information can be found in the Place-Out Tests section below.

Choose one of the following:

Foundation Courses

These courses are the next set of courses students take after finishing Introduction to Programming and comprise the set of prerequisites for upper-level courses.  The 2000 level courses should be taken before the 3000 level courses and note that there are other prerequisites that govern the order that these courses should be taken.  Example schedules can be found on the Computer Science Department webpage.

Upper-Level Required Courses

BSCS majors must take one upper-level course in software engineering and one course to complete the SEAS senior thesis.

Computer Science Electives

BSCS majors must take fifteen (15) credits of CS courses at the 3000 level or higher.  Courses from other disciplines will only be accepted under rare circumstances and by approval of the CS Undergraduate Curriculum Committee.


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.
  • 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.

Applied Mathematics Electives

BSCS majors must take three (3) additional courses in Applied Mathematics beyond the SEAS General Requirements.  Equivalent courses from the Department of Mathematics may be substituted for matching APMA courses.

Math and Science Elective I

Students must complete a 3 credit Math and Science Elective chosen from: BIOL 2100, BIOL 2200, CHEM 1420, EVSC 2800, EVSC 3200, EVSC 3300, MSE 2090, PHYS 2620, or an approved 2000-level or higher APMA course not already required by a student’s major and does not duplicate material from another APMA course. 

Humanities and Social Science (HSS) Electives

BSCS majors must complete a total of fifteen (15) credits of HSS electives, which includes the nine (9) credits of HSS courses required by the general SEAS requirements.  HSS electives are selected from an approved list (available in A122 Thornton Hall or in the UVA Engineering Undergraduate Handbook) of humanities and social science offerings. Communication courses in the student’s native or first language, regardless of their level, may not be used to satisfy this requirement.  See the SEAS page regarding electives for more information.

Unrestricted Electives

BSCS majors must complete fifteen (15) credits of unrestricted electives.  Unrestricted electives may be chosen from any graded course in the University except mathematics courses below MATH 1310; courses that substantially duplicate any others offered for the degree, including PHYS 2010, PHYS 2020, CS 1010, CS 1020; any introductory programming course; or SCPS courses. APMA 1090 counts as a three credit unrestricted elective. See the SEAS page regarding electives for more information.

Minor in Computer Science

To obtain a minor in computer science, a student must complete the following requirements:

Additional Information

For more information about the major or the Computer Science department, please see our website at http://www.cs.virginia.edu or call the CS office at 434.982.2200.


Return to {$returnto_text} Return to: Programs