About | Curriculum | Distinguished Majors | Integration Electives | People | Awards
The Computer Science department 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 degree which is jointly administered with the Electrical and Computer Engineering Department .
The main differences between the two Computer Science degrees are:
- 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). They include 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 (see the curriculum for details). 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.
- Students in the BACS degree first take the CS1110-CS2110. After completing the first two courses, students are prepared for the same courses, and both BACS and BSCS take the same core courses (CS2102, CS2150, CS3330, and CS4102).
- The BSCS degree includes some additional required CS courses that are not required for the BACS degree. The additional courses required for the BSCS degree are CS2330 (Digital Logic Design), CS3102 (Theory of Computation), CS3240 (Advanced Software Development Techniques), and CS4414 (Operating Systems). CS2330 is currently restricted to SEAS students, but BACS students are welcome and encouraged to take the rest of these courses, which can count as CS electives for BACS students. But none of these are required for BACS students.
- 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. See http://www.cs.virginia.edu/acad/ba/integration.html for a list of pre-approved integration electives.
- The BSCS degree (like all Engineering School degrees) requires a fourth-year thesis. This involves taking STS 4010 (in which students write a thesis proposal) and STS 4020 (in which students complete a thesis report), and working with a technical advisor on a thesis project. 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.