This is the preliminary (or launch) version of the 2026-2027 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 255Object-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
Introduction to the Theory of Computation
Programming Languages
Computer Systems
Compiler Construction
Operating Systems
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
or STAT 210 Basic Practice of Statistics
UNIV 101Introduction to the University1
or UNIV 103 Education and Career Planning
or UNIV 191 Student Success Special Topics
Required minor
Select a minor.18
Open electives
Select any course.19-23
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.

Recommended course sequence/plan of study 

Freshman year
Fall semesterHours
CMSC 235 Computing and Data Ethics 3
CMSC 254 Introduction to Problem-solving 4
MATH 151 Precalculus Mathematics 4
UNIV 101
Introduction to the University
or Education and Career Planning
or Student Success Special Topics
1
UNIV 111 Play VideoPlay course video for Introduction to Focused Inquiry: Investigation and Communication Introduction to Focused Inquiry: Investigation and Communication (satisfies general education UNIV foundations) 3
 Term Hours: 15
Spring semester
CMSC 255 Object-oriented Programming 4
MATH 211 Mathematical Structures 3
General education courses 9
 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)
or Basic Practice of Statistics
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 7
Restricted elective 3
 Term Hours: 13
 Total Hours: 120

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

Accelerated B.A. and M.S.

The accelerated B.A. and M.S. program allows qualified students to earn both the B.A. and M.S. in Computer Science in a minimum of five years by completing approved graduate courses during the senior year of their undergraduate program. Students in the program may count up to 12 hours of graduate courses toward both the B.A. and M.S. degrees. Thus, the two degrees may be earned with a minimum of 138 credits rather than the 150 credits necessary if the two degrees are pursued separately.

The program is designed to develop skills and educate computer science students to be major contributors in the computing industry. The graduate program in computer science provides state-of-the-art education through the use of didactic courses to those students who wish to further their knowledge and careers within the computing industry. The program emphasizes continuing self-development and broadening of the knowledge of individuals currently engaged in science, technology and engineering-related fields. It also prepares persons who have completed undergraduate majors in these fields for entry into a career in the numerous areas that use computing technology. Both the theoretical and applied aspects of computer science are emphasized in this program.

Entrance to the accelerated program

Interested undergraduate students should consult with their adviser as early as possible to receive specific information about the accelerated program, determine academic eligibility and submit an Accelerated Program Declaration Form to be approved by the graduate program director. 

Minimum qualifications for entrance to this accelerated program include completion of 30 undergraduate credit hours including six computer science courses and an overall GPA of 3.0 or above. Students should apply before their junior year or when they meet these criteria and should discuss with their undergraduate advisor/undergraduate director how to navigate their junior and senior years.

Once enrolled in the accelerated program, students must meet the standards of performance applicable to graduate students as described in the “Satisfactory academic progress” section of the Graduate Bulletin, including maintaining a 3.0 GPA. Guidance to students admitted to the accelerated program is provided by both the undergraduate computer science adviser and the faculty adviser to the graduate program.

Admission to the graduate program

Entrance to the accelerated program enables the student to take the approved shared courses that will apply to the undergraduate and graduate degrees. However, entry into an accelerated program via an approved Accelerated Program Declaration Form does not constitute application or admission into the graduate program. Admission to the graduate program requires a separate step that occurs through a formal application to the master’s program, which is submitted through Graduate Admissions the semester in which you will graduate with the baccalaureate degree. In order to continue pursuing the master’s degree after the baccalaureate degree is conferred, accelerated students must follow the admission to graduate study requirements outlined in the VCU Bulletin. Letters of recommendation and GRE scores are not needed. Students who do not meet the minimum GPA requirements may submit GRE scores to receive further consideration.

Degree requirements

The Bachelor of Arts in Computer Science degree will be awarded upon completion of a minimum of 120 credits and the satisfactory completion of all undergraduate degree requirements as stated in the Undergraduate Bulletin.

A maximum of 12 graduate credits may be taken prior to completion of the baccalaureate degree. These graduate credits will substitute for the restrictive CMSC elective credits for the undergraduate degree. These courses are shared credits with the graduate program, meaning that they will be applied to both undergraduate and graduate degree requirements.

The graduate computer science courses that may be taken as an undergraduate, once a student is admitted to the program, must be approved by the advisor or graduate program director and include 500-level courses from the CMSC subject area.

Recommended course sequence/plan of study for students pursuing a thesis master’s

What follows is the recommended plan of study for students interested in the accelerated program beginning in the fall of the junior year prior to admission to the accelerated program in the senior year.

Course Title Hours
Junior year
Fall semester
CMSC 355Fundamentals of Software Engineering3
MATH 310Linear Algebra3
Minor courses6
Open elective3
Term Hours:15
Spring semester
CMSC 401Algorithm Analysis with Advanced Data Structures3
IDST 301Interdisciplinary Theory and Practice3
Minor courses6
Open elective3
Term Hours:15
Senior year
Fall semester
CMSC 5XX (Select courses from choices offered that semester)6
Minor courses6
Open electives3
Term Hours:15
Spring semester
CMSC 5XX (Select courses from choices offered that semester)6
Minor course3
Open electives3
Apply to the M.S. program
Choose the M.S. thesis adviser
Term Hours:12
Fifth year
Fall semester
CMSC 697Directed Research3
M.S. foundational area courses (theory and systems) 16
Term Hours:9
Spring semester
CMSC 697Directed Research6
M.S. foundational area course (applied) 13
Term Hours:9
1

See the Graduate Bulletin for the list of theory, systems and applied foundational area courses.

Recommended course sequence/plan of study for students pursuing a non-thesis master’s

