Computer Science MS

College of Sciences
Graduate degree / Master of Science

About this program

The Master of Science in Computer Science (MSCS) is a 34-credit program that provides advanced study in the theory and practice of Computer Science. It focuses on two of the key areas in modern computing: distributed systems and computer security. The program has been designed to:

  • strike a healthy balance between theory and practice;
  • help students acquire the ability to read and assimilate highly technical material;
  • deepen students' technical knowledge;
  • enable students to solve complex problems;
  • help students effectively respond to rapid technological changes;
  • help students develop well organized presentations and written materials; and
  • enhance students' careers in computing

The MSCS program consists of 28 credits of coursework, which includes 12 credits focused on distributed computing and computer security and 16 credits of electives.

All MSCS students will learn about research methodologies, scholarly research, and professional writing in a 2-credit ICS 698 Research Seminar course. An applied project or original thesis in Computer Science (4 credits) must also be completed.

Student outcomes

  • a solid foundation in the concepts of distributed systems and computer security;
  • a good knowledge of the major research areas in Computer Science;
  • the ability to survey literature related to research problems in Computer Science, and to obtain the necessary background information to further explore the problems; and
  • the skill to write up research results and present them orally

Metro State connects you to your future. Get info about taking your next step toward a degree!

Enrolling in this program

Program eligibility requirements

  • Bachelor's degree from an accredited institution with either:
    • a cumulative undergraduate grade point average (GPA) of at least 3.0 (on a 4.0 scale), or
    • an undergraduate GPA of at least 3.0 in all Computer Science and Mathematics or related courses, or
    • in rare circumstances, a student not meeting requirements (a) or (b) might be considered if their other application materials are stellar (e.g., outstanding recommendations, excellent GRE scores, etc.)
  • Evidence that the student's preparation includes work in Computer Science and Mathematics through the level of ICS 240 and MATH 215, through either:
    • transcript verified credits in equivalent courses  
    • letters of recommendation and essay indicating how such competence was achieved

Application instructions


  • Fall semester
    • Jun 15 - United States applicants
    • May 1 - Overseas international applicants
  • Spring semester
    • Nov 15 - United States applicants
    • Oct 1 - Overseas international applicants

There are no summer admissions. The program director will inform applicants of the admission decision for fall semester by July 1 and for spring semester by November 30.

Application file

A complete application file consists of two parts (three for international students.) Begin the application process by first applying online using the online graduate application. All application materials become the property of Metropolitan State University and are not returned. All application materials must be received in the Graduate Studies Office by the application deadline, and will be made available to the MSCS Graduate Admissions Committee for review.

Part one - apply online

  • Complete the Online Graduate Programs Application. You will use your Minnesota State StarID to complete the application. If you don't have a Minnesota State StarID, you will create one at the beginning of the application. If you encounter difficulty with the online application please email
  • Pay the non-refundable application fee online using the online application.
    • The current fee of $20 is waived for graduates of Metropolitan State University.
  • Submit official transcripts or transcript evaluation showing a baccalaureate degree or equivalent earned from an accredited institution with grade-point average or narrative description describing courses completed.
    • Transcripts from ALL schools attended after high school and from any graduate or professional programs are required.
    • All transcripts from non-U.S. schools must be evaluated (course-by-course) by:
    • Educational Credential Evaluators (third-party website) (preferred)
    • World Education Services (third-party website)
    • Electronic transcripts (preferred) sent to
    • Paper transcripts sent directly from the sending institution (preferred) to: 
      • Metropolitan State University
        Attn: Graduate Admissions
        700 East Seventh Street
        Saint Paul MN 55106

Part Two - Upload Remaining Documents

Once you've applied online you can login to the Applicant Portal using your StarID and password and upload remaining documents and check on the status of your application. To be considered for admission you must provide:

  • Two Letters of Recommendation (required); Upload
    • From professional sources, at least one of which is a current or former college instructor, and at least one of which is a current or former work supervisor.
  • Current Resume (required); Upload
    • Documenting relevant work experience
  • Purpose Essay (required); Upload
    • Describing why you wish to enroll in the program
    • Address why you feel you have the necessary background to succeed in the graduate program (for applicants without a computer science major)
    • Official GRE Scores (recommended):
      • Minimum scores - Verbal: 150 and Quantitative: 155, or a total of 305

