Go to content

Undergraduate Catalog 2015-2016

Computer Science (CMSC)

College of Computer, Mathematical and Physical Sciences
1119 A.V. Williams Building, 301-405-2672
Chair: S. Khuller
Professors: A. Agrawala, J. Aloimonos, B. Bederson, S. Bhattacharjee, W. Cleaveland, L. Davis, R. Duraiswami, H. Elman, J. Foster (Assoc Chair), W. Gasarch, M. Hicks, J. Hollingsworth, D. Jacobs, J. Katz, D. Mount, D. Nau, D. Perlis, A. Porter, J. Reggia, N. Roussopoulos, E. Ruppin, H. Samet (Distinguished University Professor), A. Shankar, B. Shneiderman (Distinguished University Professor), A. Srinivasan, V. Subrahmanian, A. Sussman (Assoc Chair), A. Varshney
Associate Professors: A. Childs, H. Daume, A. Deshpande, M. Hajiaghayi, P. Keleher, C. Kruskal, A. Memon, M. Pop, J. Purtilo, N. Spring
Assistant Professors: M. Carpuat, H. Corrada Bravo, J. Froehlich, T. Goldstein, Z. Khan, M. Mazurek, E. Shi, D. Van Horn
Lecturers: F. Emad, E. Golub (Senior Lecturer), L. Herman, M. Hugue, A. Mamet, N. Padua-Perez, J. Plane (Senior Lecturer), T. Reinhardt, P. Sadeghian
Professors Emeriti: W. Arbaugh, V. Basili, B. Dorr, L. Kanal, R. Miller, J. Minker, D. O'Leary (Distinguished University Professor Emerita), W. Pugh, G. Stewart (Distinguished University Professor Emeritus), M. Zelkowitz

The Major

Computer science is the study of computers and computational systems:  their application, design, development and theory.  Principal areas within computer science include artificial intelligence, computer systems, database systems, human factors, numerical analysis, programming languages, software engineering, and theories of computing.  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 design of computer systems which are easy for people to use.  Computer scientists build computational models of systems including physical phenomena (weather forecasting), human behavior (expert systems, robotics), and computer systems themselves (performance evaluation).  Such models often require extensive numeric or symbolic computation.


Admission to the Major

Students who are accepted to the university and list Computer Science as the preferred major will start directly in our program. Students who wish to add Computer Science as a major must attend a workshop. More details can be found at http://undergrad.cs.umd.edu/prospective-cs-students .

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, 132, 216, and 250.  Students who have had CS courses prior to starting at Maryland should refer to the undergraduate website for exam dates and to sign up for the exam.

Requirements for the Major

The course of study for a Computer Science major must include all of the following requirements:

1.   A grade of "C-" or better in each of the following courses:

a. CMSC131 or a score of 5 on the A version of the JAVA Advanced Placement exam, or a score of 4 or 5 on the AB version of the JAVA Advanced Placement exam, or an acceptable score on the appropriate department exemption examination taken at the time of entry into the program.

b. CMSC132 or acceptable score on the appropriate department exemption examination taken at the time of entry into the program.

c. CMSC216 or acceptable score on the appropriate department exemption examination taken at the time of entry into the program.

d. CMSC250 or acceptable score on the appropriate department exemption examination taken at the time of entry into the program.

e. At least 27 credit hours at the 300-400 levels. These must include CMSC330, CMSC351, and at least 15 credit hours from the following CMSC courses with no more than two courses from a single category:

Computer Systems:  Up to two of 411, 412, 414, 417
Information Processing:  420, one of 421 or 422 or 423 or 424 or 426 or 427
Software Engineering/Programming Languages:  Up to two of 430,  433, 434, 435, 436
Algorithms and Computation Theory:  451, one of 452 or 456
Numerical Analysis*:  One of 460 or 466.

*Note: Courses in Numerical Analysis require MATH240 and 241 as additional prerequisites. Students without either of these prerequisites must choose their 15 credit hours from the remaining courses in the other four areas.
2.  MATH140 and 141. A STAT course which has MATH 141 (or a more advanced mathematics course) as a prerequisite, and one other MATH, STAT, or AMSC course which has MATH141 (or a more advanced mathematics course) as a prerequisite.  A grade of "C-" or better must be earned in each of the courses.  No course that is cross-listed as CMSC may be counted in this requirement.      

3.   A minimum of 12 additional credit hours of 300-400 level courses in one discipline outside of computer science with an average grade of "C" or better.  No course that is cross-listed as CMSC may be counted in this requirement.  Note:  The following general guidelines should be observed when selecting courses for this upper level supporting sequence:
a. Courses must have all the same four-letter acronym.
b. Each course should be a minimum of 3 credits.
c. Only 1 special topics or independent study course (such as courses numbered 498 or 499) may be used.

Any variations must be approved by the Undergraduate Program Director.  No course used to fulfill another requirement can be counted in this requirement.

Requirements for the Minor

The purpose of the minor in Computer Science is not only to give students a strong foundation in, and understanding of, algorithmic reasoning, problem solving methods involving computers and computation, and a solid base to help students adapt to future changes in technology, but to complement and enhance any student's major program of study.  The computer science minor may be earned by students not majoring in computer science and computer engineering.  A grade of "C-" or better must be earned in all courses required for the minor.  See  http://undergrad.cs.umd.edu/cs-minor  for detailed information.  The award of a minor will be noted on the student's transcript at the time of graduation.

Requirements for the Cybersecurity Specialization

The Department offers a specialization in Cybersecurity that has the same graduation requirements as listed for the major, but specifies a set of 400-level course requirements in cybersecurity related topics.

Students must take seven courses from the following four areas:

  • Systems - 411, 412, 414, 417
  • Information Processing - 420
  • Software Engineering/Programming Languages - 430, 433
  • Theory - 451, 456

Students may not count both 411 and 430 toward the seven course total.  Students also may not count both 420 and 451 toward the seven course total.


All advising for CS students is done in the Computer Science Department.  All CS majors must attend an advising session each semester prior to registering for classes.  Advising appointments may be scheduled at https://webapps.cs.umd.edu/ugrad/advising/login.php

Honors Program

Students looking for opportunities to enhance their computer science education are encouraged to participate in the Computer Science Undergraduate Honors Program.  The program is open to students in the CS major who have earned a GPA of 3.5 in computer science courses and a GPA of 3.0 overall.  Some of the benefits of the program include the following: (1) learning how to conduct research properly, (2) working closely with faculty members, and (3) increasing preparedness for graduate school.

For more information about the honors program, please visit the CS Honors website: http://undergrad.cs.umd.edu/departmental-honors

Scholarships and Financial Assistance

There are multiple endowed scholarships available to students majoring in computer science.  Additional details can be found at http://undergrad.cs.umd.edu/scholarships .

Students may find employment as tutors, as undergraduate teaching assistants, or as members of the department's laboratory staff. Professors may also have funds to hire undergraduates to assist in research.  Many students also participate in internship experiences, working in the computer industry during the summer after their sophomore and/or junior years.

The Office of Student Financial Aid (OSFA) administers all types of federal, state and institutional financial assistance programs and, in cooperation with other university offices, participates in the awarding of scholarships to deserving students. For information, visit: www.financialaid.umd.edu .

Return to top