Computer Science Major & Minor

The effects of computer science on the world are hardly hidden. The advent of the computer has brought sweeping changes to business, economics, science and technology. It has also revolutionized daily life—from how we bank, cook and shop to how we work and interact with family and friends. Computer science students aren’t just learning about the computer systems that will allow us to maintain our current lifestyle; they are learning the fundamentals of the field so they can push boundaries and develop the breaking technologies that will continue to improve how we live.

The computer science program prepare students exceptionally well for careers or graduate study. Students who have interests in other science programs find that both the mathematics and computer science degrees dovetail nicely to other scientific disciplines. The department offers academic contests, a colloquium series, summer research, independent study projects and study abroad opportunities that round out the degrees, preparing students for some of the fastest growing and highest paying occupations in the United States.

  • 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 and DSST330 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.