General Track Degree Requirements

At the upper level, students take five (5) CMSC 400 level courses from at least three different areas (see below) with no more than three courses in a given area. An additional two (2) CMSC electives, totaling 6 credits, are also required. If students take more than three courses from an area, the additional course(s) will be counted as upper level computer science electives.

Area 1: Systems

  • CMSC 411 (3) Computer Systems Architecture
  • CMSC 412 (4) Operating Systems *
  • CMSC 414 (3) Computer and Network Security
  • CMSC 416 (3) Introduction to Parallel Computing
  • CMSC 417 (3) Computer Networks
  • CMSC 498B (3) Selected Topics in Computer Science; Cloud Computing (course will fulfill requirement for students who are enrolled the course in Fall 2024 semester *only*)
  • CMSC 498C (3) Selected Topics in Computer Science; Blockchains, Applied Cryptography, and Cryptocurrency * (course will fulfill requirement for students who are enrolled in the course in Spring 2024 *only*)
  • CMSC 498I (3) Selected Topics in Computer Science; Real World Computer Security (course will fulfill requirement for students who are enrolled the course in Fall 2022 semester *only*) Students may not receive credit for both iterations of CMSC 498X at this time.
  • CMSC 498K (3) Selected Topics in Computer Science; Big Data Systems * (course will fulfill requirement for students who are enrolled in the course in Spring 2018 or Spring 2019 *only*)
  • CMSC 498X (3) Selected Topics in Computer Science; Introduction to Software-defined Radio and Wireless Communications (course will fulfill requirement for students who are enrolled the course in Fall 2018 or Fall 2019 semester *only*) or
  • CMSC 498X (3) Selected Topics in Computer Science; Introduction to Parallel Computing * (course will fulfill requirement for students who are enrolled the course in Fall 2020 semester *only*)

Area 2: Information Processing

  • CMSC 420 (3) Data Structures
  • CMSC 421 (3) Introduction to Artificial Intelligence
  • CMSC 422 (3) Machine Learning *
  • CMSC 423 (3) Bioinformatic Algorithms, Databases, and Tools
  • CMSC 424 (3) Database Design
  • CMSC 426 (3) Computer Vision *
  • CMSC 427 (3) Computer Graphics *
  • CMSC 470 (3) Introduction to Natural Language Processing *
  • CMSC 471 (3) Introduction to Data Visualization (Area 2 OR Area 3)
  • CMSC 472 (3) Introduction to Deep Learning *
  • CMSC 498E (3) Selected Topics in Computer Science; Robotics * (course will fulfill requirement for students who are enrolled in the course in Fall 2023*only*)
  • CMSC 498F (3) Selected Topics in Computer Science; Advances in XR (course will fulfill requirement for students who are enrolled the course in Spring 2022, Spring 2023, and Spring 2024 semesters *only*)
  • CMSC 498V (3) Selected Topics in Computer Science; Advanced Topics in Machine Learning (course will fulfill requirement students who are enrolled in the course in Fall 2018 *only*)
  • CMSC 498Y (3) Selected Topics in Computer Science; Statistical Inference and Machine Learning Methods for Genomics Data * (course will fulfill requirement for students who are enrolled in the course in Spring 2024 *only*)
  • CMSC 498Z (3) Selected Topics in Computer Science; Differentiable Programming * (course will fulfill requirement for students who are enrolled in the course in Fall 2023 *only*)

Area 3: Software Engineering and Programming Languages

  • CMSC 430 (3) Introduction to Compilers
  • CMSC 433 (3) Programming Language Technologies and Paradigms
  • CMSC 434 (3) Introduction to Human-Computer Interaction
  • CMSC 435 (3) Software Engineering *
  • CMSC 436 (3) Hand Held Programming Devices
  • CMSC 471 (3) Introduction to Data Visualization (Area 2 OR Area 3)

Area 4: Theory

  • CMSC 451 (3) Design and Analysis of Computer Algorithms
  • CMSC 452 (3) Elementary Theory of Computation
  • CMSC 454 (3) Algorithms for Data Science
  • CMSC 456 (3) Cryptology *
  • CMSC 457 (3) Introduction to Quantum Computing
  • CMSC 474 (3) Introduction to Computational Game Theory

Area 5: Numerical Analysis (choose one)

  • CMSC 460 (3) Computational Methods (credit will only be given for CMSC 460 or CMSC 466) *
  • CMSC 466 (3) Introduction to Numerical Analysis (credit will only be given for CMSC 466 or CMSC 460) *

CMSC Upper Level Electives

These courses do not count toward a distributive area for the General Track. If you have any questions about what courses will satisfy distributive area requirements, consult with your assigned academic advisor.

  • CMSC 320 (3) Introduction to Data Science
  • CMSC 335 (3) Web Application Development with JavaScript (formerly CMSC398N)
  • CMSC 388 or 389 (1) Student Initiated Courses (STICs)
  • CMSC 395 (1) Teaching Techniques for Computer Science (TAs Only)
  • CMSC 396 (1) Computer Science Honors Seminar (Dept Honors Only)
  • CMSC 401 (3) Algorithms for Geospatial Computing
  • CMSC 425 (3) Game Programming *
  • CMSC 473 (3) Capstone in Machine Learning *
  • CMSC 475 (3) Combinatorics and Game Theory *
  • CMSC 476 (3) Robotics and Perception *
  • CMSC 488A (1) Quantum Boot Camp
  • CMSC 498 (1 - 3) Special Topics in Computer Science (courses not otherwise listed in a distributive area)
  • CMSC 498A (1 - 3) Selected Topics in Computer Science; Independent Study
  • CMSC 499A (1 - 3) Selected Topics in Computer Science; Independent Undergraduate Research

* Indicates this course has unique prerequisites.