This is the preliminary (or launch) version of the 2024-2025 VCU Bulletin. Courses that expose students to cutting-edge content and transformative learning may be added and notification of additional program approvals may be received prior to finalization. General education program content is also subject to change. The final edition and full PDF version will include these updates and will be available in August prior to the beginning of the fall semester.

The Bachelor of Arts in Computer Science is a multidisciplinary program that integrates a curriculum of computer science courses with other areas of study. The program provides a foundation in the computer science discipline and encourages students to integrate different perspectives in order to formulate new ideas and solutions for today’s computing challenges.

The degree requires a minimum of 120 credit hours.  Students are required to attain a second major or a minor in another content area.

Student learning outcomes

Upon completing this program, students will know and know how to do the following:

  1. Analyze a complex computing problem and apply principles of computing and other relevant disciplines to identify solutions
  2. Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program's discipline
  3. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline
  4. Apply computer science theory and software development fundamentals to produce computing-based solutions
  5. Respond to complex problems, issues and ideas by proposing new ideas or solutions that understand and integrate the perspectives of multiple disciplines and stakeholders

Special requirements

The B.A. in Computer Science requires a minimum of 120 credits. Students must receive a minimum grade of C in all computer science courses in order to graduate.

Degree requirements for Computer Science, Bachelor of Arts (B.A.)

Course Title Hours
General education
Select 30 credits of general education courses in consultation with an adviser.30
Major requirements
• Major core requirements
CMSC 235Computing and Data Ethics3
CMSC 254Introduction to Problem-solving4
CMSC 255Introduction to Object-oriented Programming4
CMSC 256Introduction to Data Structures4
CMSC 302Introduction to Discrete Structures3
CMSC 311Computer Organization3
CMSC 355Fundamentals of Software Engineering3
CMSC 401Algorithm Analysis with Advanced Data Structures3
• Restricted electives
Select four courses from the following:12-13
Computer Systems
Introduction to the Theory of Computation
Programming Languages
Introduction to Operating Systems
Compiler Construction
Databases
Introduction to Quantum Computing
Computer Graphics
Social Network Analysis and Cybersecurity Risks
Introduction to Cybersecurity
Computer and Network Security
Introduction to Cryptography
Software Project Management
Introduction to Software Analysis and Testing
Software as a Service
Design and Implementation of User Interfaces
Mobile Programming: iOS
Introduction to Data Science
Artificial Intelligence
Introduction to Natural Language Processing
Machine Learning
Data Communication and Networking
Ancillary requirements
IDST 301Interdisciplinary Theory and Practice3
MATH 211Mathematical Structures3
MATH 310Linear Algebra3
STAT 212Concepts of Statistics (satisfies general education quantitative foundations)3
Required minor
Select a minor.18
Open electives
Select any course.20-24
Total Hours120

The minimum number of credit hours required for this degree is 120.

What follows is a sample plan that meets the prescribed requirements within a four-year course of study at VCU. Please contact your adviser before beginning course work toward a degree.

Freshman year
Fall semesterHours
CMSC 235 Computing and Data Ethics 3
CMSC 254 Introduction to Problem-solving 4
MATH 151 Precalculus Mathematics 4
UNIV 111 Play VideoPlay course video for Focused Inquiry I Focused Inquiry I (satisfies general education UNIV foundations) 3
 Term Hours: 14
Spring semester
CMSC 255 Introduction to Object-oriented Programming 4
MATH 211 Mathematical Structures 3
UNIV 112 Play VideoPlay course video for Focused Inquiry II Focused Inquiry II (satisfies general education UNIV foundations) 3
General education courses 6
 Term Hours: 16
Sophomore year
Fall semester
CMSC 256 Introduction to Data Structures 4
CMSC 302 Introduction to Discrete Structures 3
UNIV 200 Advanced Focused Inquiry: Literacies, Research and Communication (satisfies general education UNIV foundations) 3
General education courses 6
 Term Hours: 16
Spring semester
CMSC 311 Computer Organization 3
STAT 212 Concepts of Statistics (satisfies general education quantitative foundations) 3
General education courses 6
Minor course 3
 Term Hours: 15
Junior year
Fall semester
CMSC 355 Fundamentals of Software Engineering 3
MATH 310 Linear Algebra 3
Minor course 3
Open elective 3
Restricted elective 3
 Term Hours: 15
Spring semester
CMSC 401 Algorithm Analysis with Advanced Data Structures 3
IDST 301 Interdisciplinary Theory and Practice 3
Minor course 3
Open elective 3
Restricted elective 3
 Term Hours: 15
Senior year
Fall semester
Minor courses 6
Open electives 6
Restricted elective 3
 Term Hours: 15
Spring semester
Minor course 3
Open electives 8
Restricted elective 3
 Term Hours: 14
 Total Hours: 120

The minimum number of credit hours required for this degree is 120.