The Bachelor of Science in Computer Science is built on a rigorous, highly concentrated, accredited curriculum of computer science courses, and includes concentrations in cybersecurity, data science and software engineering. The program provides a strong foundation in the discipline and includes advanced study in several important areas of computer science.

The degree requires a minimum of 120 credit hours and includes undergraduate requirements, general education requirements and computer science major requirements.

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. Communicate effectively in a variety of professional contexts
  4. Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles
  5. Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline
  6. Apply computer science theory and software development fundamentals to produce computing-based solutions

Special requirements

The B.S. 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.

Based on the results of the Computer Science Placement Test, students may be required to take CMSC 254, which then can count toward the degree requirements as an elective.  

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

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 257Computer Systems4
CMSC 302Introduction to Discrete Structures3
CMSC 303Introduction to the Theory of Computation3
CMSC 304Programming Languages3
CMSC 311Computer Organization3
CMSC 312Introduction to Operating Systems3
CMSC 355Fundamentals of Software Engineering3
CMSC 401Algorithm Analysis with Advanced Data Structures3
CMSC 408Databases3
CMSC 440Data Communication and Networking3
CMSC 441
CMSC 451
Senior Design Studio I (Laboratory/Project Time)
and Senior Project I
3
CMSC 442
CMSC 452
Senior Design Studio II (Laboratory/Project Time)
and Senior Project II
3
• Major electives
CMSC upper-level electives9
Ancillary requirements
ECON 205The Economics of Product Development and Markets (satisfies general education BOK for social/behavioral science and AOI for global perspectives)3
ENGR 395Professional Development1
MATH 200Calculus with Analytic Geometry I (satisfies general education quantitative foundations)4
MATH 201Calculus with Analytic Geometry II4
STAT 212Concepts of Statistics3
Humanities electives (from list below)6
MATH course (300 to 400 level) 3
Natural science option: Select from BIOL, CHEM or PHYS course with a lab (3-5 credits satisfy general education BOK for natural science and AOI for scientific and logical reasoning) 14-5
Open electives
Select any course.9-10
Total Hours120
1

Select one of the following options:

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

CMSC upper-level electives

Course Title Hours
CMSC 410Introduction to Quantum Computing3
CMSC 411Computer Graphics3
CMSC 412Social Network Analysis and Cybersecurity Risks3
CMSC 413Introduction to Cybersecurity3
CMSC 414Computer and Network Security3
CMSC 415Introduction to Cryptography3
CMSC 420Software Project Management3
CMSC 425Introduction to Software Analysis and Testing3
CMSC 426Software as a Service3
CMSC 427Design and Implementation of User Interfaces3
CMSC 428Mobile Programming: iOS3
CMSC 435Introduction to Data Science3
CMSC 436Artificial Intelligence3
CMSC 437Introduction to Natural Language Processing3
CMSC 438Machine Learning3
CMSC 491Topics in Computer Science1-3
CMSC 492Independent Study2-4
CMSC 506Computer Networks and Communications3

Approved humanities electives

Course Title Hours
Select six credits from the following programs or subject areas:6
African-American studies
American studies
Anthropology
School of the Arts
English
Foreign language
History
Philosophy
Psychology
Religious studies
Social work
Sociology
Urban studies

Some courses in other programs (including most honors modules and other courses that focus on human behavior, communication and/or social interaction) may be counted toward this requirement with departmental approval.

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
UNIV 111 Play VideoPlay course video for Focused Inquiry I Focused Inquiry I (satisfies general education UNIV foundations) 3
General education course 3
Humanities elective (from list) 3
 Term Hours: 16
Spring semester
CMSC 255 Introduction to Object-oriented Programming 4
ECON 205 The Economics of Product Development and Markets (satisfies general education BOK for social/behavioral science and AOI for global perspectives) 3
MATH 200 Calculus with Analytic Geometry I (satisfies general education quantitative foundations) 4
UNIV 112 Play VideoPlay course video for Focused Inquiry II Focused Inquiry II (satisfies general education UNIV foundations) 3
 
 Term Hours: 14
Sophomore year
Fall semester
CMSC 256 Introduction to Data Structures 4
CMSC 302 Introduction to Discrete Structures 3
MATH 201 Calculus with Analytic Geometry II 4
UNIV 200 Advanced Focused Inquiry: Literacies, Research and Communication (satisfies general education UNIV foundations) 3
 Term Hours: 14
Spring semester
CMSC 304 Programming Languages 3
CMSC 311 Computer Organization 3
ENGR 395 Professional Development 1
STAT 212 Concepts of Statistics 3
General education course 3
Humanities electives (from list) 3
 Term Hours: 16
Junior year
Fall semester
CMSC 257 Computer Systems 4
CMSC 303 Introduction to the Theory of Computation 3
CMSC 355 Fundamentals of Software Engineering 3
Natural science option (satisfies general education BOK for natural science and AOI for scientific and logical reasoning) (select one): 3-5
CHEM 101
CHEZ 101
General Chemistry I
and General Chemistry Laboratory I
4
PHYS 207 University Physics I 5
BIOL 151
BIOZ 151
Introduction to Biological Sciences I
and Introduction to Biological Science Laboratory I
4
General education course 3
 Term Hours: 17-18
