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. It is making deep inroads in industry, government, health, and journalism. Due to the growing need for applying data science techniques in these and other domains, there is a significant shortage of trained data scientists. Data Science incorporates practices from a variety of fields in computer science, chiefly machine learning, statistics, databases, systems, algorithms, and visualization. The undergraduate data science specialization enables students to get the broad variety of skills needed to be successful data scientists.
Students looking to pursue the data science specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT400 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 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.
MATH 240 (4) Linear Algebra
STAT 400 (3) Applied Probability and Statistics I
CMSC 320 (3) Introduction to Data Science
CMSC 422 (3) Introduction to Machine Learning *
CMSC 424 (3) Database Design
Choose one course from:
CMSC 402 (3) Bioinformatic Algorithms & Methods for Functional Genomics and Proteomics
CMSC 420 (3) Data Structures
CMSC 421 (3) Introduction to Artificial Intelligence
CMSC 423 (3) Bioinformatic Algorithms, Databases, and Tools
CMSC 425 (3) Game Programming *
CMSC 426 (3) Computer Vision
CMSC 427 (3) Computer Graphics *
CMSC 470 (4) Natural Language Processing *
Choose one course from:
CMSC 451 (3) Design and Analysis of Computer Algorithms
CMSC 454 (3) Algorithms for Data Science
CMSC 460 (3) Computational Methods
Choose two courses from:
CMSC 411 (3) Computer Systems Architecture
CMSC 412 (4) Operating Systems *
CMSC 414 (3) Computer and Network Security
CMSC 417 (3) Computer Networks
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 *
*Indicates this course has unique prerequisites.