Degree Requirements for CS Major

Much of the knowledge at the early stage of the degree program is cumulative. To ensure incoming first-year and transfer students start with the appropriate courses, the department offers exemption exams for CMSC131, CMSC132, CMSC216, and CMSC250. Students who have had CS courses prior to starting at Maryland are encouraged to take our exemption exams.

Required Lower Level Coursework

All students, regardless of specialization, are required to take the following lower level coursework:

Math Requirements Computer Science Requirements
  • MATH140 (4) Calculus I
  • MATH141 (4) Calculus II
  • STAT4XX (3) This course must have a prerequisite of MATH141; Cannot be crosslisted with CMSC
  • MATH/STATXXX (3/4) This course must have a prerequisite of MATH141; Cannot be cross-listed with CMSC

* Data Science, Machine Learning, and Quantum Information students must take a MATH Linear Algebra course (e.g. MATH240, MATH341 [must complete MATH340 first], or MATH461)

  • CMSC131 (4) Object-Oriented Programming I* or CMSC133 (2) Object-Oriented Programming I Beyond Fundamentals
  • CMSC132 (4) Object-Oriented Programming II*
  • CMSC216 (4) Introduction to Computer Systems*
  • CMSC250 (4) Discrete Structures*
  • CMSC330 (3) Organization of Programming Languages
  • CMSC351 (3) Algorithms

* An exemption exam is available for this course.


Upper Level Concentration

All students, regardless of specialization, must complete 12 credit hours of 300 - 400 level courses in one discipline outside of Computer Science with a cumulative GPA of 1.7 or higher in this coursework. No course that is in, or crosslisted as, CMSC may be counted in this requirement (e.g., AMSC460). Only 1 independent study or experiential learning course may be used. Students who are pursuing a minor or a double major/dual degree may use those credits in this area with the exception of a few majors/disciplines (e.g., Information Science). Please consult with your advisor to ensure the courses you plan to take to ensure they will satisfy this requirement. For a detailed breakdown of accepted Upper-Level Concentration courses please click here.


Limited Enrollment Program (LEP) Benchmarks*

* These benchmarks apply to new freshman (matriculated Fall 2019 and later), new transfer students, and internal transfers changing majors within the University *

All students will undergo a benchmark review at 45 and 75 credits. Students in the major are required to complete the following courses:

45-Credit Benchmark Requirements

  • Completion of CMSC 131 with a minimum grade of C-
  • Completion of CMSC 132 with a minimum grade of C-
  • Completion of MATH 140 with a minimum grade of C-
  • A minimum grade point average of 2.0 in all courses taken at the University of Maryland and all other institutions

75-Credit Benchmark Requirements

  • Completion of CMSC 330 with a minimum grade of C-
  • Completion of CMSC 351 with a minimum grade of C-
  • Completion of a STAT4XX course (prerequisite: MATH141) with a minimum grade of C- or MATH/AMSC/STAT course (prerequisite: MATH141) with a minimum grade of C-
  • A minimum grade point average of 2.0 in all courses taken at the University of Maryland and all other institutions

Degree Requirements

Students within the Computer Science major may choose to pursue our General Track or one of four specializations offered. Students are not required to pursue a specialization but may find one best fits their interests. Students interested in declaring a specialization should speak with their assigned academic advisor.

Students, regardless of specialization, are required to fulfill their computer science upper level course requirements from at least 3 areas. Courses that fall within each area are listed in the General Track degree requirements. The five areas are: Area 1: Systems, Area 2: Information Processing, Area 3: Software Engineering and Programming Languages, Area 4: Theory, Area 5: Numerical Analysis.

For tracks allowing CMSC electives, three 1-credit CMSC STIC courses are equivalent to one 3-credit 300-400 level elective course. Visit UMD's official STICs website and our FAQ page for more information on STICs and see your assigned advisor for information on how STICs can fit into your specialization.

General Track

Students pursuing the general track are able to take courses building upon their broad interests in computer science from Systems to Numerical Analysis.

Learn More

Cybersecurity

The Cybersecurity Specialization allows students to have the necessary background to address myriad cybersecurity issues relevant to government, industry, and academic careers.

Learn More

Data Science

Data Science is an emerging field encapsulating interdisciplinary activities, used to create data-centric products, applications or programs that address specific scientific, socio-political, or business questions.

Learn More

Quantum Information

The Quantum Information specialization allows students to capitalize on the recent advances toward the experimental realization of quantum computers together with significant ongoing work on the theory of quantum computing.

Learn More

Machine Learning

Machine learning is a rapidly developing field within computer science. It is the study of algorithms that learn from data and experience.

Learn More


Academic Planning Forms

Below is a list of degree planning documents that are commonly used by students in the Computer Science department. If you have any questions, please do not hesitate to e-mail ugrad [at] cs [dot] umd [dot] edu.

  • CMSC General Track Academic Planning Form [PDF | Excel]
  • CMSC Cybersecurity Track Academic Planning Form [PDF | Excel]
  • CMSC Data Science Academic Planning Form [PDF | Excel]
  • CMSC Machine Learning Academic Planning Form [PDF | Excel]
  • CMSC Quantum Information Planning Form [PDF | Excel]
  • CMSC Distributive Areas and Electives [PDF Portrait | [PDF Landscape | Excel]
  • CMSC Blank 4-Year Plan [PDF]
  • CMSC BS/MS academic plan [PDF]