The Master of Computer Science (MCS) is a professionally-oriented, course-based program for students who wish to enhance their careers with advanced knowledge of computer science. If you are a student considering joining the MCS program, visit our page for Prospective Students.
The Master of Computer Science (MCS) requires a minimum of 32 semester hours (s.h.) of graduate credit, including at least 24 s.h. earned at the University of Iowa. This credit needs to be earned via 2 s.h. of "CS:6000: Research Seminar: Colloquium Series" and 10 additional courses (3 or more s.h. each). A simplified description of MCS requirements is as follows. Consult the Computer Science Graduate Handbook for more detailed information about MCS requirements and departmental and University policies affecting graduate students.
All MCS students are required to take one of the following for a total of 3 s.h. This requirement may be met by using an approved CS:4980 course as well.
Course Number & Name | Semester Hours |
---|---|
CS:4330 Theory of Computation | 3 s.h. |
CS:4350 Logic in Computer Science | 3 s.h. |
CS:4980 Topics in Computer Science II (consult advisor for approved section topic) | 3 s.h. |
CS:5340 Limits of Computation | 3 s.h. |
CS:5350 Design and Analysis of Algorithms | 3 s.h. |
CS:5360 Randomized Algorithms | 3 s.h. |
CS:5370 Computational Geometry | 3 s.h. |
CS:5850 Programming Language Foundations | 3 s.h. |
CS:5860 Lambda Calculus and its Applications | 3 s.h. |
All MCS students are required to take CS:4310-Design and Implementation of Algorithms.
MCS students must earn at least 2 s.h. in CS:6000 Research Seminar: Colloquium Series (must enroll at least twice for 1 s.h. each). Students enrolled in CS:6000 are graded Satisfactory/Unsatisfactory (S/U). Students must attend at least 80% of scheduled talks to get a satisfactory grade for the course.
MCS students should complete their remaining 24 s.h. (8 courses) with a combination of computer science graduate courses, research and project courses, and non-CS graduate courses approved by their advisor. See our Computer Science graduate courses page for relevant courses. The choice of electives must satisfy the following constraints:
The Department of Computer Science, with the Department of Electrical and Computer Engineering, offers an MCS. 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 MCS 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.