Part three - international students only

In addition to parts one and two, international applicants in the U.S. or abroad, on any type of visa, are required to provide this information for admission to the university.

  • Proof of English proficiency (official TOEFL or IELTS score)
    • Minimum scores: TOEFL 80 IBT, 213 CBT, 550 PBT or IELTS 6.5
    • IBT=internet based; CBT=computer based; PBT=paper based
  • Financial statement (F1 visa only)
  • Immunization records
  • Copies of passport, visa, I-94, and international home address and phone numbers

Visit International Student Services graduate admissions for part three details.

  • Mailing Address:
    International Student Services
    Metropolitan State University
    700 East Seventh Street
    Saint Paul, MN 55106-5000


Questions about applying to the Computer Science program?

Please contact (preferred) or call 651.793.1302.

Questions about the program, please contact

Program requirements

To complete the program, the student must complete 34 credits of approved work, which include:

  • one course in computer security (4 credits) 
  • one course in distributed systems (4 credits) 
  • a second course in either computer security or distributed systems (4 credits)  
  • the research seminar course (2 credits) 
  • a set of elective courses covering advanced material in computer science. (Electives may include additional work in distributed systems or security or may be taken from other advanced topics.) (16 credits) 
  • completion of a practical research project (project option) or theoretical problem (thesis option) under the guidance of a full-time faculty member of the department. The student must submit a written report of his/her work to a graduate committee and later make an oral defense of the work. (4 credits)

Course requirements


Ideally, applicants will have an undergraduate degree in Computer Science or a related field. Applicants are expected, at a minimum, to have intermediate object-oriented programming skills with a good knowledge of data structures and concomitant mathematical background. This would be the equivalent of having completed ICS 140, 141, and 240 and MATH 215 in our undergraduate program (further work in Computer Science would be preferable). Applicants lacking a strong undergraduate major in Computer Science may be required, as a condition of admission, to take senior-level undergraduate courses as part of their program. Eight credits of this 400-level work may count toward the 34 credits required to graduate.

ICS 440 Parallel and Distributed Algorithms

4 credits

Covers design and development of parallel and distributed algorithms and their implementation. Topics include multiprocessor and multicore architectures, parallel algorithm design patterns and performance issues, threads, shared objects and shared memory, forms of synchronization, concurrency on data structures, parallel sorting, distributed system models, fundamental distributed problems and algorithms such as mutual exclusion, consensus, and elections, and distributed programming paradigms. Programming intensive.

Full course description for Parallel and Distributed Algorithms

ICS 460 Networks and Security

4 credits

Principles and practices of the OSI and TCP/IP models of computer networks, with special emphasis on the security of these networks. Coverage of general issues of computer and data security. Introduction to the various layers of network protocols, including physical, data link, network, and transport layers, flow control, error checking, and congestion control. Computer system strengths and vulnerabilities, and protection techniques: Topics include applied cryptography, security threats, security management, operating systems, network firewall and security measures. Focus on secure programming techniques. Programming projects.

Full course description for Networks and Security

ICS 462 Operating Systems

4 credits

Principles, techniques, and algorithms for the design and implementation of modern operating systems. Topics include operating system structures, process and thread scheduling, memory management including virtual memory, file system implementation, input output systems, mass storage structures, protection, and security. Students will implement process, memory, and file management algorithms.

Full course description for Operating Systems

Requirements (34 credits)

Distributed Systems (4 credits)

Choose one

ICS 611 Distributed Database Systems

4 credits

This course covers the fundamental issues of distributed databases with focus on data fragmentation and allocation, query optimization and transaction processing. Topics include: Distributed database management systems architecture and design; data fragmentation, replication, and allocation; database security, authorization and integrity control; query optimization; transaction management; distributed concurrency control and replica control; distributed object database management systems; multidatabase systems.

