Students looking to pursue the quantum information specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT4xx with a MATH141 prerequisite, and MATH240), and the upper level concentration requirements. The difference in the specialization is the upper level computer science courses. Students must fulfill their computer science upper level course requirements from at least 3 areas.
Students must fulfill their computer science upper level course requirements from at least 3 areas. Students may fulfill an area requirement under the Upper Level Elective Courses requirement. Courses that fall within each area are listed in the CS Distributive Areas and Electives document.
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.
Required
MATH 240 (4) Linear Algebra or
MATH 461 (3) Linear Algebra for Scientists and Engineers or
MATH 341 (4) Multivariable Calculus, Linear Algebra, Differential Equations II*
CMSC 457 (3) Introduction to Quantum Computing *
PHYS 467 (3) Introduction to Quantum Technology *
Choose four courses from:
(Note: two of those four courses must fall in two separate areas outside of Area 4)
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
Area 2: Information Processing
CMSC 402 (3) Bioinformatic Algorithms and Methods
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 *
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 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) *
Upper Level Elective Course(s)
Three credits from CMSC3XX or CMSC4XX excluding CMSC330 and CMSC351
*Indicates this course has unique prerequisites.