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.