Full course description for Distributed Database Systems

ICS 613 Introduction to Big Data Computing Systems

4 credits

The field of computer science is experiencing a transition from computation-intensive to data-intensive problems, wherein data is produced in massive amounts by large sensor networks, simulations, and social networks. Efficiently extracting, interpreting, and learning from very large datasets requires a new generation of data management technologies. This course gives an introduction to the Hadoop ecosystem as de facto big-data-management system and special consideration will be made to the Apache Spark data analysis framework. The fundamental concepts on which the emerging big data management systems are based are discussed first. Once a foundation is defined, technologies and algorithms that are used to work with big data sets are studied. Tentative topics covered include: distributed file system, map-reduce programming paradigm, Apache Spark basics, SparkSQL, Pig, Hive, Impala, and Scoop. The course is programming intensive and includes several programming assignment projects using…

Full course description for Introduction to Big Data Computing Systems

ICS 625 Web Services and Service-Oriented Architectures

4 credits

This course introduces XML technologies, web services and service-oriented architectures. Current approaches to web service design and implementation will be discussed. Models for designing and implementing a service-oriented architecture will be discussed. Security considerations and emerging trends will be explored. Students will implement web services.

Full course description for Web Services and Service-Oriented Architectures

ICS 640 Distributed Algorithms

4 credits

Study of distributed algorithms that are designed to run on networked processors and useful in a variety of applications., such as telecommunications, information processing, and real-time process control. Specific algorithms studied include leader election, distributed consensus, mutual exclusion, resource allocation, and stable property detection. Both asynchronous and synchronous systems will be covered and fault tolerance will be the major theme. Algorithms will be analyzed for complexity and proofs of corrections will be studied.

Full course description for Distributed Algorithms

ICS 661 Wireless Technologies

4 credits

This course is a Study of the theory and methodologies used in the construction of wireless networks. Topics include: Overview of computer networks and wireless systems; cellular concepts and design fundamentals; physical layer fundamentals; data link control protocols; security related concepts including authentication and privacy with message integrity; wireless medium access control (MAC) protocols; radio resource management (power control); resource allocation and call admission control; mobility management; wireless networking; wireless LAN; wireless mobile ad hoc networks and wireless sensor networks.

Full course description for Wireless Technologies

ICS 668 Cloud Forensics

4 credits

In this course, students will examine the scope of cloud computing and forensics as a multi-disciplinary field, including its foundations, methodologies, standards, procedures, applications, and then conduct an in-depth study and research in its challenges, impacts, and future trends through weekly exercises and discussions, extensive reading and writing, comparative analysis and research, and case studies and critiques. Competence Statement: Students in this course will study and comprehend the foundations, principles, theories, techniques and practice of this cutting edge field well enough to be able to define the scope of the field, outline the new procedures, familiar with the advanced technology, and conduct preliminary research on a self-framed emerging problem in the field.

Full course description for Cloud Forensics

Computer Security (4 credits)

Choose one

ICS 668 Cloud Forensics

4 credits

In this course, students will examine the scope of cloud computing and forensics as a multi-disciplinary field, including its foundations, methodologies, standards, procedures, applications, and then conduct an in-depth study and research in its challenges, impacts, and future trends through weekly exercises and discussions, extensive reading and writing, comparative analysis and research, and case studies and critiques. Competence Statement: Students in this course will study and comprehend the foundations, principles, theories, techniques and practice of this cutting edge field well enough to be able to define the scope of the field, outline the new procedures, familiar with the advanced technology, and conduct preliminary research on a self-framed emerging problem in the field.

Full course description for Cloud Forensics

ICS 684 Cyberspace Security Engineering I

4 credits

