Computer science is the study of computers and computational systems: their application, design, development and theory. Principal areas within computer science include machine learning and data science, cybersecurity and privacy, human-computer interaction, artificial intelligence, programming languages, software engineering, computer systems and networking, algorithms and theory of computing, natural language processing, high-performance and quantum computing, databases systems, bioinformatics, robotics, computer vision, information visualization, and virtual- and augmented-reality systems. A computer scientist is concerned with problem solving. Problems range from abstract questions of what problems can be solved with computers to practical matters such as the design of computer systems that are efficient, secure, and easy for people to use. Students looking to pursue the machine learning specialization are required to complete the lower level courses (MATH140, MATH141, CMSC131, CMSC132, CMSC216, CMSC250), the additional required courses (CMSC330, CMSC351, STAT4xx beyond MATH141, and MATH240), and the upper level concentration requirements as detailed above. 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.