Computer Science Major

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.

Admission to the Major

The Computer Science major is a Limited Enrollment Program. Please see the admission requirements and procedures at http://lep.umd.edu.

Placement in Courses

Much of the knowledge at the early stage of the degree program is cumulative. To ensure that transfer and new students start with the appropriate courses, the department offers exemption exams for CMSC131 , CMSC132 , CMSC216 , and CMSC250 . Students who have taken CS courses prior to starting at Maryland can visit http://undergrad.cs.umd.edu/exemption-exams/ for more information.

Program Learning Outcomes

Much of the knowledge at the early stage of the degree program is cumulative. To ensure that 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 schedule and take exemption exams.

A "C-" or better must be earned in all major requirements.

Students may fulfill CMSC131 , CMSC132 , CMSC216 or CMSC250 course requirements by passing proficiency exams before they start the sequence of classes.

This course must have prerequisite of MATH141 or higher; cannot be cross-listed with CMSC.

At the upper level, students take five (5) 400 level courses from at least three different areas with no more than three courses in a given area. An additional two (2) electives, totaling 6 credits, for the general computer science degree are also required. If students take more than three courses from an area, they will be counted as electives. Students can count one credit winter courses towards the elective requirement, as well as independent research or study with a faculty member, and other courses at the 300 or 400 level.

Credit will only be given for CMSC460 or CMSC466.

Students must also take at least 12 credits of 300-400 level courses from one discipline outside of CMSC. No course in or cross-listed with CMSC can be counted. An overall 2.0 average must be earned in these courses. Each course must be a minimum of 3 credits. Only 1 special topics or independent study course may be used.

Cybersecurity Specialization

Students looking to pursue the cybersecurity specialization are required to complete the lower level courses ( MATH140 , MATH141 , CMSC131 , CMSC132 , CMSC216 , CMSC250 ), the additional required courses ( CMSC330 , CMSC351 , MATH/STATXXX and STAT4xx beyond MATH141 ), 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. 1

Students are required to take:

Students may fulfill an area requirement under the Upper Level Elective Courses requirement. 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, and Area 5: Numerical Analysis.

Data Science Specialization

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 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. 1

Students are required to take: