The Master of Computer Science (M.C.S.) is a course-based, nonresearch program for students who wish to enhance their careers with advanced knowledge of computer science.

Current and prospective graduate students should consult the Computer Science Graduate Handbook, available from the department's office and its website. The handbook provides detailed information about specific degree requirements, such as required courses, examinations, and dissertation requirements.

Learning Outcomes

Students gain:

  • in-depth and up-to-date knowledge of concepts and/or technologies covering a breadth of computer science,
  • problem solving in the context of the areas covered,
  • a grounding in theoretical aspects of computer science, and
  • exposure to cutting-edge research.

The Master of Computer Science (M.C.S.) requires a minimum of 32 s.h. of graduate credit, including at least 24 s.h. earned at the University of Iowa. Students must maintain a cumulative g.p.a. of at least 2.75. Consult the Computer Science Graduate Handbook for detailed information about M.C.S. requirements and graduate study policies.

The Master of Computer Science requires the following coursework.


One of these:
CS:4330Theory of Computation3
CS:4350Logic in Computer Science3
CS:4980Topics in Computer Science II (consult advisor for approved section topic)3
CS:5340Limits of Computation3
CS:5350Design and Analysis of Algorithms3
CS:5360Randomized Algorithms3
CS:5370Computational Geometry3
CS:5850Programming Language Foundations3
CS:5860Lambda Calculus and Applications3


This course:
CS:4310Design and Implementation of Algorithms3


Students are graded on a satisfactory/unsatisfactory (S/U) basis. They must attend at least 80 percent of scheduled talks to earn a satisfactory grade in the course.

This course:
CS:6000Research Seminar: Colloquium Series (must enroll twice for 1 s.h. each)2


Students complete their remaining 24 s.h. (eight additional courses) with a combination of computer science graduate courses, research and project courses, and non-computer science graduate courses approved by their advisor. The choice of electives must satisfy the following constraints.

  • At least six courses (18 s.h.) must be classroom-based computer science graduate courses numbered 4300 or above, excluding CS:5110 Introduction to Informatics, CS:5990 Individualized Research or Programming Project, CS:6000 Research Seminar: Colloquium Series, CS:6990 Readings for Research, and CS:7990 Research for Dissertation.
  • At most, one offering of CS:5990 Individualized Research or Programming Project. This course is an excellent option for students interested in exploring an area in computer science beyond that provided by computer science classroom-based courses. Students interested in pursuing a Ph.D. usually benefit from taking CS:5990.
  • At most, two technical courses (approved by the advisor) that are not computer science graduate courses. For students who want to take courses outside the department, those in mathematics, statistics, electrical engineering, industrial engineering, and management sciences are some popular options. Students also may include one computer science course taken during their first year in the M.C.S. program from these: CS:3620 Operating Systems, CS:3640 Introduction to Networks and Their Applications, or CS:3820 Programming Language Concepts.

Software Engineering Subprogram

The Department of Computer Science, with the Department of Electrical and Computer Engineering, offers a M.C.S. subprogram in software engineering. Students receive a software engineering subprogram designation on their transcript after they complete CS:5800 Fundamentals of Software Engineering, CS:5810 Formal Methods in Software Engineering, CS:5820 Software Engineering Languages and Tools, and CS:5830 Software Engineering Project, and earn their M.C.S. degree. Students should meet with the academic services coordinator to file the appropriate paperwork when they apply for degree, if they did not originally declare their intent to complete the software engineering subprogram.

Admission decisions are based on prior academic performance, letters of reference, and the applicant's statement about background and purpose. Applicants must meet the admission requirements of the Graduate College; see the Manual of Rules and Regulations on the Graduate College website.

Students pursue software design and development careers in the technology sector, including UIX, mobile, and web development. Recent graduates hold positions at technology giants such as Microsoft, Google, Yahoo, or Intel, while others have taken positions in internationally established organizations whose primary business lies in the consulting, financial, health care, insurance, or media/entertainment sectors. A few M.C.S. students enter the start-up market or pursue additional graduate education leading to the Ph.D. at the University of Iowa or elsewhere.

Sample Plan of Study

Sample plans represent one way to complete a program of study. Actual course selection and sequence will vary and should be discussed with an academic advisor. For additional sample plans, see MyUI.

Master of Computer Science, M.C.S.

Plan of Study Grid (Manual)
Academic Career
Any SemesterHours
32 s.h. must be graduate level coursework; up to 8 s.h. of graduate transfer credits allowed upon approval. Students choose graduate level coursework from an approved list of courses; more information is included in the General Catalog and on department website. a
First Year
CS:4310 Design and Implementation of Algorithms 3
CS:6000 Research Seminar: Colloquium Series b 1
Elective course c 3
Elective course c 3
Theory course d 3
Elective course (possibly CS:5990 Indiv Research or Programming Project) c 3
Elective course c 3
Second Year
Elective course (possibly non-CS technical course) c 3
Elective course c 3
Elective course c 3
CS:6000 Research Seminar: Colloquium Series b 1
Elective course c 3
Final Exam e
 Total Hours32
Students must complete specific requirements in the University of Iowa Graduate College after program admission. Refer to the Graduate College website and the Manual of Rules and Regulations for more information.
Students must enroll twice for 1 s.h. each semester and attend at least 80% of scheduled talks for a satisfactory grade.
See General Catalog and department website for specifics about elective coursework requirements; at least 18 s.h. must be computer science graduate coursework numbered 4300 or above; remaining 6 s.h. may be a combination of CS or non-CS graduate coursework, research and project courses.
See General Catalog and department website for list of approved courses.
Confirm completion of degree requirements.