The Master of Science program in Computer Science is overseen by the Computer Science Graduate Committee (CSGC). The basic guidelines for approval of a student’s program are recommendations appearing in the Communications of the Association for Computing Machinery (ACM), the professional society in Computer Science.

Prerequisites for Admission

Completion of the following courses, or their equivalents, is prerequisite to entry into the program:

CSC 120Computer Programming I4
CSC 220Computer Programming II4
CSC 314Computer Organization and Architecture3
CSC 317Data Structures and Algorithm Analysis3
CSC 427Theory of Computing3
MTH 161Calculus I4
MTH 224Introduction to Probability and Statistics3
MTH 309Discrete Mathematics I3
Total Credit Hours27

Students may be admitted with deficiencies, normally a maximum of 6 credits. These must be completed in addition to the degree requirements.

Curriculum Requirements

Students must complete the Graduate School requirements, and the Departmental requirements described here.

Select either the Thesis Option or the Coursework Option 124-30
Thesis Option
CSC 810Master's Thesis6
24 credits from approved courses, including at least 9 credits from CSC7XX courses.
Coursework Option
30 credits from approved courses, including at least 12 credits from CSC7XX courses.
Total Credit Hours30-36

For both options, at least 18 credit hours must be from CSC 6XX and CSC 7XX courses, and may not include more than 6 credit hours from CSC 670

Each program must include both theoretical and experimental topics. By graduation students will have knowledge in the areas of Programming Languages, Algorithm Design and Analysis, Theory of Computing, Operating Systems, Computer Networks, and Software Engineering. Each program is approved by the CSGC and the Department Chairman or designate. Programs may be individually tailored to meet varied backgrounds and objectives. It is recognized that there are individuals with undergraduate degrees in other fields wishing to pursue graduate work in Computer Science, and individuals with work experience in the field wishing to advance their formal training in Computer Science.

All Computer Science graduate TAs and RAs must complete Responsible Conduct of Research (RCR) training during their first semester in the department. All other Computer Science graduate students must complete RCR training before starting research work. Information about RCR training can be found from UM ethics programs:


The Department's mission is to educate and perform scholarly activities in Computer Science.


Student Learning Outcomes

  • Student has adequate knowledge of 1) hardware and software systems and 2) design and implementation procedures for software systems.
  • Student has foundation of theoretical computer science including discrete mathematics, automata and language theory, design and analysis of algorithms, computational complexity, and correctness of programs.
  • Student has understanding and knowledge of the state-of-the-art hardware and software applications in one or more research area and has identified one or more open and interesting problems that computer scientists are currently addressing.
  • Student has applied knowledge of computer science theories and software development methodologies to solve an original research topic. The student has written a Ph.D. dissertation and presented to his dissertation committee.