Computer Science Major & Minor
From communications devices to the latest medical technology, Computer Science touches every aspect of our lives. The University of Richmond Computer Science major prepares students exceptionally well for careers or graduate study. The department offers summer research, independent study projects, and a robust student community. The University of Richmond Study Abroad program is very popular with our Computer Science majors.
Graduates of the University of Richmond Computer Science program will be able to:
• Articulate and apply the fundamentals of the core areas of computer science, such as algorithms, programming languages, systems, and software development.
• Analyze complex problems and devise computational solutions that adopt appropriate data structures and algorithms through rigorous algorithmic analysis.
• Design, develop, and assess software systems for solving problems in multiple domains.
• Effectively collaborate with others through clear oral and written communication.
• Make ethically aware decisions by identifying and analyzing the ethical issues and societal impacts that arise from the development and use of computing technologies.
-
Bachelor of Science
The Bachelor of Science Degree
Note: The grade point average of the coursework comprising the major must be no less than 2.00 with no computer science course grade below C- (1.70). Students are strongly advised to consult with faculty in planning their major curriculum.
15 units, including:
CMSC150 Introduction to Computing
CMSC221 Data Structures with Lab
CMSC222 Discrete Structures for Computing
CMSC240 Software Systems Development
CMSC301 Computer Organization
CMSC315 Algorithms
CMSC323 Design and Implementation of Programming Languages
Three additional 1-unit CMSC electives at the 300 level. Without departmental approval, no more than one of these courses can be an Independent Study course.
MATH211 Calculus I
MATH212 Calculus II
MATH245 Linear Algebra
Two units at the 301 level or above in mathematics, including DSST329, DSST330, and DSST389 or two units (or more) beyond the introductory level in one of the following fields: physics (200 level or above), chemistry (200 level or above), or biology (beyond 205).
Note: Any CMSC major or minor, regardless of whether they are also a math major, may use MATH300 as a substitute for CMSC222, provided they receive a grade of A- or better in the course. Students who choose to exercise this option must take an additional CMSC course as a replacement.
-
Bachelor of Arts
The Bachelor of Arts Degree
Note: The grade point average of the coursework comprising the major must be no less than 2.00 with no computer science course grade below C- (1.70). Students are strongly advised to consult with faculty in planning their major curriculum.
12 units, including:
CMSC150 Introduction to Computing
CMSC221 Data Structures with Lab
CMSC222 Discrete Structures for Computing
CMSC240 Software Systems Development
CMSC301 Computer Organization
CMSC315 Algorithm
CMSC323 Design and Implementation of Programming Languages Design and Implementation of Programming Languages
Three additional 1-unit CMSC electives at the 300 level. Without departmental approval, no more than one of these courses can be an Independent Study course.
MATH211 Calculus I
MATH245 Linear Algebra
Note: Any CMSC major or minor, regardless of whether they are also a math major, may use MATH300 as a substitute for CMSC222, provided they receive a grade of A- or better in the course. Students who choose to exercise this option must take an additional CMSC course as a replacement.
-
Minor
The Computer Science Minor
Note: The grade point average of the coursework comprising the minor must be no less than 2.00 with no computer science course grade below C- (1.70). Students are strongly advised to consult with faculty in planning their minor curriculum.
Six units, including:
CMSC150 Introduction to Computing
CMSC221 Data Structures with Lab
CMSC222 Discrete Structures for Computing
CMSC240 Software Systems Development
CMSC301 Computer Organization or CMSC315 Algorithms with Lab
One elective unit chosen from:
A 1-unit 300-level Computer Science elective or
A 1-unit computationally intensive upper level course from another department approved by the computer science faculty.
Note: Any CMSC major or minor, regardless of whether they are also a math major, may use MATH300 as a substitute for CMSC222, provided they receive a grade of A- or better in the course. Students who choose to exercise this option must take an additional CMSC course as a replacement.