BS in Computer Science

Our computer science B.S. degree prepares students for careers that provide both personal and societal rewards. As creators of information technologies our graduates are reaching out to people and the world by supporting and enhancing communication, health care, entertainment, scientific inquiry, transportation, business, and almost any other endeavor you can imagine.


The computer science BS degree prepares students for careers that provide both personal and societal rewards. As creators of information technologies our graduates are reaching out to people and the world by supporting and enhancing communication, health care, entertainment, scientific inquiry, transportation, business, and almost any other endeavor you can imagine. Computing connects closely with a wide range of disciplines including, but not limited to, the visual arts, music, life sciences, the physical sciences, linguistics, engineering, mathematics, and the social sciences.  The computer curriculum focuses on developing methods and tools for describing, implementing, and analyzing information processes and for managing complexity; including abstraction, specification, and recursion. 

The Bachelor of Science in Computer Science degree offered by the Department of Computer Science is accredited by the Computing Accreditation Commission of ABET. 

Requirements for the BSCS Major 

Required Core CS AND APMA Courses

CS 1110, 1111, 1112 or 1113: Introduction to Computer Science (requirement waived with AP or IB credit, or by passing CS placement test. NOTE: Placement test does not award credit, so an additional CS elective is needed to replace the credit.)
CS 2110: Software Development Methods
CS 2102: Discrete Mathematics I
CS 2150: Program & Data Representation
CS/ECE 2330: Digital Logic
CS 2190: CS Seminar I (in the process of being removed)
CS 3102: Theory of Computation
CS 3330: Computer Architecture
CS 3240: Advanced Software Development Techniques
CS 4102: Analysis of Algorithms
CS 4414: Operating Systems
Capstone Experience: CS 4970 Practicum I & CS 4971 Practicum II (both must be taken in the same academic year) OR CS 4980 Capstone Research
APMA 3100: Probability
APMA 2130 or 3080 or 3120 or 3150 (select 2, but cannot take both 3120 & 3150)

Required SEAS Courses

APMA 1090, 1110 &  2120
CHEM 1610 & 1611
ENGR 1624
PHYS 1425, 1429, 2415, & 2419

 

Computer Science Electives (5 required) 

Any CS 3000 level or CS 4000 level courses not otherwise required. See the Undergraduate Handbook for a complete list and for restrictions.  Among the choices: 

CS 3205 HCl in Software Development
CS 4240 Principles of Software Design
CS 4330 Advanced Computer Architecture
CS 4444 Parallel Computing
CS 4457 Computer Networks
CS 4458 Internet Engineering
CS 4610 Programming Languages
CS 4620 Compilers
CS 4630 Defense Against the Dark Arts
CS 4710 Artificial Intelligence
CS 4720 Web and Mobile Systems
CS 4730 Game Design
CS 4750 Database Systems
CS 4753 Electronic Commerce Technology
CS 4810 Introduction to Computer Graphics

 

Science / Math Elective (1 required) 

One course, chosen from an approved list, including but not limted to: Biology, Chemistry, Electrical Engineering, Materials Science, and Physics courses. 

For a list of acceptable courses, please visit the Undergraduate Advising office in Thornton A122.  
 

Science, Technology & Society (STS) (4 required) 

STS 1500, 4500, & 4600 are required. You can also take one STS 2XXX/3XXX course, or a College of Arts & Sciences course that satisfies the Second Writing Requirement.

 

Humanities & Social Sciences (HSS) Electives (5 required) 

For a list of acceptable courses, please visit the Undergraduate Advising office in Thornton A122 or view the list in the Undergraduate Handbook.  

 

Unrestricted Electives (5 required)

For a list of acceptable courses, please visit the Undergraduate Advising office in Thornton A122 or view the list in the Undergraduate Handbook.  

BA vs. BS

 


Undergraduate Handbook

UVA Class Schedule