Spring semester
CMSC 401 Algorithm Analysis with Advanced Data Structures 3
CMSC 408 Databases 3
CMSC 440 Data Communication and Networking 3
MATH course (300 to 400 level) 3
General education course (select BOK for humanities/fine arts) 3
 Term Hours: 15
Senior year
Fall semester
CMSC 441 Senior Design Studio I (Laboratory/Project Time) 2
CMSC 451 Senior Project I 1
CMSC upper-level electives 6
Open electives 6
 Term Hours: 15
Spring semester
CMSC 312 Introduction to Operating Systems 3
CMSC 442 Senior Design Studio II (Laboratory/Project Time) 2
CMSC 452 Senior Project II 1
CMSC upper-level elective 3
Open electives 3-4
 Term Hours: 13
 Total Hours: 120-121

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

Accelerated B.S. and M.S.

The accelerated B.S. and M.S. program allows qualified students to earn both the B.S. 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 six hours of graduate courses toward both the B.S. and M.S. degrees. Thus, the two degrees may be earned with a minimum of 144 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 (no later than two semesters prior to graduating with a baccalaureate degree, that is, before the end of the spring semester of their junior year) an Accelerated Program Declaration Form to be approved by the graduate program director. Limited spaces may be available in the accelerated program. Academically qualified students may not receive approval if capacity has been reached.

Minimum qualifications for entrance to this accelerated program include completion of 30 undergraduate credit hours including six computer science courses CMSC 255, CMSC 256, CMSC 257, CMSC 302, CMSC 303 and CMSC 311; an overall GPA of 3.0; and a GPA of 3.4 in the six courses identified above. Successful applicants would enter the program in the fall semester of their senior year.

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 no later than a semester prior to graduation with the baccalaureate degree, that is, before the end of the fall semester of the senior year. 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. Three reference letters (including one from the computer science undergraduate program director and at least one more from a computer science faculty member) must accompany the application. Students who do not meet the minimum GPA requirements may submit GRE scores to receive further consideration.

Degree requirements

The Bachelor of Science 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. At most, six of these graduate credits will substitute for open 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, are:

Course Title Hours
Maximum for shared credits is 12.
CMSC 501Advanced Algorithms3
CMSC 502Parallel Algorithms3
CMSC 510Regularization Methods for Machine Learning3
CMSC 516Advanced Natural Language Processing3
CMSC 525Introduction to Software Analysis, Testing and Verification3
CMSC 591Topics in Computer Science3

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 257Computer Systems4
CMSC 303Introduction to the Theory of Computation3
CMSC 355Fundamentals of Software Engineering3
Approved natural science course (BIOL, CHEM or PHYS course that counts toward the major in that science)4-5
Select one of the following:
Introduction to Biological Sciences I
and Introduction to Biological Science Laboratory I
General Chemistry I
and General Chemistry Laboratory I
University Physics I
General education course3
Contact undergraduate and graduate program directors
Term Hours:17-18
Spring semester
CMSC 401Algorithm Analysis with Advanced Data Structures3
CMSC 408Databases3
CMSC 440Data Communication and Networking3
MATH upper-level (300 to 400)3
General education course (select BOK for humanities/fine arts)3
Secure approval from undergraduate program director
Apply to the M.S. program
Term Hours:15
Senior year
Fall semester
CMSC 441Senior Design Studio I (Laboratory/Project Time)2
CMSC 451Senior Project I1
CMSC 501Advanced Algorithms3
CMSC 516Advanced Natural Language Processing3
Open electives6
Term Hours:15
Spring semester
CMSC 312Introduction to Operating Systems3
CMSC 442Senior Design Studio II (Laboratory/Project Time)2
CMSC 452Senior Project II1
CMSC 525Introduction to Software Analysis, Testing and Verification (counts toward B.S. and M.S.)3
CMSC 5XX (Select fourth shared graduate course from list above.)3
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 257Computer Systems4
CMSC 303Introduction to the Theory of Computation3
CMSC 355Fundamentals of Software Engineering3
Approved natural science course (BIOL, CHEM or PHYS course that counts toward the major in that science) 4-5
Select one of the following:
Introduction to Biological Sciences I
and Introduction to Biological Science Laboratory I
General Chemistry I
and General Chemistry Laboratory I
University Physics I
General education course3
Contact undergraduate and graduate program directors
Term Hours: 17-18
Spring semester
CMSC 401Algorithm Analysis with Advanced Data Structures3
CMSC 408Databases3
CMSC 440Data Communication and Networking3
MATH upper-level (300 to 400) 3
General education course (select BOK for humanities/fine arts)3
Term Hours:15
Secure approval from the undergraduate program director
Apply to the M.S. program
Senior year
Fall semester
CMSC 441Senior Design Studio I (Laboratory/Project Time)2
CMSC 451Senior Project I1
CMSC 501Advanced Algorithms3
CMSC 516Advanced Natural Language Processing3
Open electives6
Term Hours:15
Spring semester
CMSC 312Introduction to Operating Systems3
CMSC 442Senior Design Studio II (Laboratory/Project Time)2
CMSC 452Senior Project II1
CMSC 525Introduction to Software Analysis, Testing and Verification (counts toward B.S. and M.S.)3
CMSC 5XX (Select fourth shared graduate course from list above.)3
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.