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.

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. Basic M.C.S. requirements are as follows. Consult the Computer Science Graduate Handbook for detailed information about M.C.S. requirements and graduate study policies.

The M.C.S. requires the following course work.

One of these:
CS:4330Theory of Computation3
CS:5340Limits of Computation3
CS:5350Design and Analysis of Algorithms3
One of these:
CS:5610High Performance Computer Architecture3
CS:5620Distributed Systems and Algorithms3
CS:5810Formal Methods in Software Engineering3
CS:5850Programming Language Foundations3
Students must earn at least 2 s.h. in this course:
CS:6000Research Seminar: Colloquium Series (must enroll at least twice for 1 s.h. each)2


Students complete eight additional courses, totaling at least 24 s.h., composed of computer science graduate courses, reading and project courses, and non-computer science graduate courses approved by their advisor. Of those eight courses, at least six must be computer science graduate courses (18 s.h.) numbered 4300 or above, which may not include CS:5110 Introduction to Informatics, CS:5990 Individualized Research or Programming Project, CS:6000 Research Seminar: Colloquium Series, CS:6990 Readings for Research, or CS:7990 Research for Dissertation.

The remaining two elective courses (at least 6 s.h.) may include technical or quantitative graduate courses outside of computer science, with the advisor's approval. Of these, only one course at the 3000 level taken during a student's first year in the M.C.S. program may be one of the following: CS:3330 Algorithms, CS:3620 Operating Systems, CS:3640 Introduction to Networks and Their Applications, or CS:3820 Programming Language Concepts. Students also may include up to 3 s.h. earned in the independent study course, CS:5990 Individualized Research or Programming Project.

Computer science, reading and project, and non-computer science courses approved by advisor24

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 of the Graduate College.

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.