B.A. in Computer Science

The Department of Computer Science offers both a Bachelor of Science degree through the School of Engineering and Applied Science and a Bachelor of Arts degree through the College of Arts and Sciences. For more information about these degree programs, along with advising information and example schedules, please go to http://uvacsadvising.org.

All students must complete the unified set of general requirements for all engineering majors. 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.

The Department of Computer Science offers two Computer Science degrees: the Interdisciplinary Major in Computer Science degree offered through the College of Arts & Sciences (BACS), and the Bachelor of Science in Computer Science degree offered through the School of Engineering and Applied Sciences. In addition to the two Computer Science degrees, we also offer a Bachelor of Science in Computer Engineering (aka CpE) degree which is jointly administered with the Electrical and Computer Engineering Department .

The main similarities and differences between the two Computer Science degrees are:

  1. The BACS degree is in the College of Arts & Sciences; the BSCS is in the School of Engineering and Applied Science. This means the degrees have different general requirements. The general requirements for the College of Arts & Sciences are the competency requirements (see the Undergraduate Record for details). For example, the traditional option for these includes two writing requirements, a foreign language, and area requirements in natural science and mathematics, social sciences, humanities, and historical studies. The general requirements for the School of Engineering and Applied Sciences include mathematics, chemistry, physics, technical electives, humanities electives, and science, technology, and society courses. To enroll in the BACS major, students must be enrolled in the College of Arts & Sciences. To enroll in the BSCS major, students must be enrolled in the School of Engineering and Applied Science.
     
  2. With the creation of the new curriculum as outlined at http://advising.uvacs.org, students in both degree programs will complete the same CS foundation requirements - CS 111X, CS 2100, CS 2120, CS 2130, CS 3100, CS 3120, CS 3130, and CS 3140.  BACS students need to complete CS 111X and CS 2100 in order to declare the major.
     
  3. BSCS students are required to take CS 3240 (Advanced Software Development) and a course counting toward the CS capstone requirement, while BACS students are not.
  4. Both degrees require additional courses be taken as CS electives, which are CS courses at the 3000-level or above that are in addition to a degree's required courses described above. The BACS degree requires 3 CS elective courses (9 credits), while the BSCS requires 5 courses (15 credits).
  5. The BACS degree requires four integration electives, which are not part of the BSCS degree. The integration electives are courses in other departments that have strong connections with computing. Look under the BACS tab at http://advising.uvacs.org for a list of pre-approved integration electives.
  6. The BSCS degree (like all Engineering School degrees) requires a fourth-year thesis. This involves taking STS 4500 (in which students write a thesis proposal) and STS 4600 (in which students complete a thesis report), and writing a technical thesis. BACS students are not required to complete a thesis, but may enter the distinguished majors program. To complete a distinguished major, a BACS student must complete a fourth year thesis project that is approved by two readers.

B.A. in Computer Science Curriculum

BACS Prerequisites

To declare the degree, you must have completed the following:

  • An introductory computer science course, such as CS 1110 , CS 1111 , CS 1112 , CS 1113 or CS 1120 , or an equivalent course; or successful completion of the associated place-out test.
  • CS 2100 - Data Structures and Algorithms 1 (with C+ or higher) or equivalent or successful completion of the associated place-out test.

BACS Required CS Courses

All BACS majors must complete the following courses (20 credits):

Computer Science Electives

All BACS majors must complete 9 credits (normally 3 courses) of CS electives. These are CS courses at the 3000-level or above, in addition to the required courses listed above. At most, 3 credits of CS 4993 (Independent Study) can be counted towards this requirement. CS 4980 and CS 4998 cannot be counted towards this requirement.

Integration Electives

  • All BACS majors must complete 12 credits of Integration Electives. These are non-CS courses that contribute to this program of study by exploring applications of computing to arts and sciences fields in a significant way or by providing fundamental computing depth and background. Integration electives are courses offered by departments in the College of Liberal Arts and Sciences. The list of approved courses can be found in the BACS section of the UG Record.

Distinguished Majors Program

Prof. David Evans manages the BACS Distinguished Majors Program (DMP), and details about that program can be found at the link below. Students who apply to and are accepted to be in the Distinguished Majors Program must complete the usual degree requirements as well as a fourth year thesis project. This requires two semesters of CS 4998 - Distinguished BA Majors Research (3 credits each semester) in addition to the usual requirements.

Cyber Security Focal Path

The Department of Computer Science is a National Center of Excellence in Cyber Defense (NCAE-CD). As part of the NCAE-CD program, students can complete a rigorous focal path in cybersecurity. A focal path is a selection of courses that covers the cybersecurity Knowledge Units (KUs) specified by the NCAE program office. The Department of Computer Science Cybersecurity Focal Path requires ten courses.

Declaring a BA Major

Can I declare? The BACS was created for College students who want to combine the study of computer science with coursework that combines computing with other fields of the arts and sciences. Engineering students are not eligible to declare the BACS and should instead declare the CS minor or the BSCS as a second major. Students from other schools should contact the Director of the BACS program at bacsdirector@virginia.edu

To declare the BACS, you must have completed the prerequisites at the time you submit your major declaration. They are:  CS1110 or equivalent with a C+ or higher, and CS2110 or CS 2100 or equivalent with a C+ or higher.

Incoming transfer students who believe they have met the prerequisites should contact the BACS Director by emailing bacsdirector@virginia.edu to be advised and have any questions about course equivalencies resolved.

How do I declare? To declare you will complete a CS department declaration form and submit that when you submit the College’s Major Declaration form using DocuSign. Information on how to do all of this can be found at this link: https://bit.ly/bacs-declaring.  Be sure to follow the instructions on that page (and don’t just follow the College website’s instructions about DocuSign).

When can I declare? You can submit your declaration any time, but our staff may not necessarily process it immediately. (In particular, those submitted in summer may not be processed until mid-August.) Declaration forms will be reviewed on a rolling basis and pending submissions will normally be handled by the 15th of each month (but not in the summer). We will attempt to process declaration forms submitted at peak times (start of fall term, right before course registration) more promptly.

Will I be accepted into the major? All College students who meet the prerequisites will be allowed to declare. Currently there are no “caps” or limits on the number of College students who can declare the BACS. So it is not a competitive admissions situation.

Questions? Send email to cs-admissions@virginia.edu with a subject line "BACS application question".

The information contained on this website is for informational purposes only.  The Undergraduate Record and Graduate Record represent the official repository for academic program requirements. These publications may be found here.