This course is the first of a two-course series that introduces the interdisciplinary field of cyberspace security. The technical foundation for the cybersecurity defender is a particular combination of network, operating system, hardware (mobile/desktop/server) and software engineering skills, all of which are required to protect and defend modern systems, networks and information assets. Students will explore in-depth technical foundations which underpin cybersecurity threats and corresponding defenses. Through hands-on training students will gain necessary skills to begin supporting and implementing cyberspace security. This course will cover the following topics: Security and Risk Management (security governance principles, compliance, legal and regulatory issues, professional ethic, and security policies), Asset Security (information and asset classification and ownership, data security controls and handling requirements), Security Engineering (secure Engineering processes,…

Full course description for Cyberspace Security Engineering I

ICS 688 Cyber Threat Intelligence

4 credits

The course will provide students with foundational concepts and practical skills in the field of cyber threat intelligence that can be leveraged to defend against sophisticated network intrusions and loss of proprietary information. The course will discuss various phases of the intelligence lifecycle including developing intelligence requirements, collecting, analyzing, and disseminating information; and using cyber threat intelligence to improve security at the tactical, operational, and strategic levels.

Full course description for Cyber Threat Intelligence

Electives (20 credits)

Take electives from these advanced topics or complete additional courses in the distributed systems or computer security categories above. At least 4 credits must be taken in one of the two categories above.

ICS 650 Simulation Modeling and Queuing Theory

4 credits

This course is the study of fundamentals of computer simulation modeling and queuing theory at graduate level. Computer simulation can be an extremely powerful tool, yet few in industry seem well trained in the design, implementation, and interpretation of a useful simulation experiment. The instructional materials in this course are designed to familiarize the students with the use of computer simulation and queuing theory. Students will be taught to focus simulation studies on tractable and intractable questions, to draw conclusions from simulations results, and to bring these conclusions into appropriate domain context. This is a hands-on course. Students are taught simulation theory through the practice of developing models and of writing software. Examples of application areas include: Computer Networks, Bioinformatics, Public Health Issues, Trends in Education, Trends in Industry and many, many more. Topics include: Introduction to Simulation; Introduction to the Arena…

Full course description for Simulation Modeling and Queuing Theory

ICS 664 Real Time Operating Systems

4 credits

This course is the study of fundamentals of design and implementation of real-time operating systems. Most embedded computer systems have dedicated microprocessors as their computational and controlling elements and run real-time operating systems. This course covers concepts, programming languages, tools, hardware, and methodologies used in the construction of real-time operating systems and their peripheral components. Topics include: applications of real-time operating systems; communications between PC computers and embedded systems; fundamental concepts of scheduling (multitasking and interruptions); introduction of basic hardware components used in most real-time operating systems; Hardware description language[VHDL]; and the writing of a real-time operating system [RTOS] using industrial standard C language, debugging, and loading the code to the target hardware.

Full course description for Real Time Operating Systems

ICS 670 Contemporary Issues in Software Engineering

4 credits

This course presents Software Engineering topics of interest to students in the graduate Computer Science program. Topics vary with each offering of this course, but will be related to Software Engineering concepts such as verification, validation, secure systems, quality control, or formal methods. Check the class schedule for details about topics and course prerequisites.

Full course description for Contemporary Issues in Software Engineering

Research Seminar and Project or Thesis (6 credits)

Students are required to register for ICS 698 and later register for their 4-credit student designed thesis project (ICS 660I).

ICS 698 Research Seminar

2 credits

In this course, the student will perform the following activities: search the literature on specific areas, read papers in a selected area, study the methodologies used in the applied computer research, write and submit a survey paper based on the reading, and make an oral presentation of the results. It should be taken no later than the second semester.

Full course description for Research Seminar

ICS 660I Information and Computer Sciences Student Designed Independent Study

1-5 credits

Student-designed independent studies give Metropolitan State students the opportunity to plan their own study. This type of independent learning strategy can be useful because it allows students: to study a subject in more depth, at a more advanced level; to pursue a unique project that requires specialized study; to draw together several knowledge areas or interests into a specialized study; to test independent learning capabilities and skills; or to use special learning resources in the community, taking advantage of community education opportunities which, in themselves, would not yield a full college competence. Students should contact their academic advisor for more information.

Full course description for Information and Computer Sciences Student Designed Independent Study