What follows is the recommended plan of study for students interested in the accelerated program beginning in the fall of the junior year prior to admission to the accelerated program in the senior year.

Course Title Hours
Junior year
Fall semester
CMSC 355Fundamentals of Software Engineering3
MATH 310Linear Algebra3
Minor courses6
Open elective3
Term Hours: 15
Spring semester
CMSC 401Algorithm Analysis with Advanced Data Structures3
IDST 301Interdisciplinary Theory and Practice3
Minor courses6
Open elective3
Term Hours:15
Senior year
Fall semester
CMSC 5XX (Select courses from choices offered that semester)6
Minor courses6
Open electives3
Term Hours:15
Spring semester
CMSC 5XX (Select courses from choices offered that semester)6
Minor course3
Open electives3
Apply to the M.S. program
Term Hours:12
Fifth year
Fall semester
M.S. foundational area courses (theory, systems and applied) 19
Term Hours:9
Spring semester
Graduate didactic course work9
Term Hours:9
1

See the Graduate Bulletin for the list of theory, systems and applied foundational area courses.

 

Accelerated B.A. and M.S.

The accelerated B.A. and M.S. program allows qualified students to earn both the B.A. in Computer Science and M.S. in Data Science in a minimum of five years by completing approved graduate courses during the senior year of their undergraduate program. Students in the program may count up to 12 hours of graduate courses toward both the B.A. and M.S. degrees. Thus, the two degrees may be earned with a minimum of 138 credits rather than the 150 credits necessary if the two degrees are pursued separately.

The program is designed to develop skills and educate computer science students to be major contributors in the computing industry. The graduate program in data science educates students with the advanced knowledge, skills and tools necessary to analyze and interpret complex data and help solve real-world problems. Data science is an interdisciplinary field that combines expertise in statistics, computer science and domain-specific knowledge to extract valuable insights and knowledge from data. This degree program will prepare students to excel in using data to drive data-driven decision-making in various industries and domains. An M.S. in Data Science prepares students to work as data analysts, data scientists, machine learning engineers, data engineers, business analysts, research scientists, data consultants, etc. They may also specialize in specific domains like healthcare or biomedical data analysis and can find opportunities in government, startups, academia, and industry research.

Entrance to the accelerated program

Interested undergraduate students should consult with their adviser as early as possible to receive specific information about the accelerated program, determine academic eligibility and submit an Accelerated Program Declaration Form to be approved by the graduate program director. 

Minimum qualifications for entrance to this accelerated program include completion of 30 undergraduate credit hours including six computer science courses and an overall GPA of 3.0 or above. Students should apply before their junior year or when they meet these criteria and should discuss with their undergraduate advisor/undergraduate director how to navigate their junior and senior years.

Once enrolled in the accelerated program, students must meet the standards of performance applicable to graduate students as described in the “Satisfactory academic progress” section of the Graduate Bulletin, including maintaining a 3.0 GPA. Guidance to students admitted to the accelerated program is provided by both the undergraduate computer science adviser and the faculty adviser to the graduate program.

Admission to the graduate program

Entrance to the accelerated program enables the student to take the approved shared courses that will apply to the undergraduate and graduate degrees. However, entry into an accelerated program via an approved Accelerated Program Declaration Form does not constitute application or admission into the graduate program. Admission to the graduate program requires a separate step that occurs through a formal application to the master’s program, which is submitted through Graduate Admissions the semester in which you will graduate with the baccalaureate degree. In order to continue pursuing the master’s degree after the baccalaureate degree is conferred, accelerated students must follow the admission to graduate study requirements outlined in the VCU Bulletin. Letters of recommendation and GRE scores are not needed. Students who do not meet the minimum GPA requirements may submit GRE scores to receive further consideration.

Degree requirements

The Bachelor of Arts in Computer Science degree will be awarded upon completion of a minimum of 120 credits and the satisfactory completion of all undergraduate degree requirements as stated in the Undergraduate Bulletin.

A maximum of 12 graduate credits may be taken prior to completion of the baccalaureate degree. These graduate credits will substitute for the restrictive CMSC elective credits for the undergraduate degree. These courses are shared credits with the graduate program, meaning that they will be applied to both undergraduate and graduate degree requirements.

The graduate computer science courses that may be taken as an undergraduate, once a student is admitted to the program, must be approved by the advisor or graduate program director and include 500-level courses from the CMSC and STAT subject area.

Recommended course sequence/plan of study for students

What follows is the recommended plan of study for students interested in the accelerated program beginning in the fall of the junior year prior to admission to the accelerated program in the senior year.

Course Title Hours
Junior year
Fall semester
CMSC 355Fundamentals of Software Engineering3
MATH 310Linear Algebra3
Minor courses6
Open electives3
Term Hours: 15
Spring semester
CMSC 401Algorithm Analysis with Advanced Data Structures3
IDST 301Interdisciplinary Theory and Practice3
MInor courses6
Open electives3
Term Hours:15
Senior year
Fall semester
CMSC 510Regularization Methods for Machine Learning3
CMSC 535Introduction to Data Science3
Minor courses6
Open electives3
Term Hours:15
Spring semester
CMSC 516Advanced Natural Language Processing3
STAT 534Statistical Data Science I3
Minor course3
Open electives3
Apply to the M.S. program
Term Hours:12
Fifth year
Fall semester
CMSC 681Data Science Capstone Project I3
M.S. Computer Science and Statistics and Operations Research electives 16
Term Hours:9
Spring semester
CMSC 682Data Science Capstone Project II3
M.S. Computer Science and Statistics and Operations Research electives6
Term Hours:9
1

See the Graduate Bulletin for the list of computer science and statistics and operations research electives.