The Master of Computer Science (MCS) is a course-based program for students who wish to enhance their careers with advanced knowledge of computer science. The MCS program does not include a thesis requirement.
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 expertise 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 (MCS) 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 grade-point average of at least 2.75. Consult the Computer Science Graduate Handbook for detailed information about MCS requirements and graduate study policies.
The Master of Computer Science requires the following coursework.
Theory
Course # | Title | Hours |
---|---|---|
One of these: | ||
CS:4330 | Theory of Computation | 3 |
CS:4350 | Logic in Computer Science | 3 |
CS:4980 | Topics in Computer Science II (if topic is approved by the director of graduate studies) | 3 |
CS:5340 | Limits of Computation | 3 |
CS:5350 | Design and Analysis of Algorithms | 3 |
CS:5360 | Randomized Algorithms | 3 |
CS:5370 | Computational Geometry | 3 |
CS:5850 | Programming Language Foundations | 3 |
CS:5860 | Lambda Calculus and Applications | 3 |
Algorithms
Course # | Title | Hours |
---|---|---|
This course: | ||
CS:4310 | Design and Implementation of Algorithms | 3 |
Colloquium
Students are graded on a satisfactory/unsatisfactory (S/U) basis. They must attend at least 80% of scheduled talks to earn a satisfactory grade in the course.
Course # | Title | Hours |
---|---|---|
This course: | ||
CS:6000 | Research Seminar: Colloquium Series (must enroll twice) | 2 |
Electives
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 PhD 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 MCS 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 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 the 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.
A version of the BA/MCS combined program is now available for Grinnell College undergraduate students pursuing a BA degree in computer science who want to earn the MCS at the University of Iowa.
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 MCS students enter the start-up market or pursue additional graduate education leading to the PhD 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, MCS
Academic Career | ||
---|---|---|
Any Semester | Hours | |
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 | ||
Hours | 0 | |
First Year | ||
Fall | ||
CS:4310 | Design and Implementation of Algorithms | 3 |
CS:6000 | Research Seminar: Colloquium Series b | 1 |
Elective course c | 3 | |
Elective course c | 3 | |
Hours | 10 | |
Spring | ||
Theory course d | 3 | |
Elective course (possibly CS:5990 Indiv Research or Programming Project) c | 3 | |
Elective course c | 3 | |
Hours | 9 | |
Second Year | ||
Fall | ||
Elective course (possibly non-CS technical course) c | 3 | |
Elective course c | 3 | |
Elective course c | 3 | |
Hours | 9 | |
Spring | ||
CS:6000 | Research Seminar: Colloquium Series b | 1 |
Elective course c | 3 | |
Final Exam e | ||
Hours | 4 | |
Total Hours | 32 |
- a
- 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.
- b
- Students must enroll twice for 1 s.h. each semester and attend at least 80% of scheduled talks for a satisfactory grade.
- c
- 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.
- d
- See General Catalog and department website for list of approved courses.
- e
- Confirm completion of degree requirements.