Skip to main content
Develop
Professor in front of computer monitors with students

Computer Science (PSM)

About The Program

The Professional Science Master’s in Computer Science (PSM) is a 38-credit program that combines advanced coursework in computer science with courses in professional skill areas such as team and project management, as well as verbal and written communications. As part of a master’s in computer science program that’s geared for working professionals, students are encouraged to complete an industry internship that culminates in a technical project to be evaluated by a faculty member and the industry partner offering the internship.

A Program Built for Working Professionals

Level up your skills with in-person or online computer science master’s degree coursework designed for working professionals at Metro State. The university, a member of the Minnesota State College and University System, provides the opportunity to get a Professional Science Master’s in Computer Science from a high-quality, affordable university with a student-centered environment.

Student Outcomes

Students who successfully complete Metro State’s professional science master in computer science degree program will have the following career-benefiting skills:

  • A solid foundation in the concepts of distributed systems, computer security, and data management/software engineering;
  • The ability to read peer-reviewed literature related to research problems in Computer Science, and to obtain the necessary background information to further explore the problems;
  • Experience in solving problems in a professional setting;
  • Professional skills such as critical thinking/decision making, team/project management, and written and oral communications.

How to enroll

Program eligibility requirements

The Computer Science and Cybersecurity (CSC) department bases admission decisions on the applicant's prior academic work (especially in Computer Science), professional or other non-academic background and experience in Computer Science, and recommendation letters. The following three items are the minimum criteria for the CSC department to consider an applicant for potential admission. Meeting these requirements is not a guarantee of admission.

  1. Bachelor's degree in Computer Science or a related discipline from a regionally 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. Applicants without a formal degree in computer science should have completed coursework in the following topics: 1) Discrete mathematics 2) Problem solving using a modern programming language such as C, C++, or Java 3) Data structures (stacks, queues, trees, graphs, etc.), algorithms, and computation complexity 4) Object-oriented programming and design. Note: In rare circumstances, an applicant not meeting the GPA requirements might be considered if their other application materials are stellar (e.g., outstanding recommendations, excellent GRE scores, etc.)
  2. Two positive recommendations from people qualified to judge the applicant's ability for graduate studies
  3. English language proficiency or permanent resident status, documented/demonstrated in one of the following ways:
    • Is a US citizen or permanent resident
    • Has a bachelor's, master's, or doctoral degree from an English-speaking institution in the United States, Canada, the United Kingdom, Ireland, Australia, or New Zealand
    • Has a minimum TOEFL score of 80 (Internet-based), or 550 (paper-based) achieved within 24 months of intended matriculation.
    • Has an IELTS score of 6.5 or higher achieved within 24 months of intended matriculation.

Applicants must have an undergraduate degree in Computer Science or a related field. Applicants are expected, at a minimum, to have intermediate programming skills with a good knowledge of data structures and concomitant mathematical background. Applicants who do not have such a background will need to take remedial courses before being admitted to the program. This would be the equivalent of having completed ICS 140, 141, 232, 240, 340, 372, and MATH 215 in our undergraduate program (further work in Computer Science would be preferable).

Applicants lacking background in upper level computer science courses would be required, as a condition of admission, to take one or more following courses (will be indicated on the acceptance letter) with a grade of B- or better as part of their program study plans,

  • ICS 440 Parallel and Distributed Algorithms (4 credits)
  • ICS 460 Computer Networks and Security (4 credits)
  • ICS 462 Operating Systems (4 credits)

Up to 8 credits of those 400-level courses may count as electives toward the 38 credits required to graduate.

Application instructions

Metro State University is participating in the common application for graduate programs (GradCAS). Applications are only accepted via the CAS website.

CAS steps

  1. Select the term for which you are seeking admission (below), and navigate to the CAS website. Open applications include:
  2. Create or log in to your account and select the Computer Science (PSM) program.
  3. Carefully review all instructions and complete all four sections of the application.

Specific application requirements for individual programs can be found on each program page in CAS. Carefully read the instructions that appear throughout the application pages. You can only submit your application once. If you need to update information you have submitted, please notify graduate.studies@metrostate.edu

Application fee

A nonrefundable $38 fee is required for each application.
Applications will not be processed until this fee is received.

Active-duty military, veterans, and Metro State alumni can receive an application fee waiver. Contact graduate.studies@metrostate.edu.

Courses and Requirements

SKIP TO COURSE REQUIREMENTS

Guidelines for completing the Computer Science PSM program

Admission into the masters program and transfer coursework equivalency is determined by the Computer Science and Cybersecurity (CSC) Department and initially evaluated upon admission. Once admitted into the program, the student must complete 38 credits of approved work, which include:

  • one course in computer security (4 credits)
  • one course in distributed systems (4 credits)
  • one course in Software Engineering / Data and Database Management (4 credits)
  • one courses in Team and Project Management (4 credits)
  • two course in writing and communications (6 credits)
  • a set of elective courses covering advanced material in computer science and information technology. (12 credits)
  • completion of a project/study on a contemporary issue in computer science and information technology through either an Student Designed Independent Study (SDIS) course or an internship with a CSC department graduate faculty member as the evaluator along with a written/documented report and a public presentation (4 credits)

Program Requirements (38 credits)

+ Core (22 credits)
Group I: Distributed Systems (4 credits)

Choose one

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

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

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

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

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

Through analysis of research literature, lectures, and hand-on projects, this course aims to equip students with the fundamental knowledge and skills necessary to design, develop, deploy, and manage cloud-based solutions. Topics covered include fundamental cloud concepts (e.g., virtualization, multi-tenancy, elasticity, scalability, fault tolerance, and reliability), categories of cloud services (e.g., compute, storage, networking, data management and analytics), and cloud programming models and frameworks (e.g., containers, serverless, Hadoop, and web services). Students will develop a software system utilizing cloud services provided by popular cloud service providers (e.g., Amazon Web Services (AWS), Google Cloud Platform (GCP) or Microsoft Azure).

Full course description for Cloud Application Design and Development

This course provides an introduction to embedded computing, control systems, single-board computers and microcontrollers and Internet of Things. Topics include embedded software development, networked devices, protocols and controls, security, and monitoring. This course will focus on recent research and will include a hands-on/in-class lab component, involving digital logic design and analysis and will include a multi-week group design and development project. (Prerequisite: graduate standing in computer science)

Full course description for Embedded Computing with Control Systems and Internet of Things

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

Group II: Computer Security (4 credits)

Choose one

Database security has an immense impact on the design of today's electronic information systems. This course will provide an overview of database security concepts and techniques and discuss new directions of database security in the context of a connected commercial world. This course provides the information needed to develop, deploy and maintain a secure database solution. It exposes the pitfalls of database design, their means of identification and the methods of exploiting vulnerabilities.

Full course description for Database Security

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

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

This course will be the second 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, and 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 using Cyber Range students will gain necessary skills to begin supporting and implementing cyberspace security. This course will cover the following topics: Identity and Access Management (Physical and logical assets control, authentication, access control attacks, and access provisioning lifecycle), Security Assessment and Testing (Assessment and test strategies, security process data, and security control testing), Security Operations …

Full course description for Cyberspace Security Engineering II

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

Group III: Software / Engineering / Data Management (4 credits)

Choose one

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

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

Artificial Intelligence (AI) is the field of studying the synthesis and analysis of computational agents that act intelligently. AI has several areas of study, such as Searching, Reasoning, Learning, and Knowledge Representation. Searching helps the agent to reason and decide what to do, to determine the sequence of actions that will take to achieve its goals. Learning is the ability of the agent to improve its behavior based on experience. And knowledge representation is used to represent the individuals and the relationships between them, so the agent will be able to represent its own reasoning and use it to build knowledge¿ based systems. This course focuses on searching algorithms, machine learning algorithms, and ontologies and knowledge¿based systems.

Full course description for Artificial Intelligence and Machine Learning

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

Group IV: Team and Project Management (4 credits)

Graduate courses covering topics such as team and project management, decision making, and related topics. Take one of the suggested courses listed below or a related course approved by the director of the program.

This course provides a systematic and comprehensive overview of project leadership and management. Topics covered include all aspects of project management from project initiation issues, RFP formulation, proposal decisions, preparation, and evaluation, project planning and implementation to organization, risk assessment, negotiation, and conflict resolution. Also included are project planning techniques such as PERT, CPM, Earned Value Analysis, and project monitoring and simulation using Microsoft Project software.

Full course description for Project Management

This course provides a comprehensive study of project risk management, including concepts, methodologies, and applications. It includes systematic approaches to risk identification, risk modeling, risk impact assessment, respond planning, and documentation. Decision science methods such as System Dynamics, Monte Carlo Simulation, Decision Analysis, Probability Analysis, Analytic Hierarchy Process, and Scenario Analysis will be utilized in risk assessment. Use of computer software in risk analysis will also be emphasized.

Full course description for Project Risk Management

Group V: Writing, Communications, and Research (6 credits)

All students will be evaluated before placement into graduate writing courses. A student lacking the necessary writing skills will be required to complete additional writing classes, where those credits will not be applied toward this graduate program.

Choose the following courses or a related course approved by the director of the program. All students need to take ICS 698.

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

+ Electives (12 credits)

All ICS graduate courses or the courses approved by the director of the program can be used as electives. In addition, up to two graduate MATH and STAT courses, or 8 credits, can be counted as electives. No single course can be used twice for meeting the requirements.

+ Internship or Independent Study on Contemporary Issues (4 credits)

Students are required to complete a project/study on a contemporary issue in computer science and information technology through either an Student Designed Independent Study (SDIS) course, ICS 660I, or an internship course, ICS 650I, with a CSC department graduate faculty member as the evaluator. A proposal for taking either ICS 660I or ICS 650I must be approved by the faculty who works as the evaluator and then confirmed by the director of the program. The completion of the courses must include a written and documented report along with a public presentation, and then approved by the faculty who works as the evaluator and confirmed by the director of the program.

Students obtain internships in selected areas of study to gain deeper understand of knowledge, skills and the context of a given field. Site supervisors give guidance and direction to customized internship projects. Faculty members serve as liaisons between the internship sites and the university, providing information to students and potential supervisors and supervising the learning experience. Students should contact the Institute for Community Engagement and Scholarship (ICES) at Metropolitan State University for more information.

Full course description for Information and Computer Sciences Individual Internship

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

Internship Guidelines

1) Requires an approval by the director of CSC graduate programs in Computer Science;

2) Should involve at least 300 hours of work of which at least 250 hours must be spent on highly technical activities involving design or implementation or both;

3) The level and quality of the work must be appropriate for a professional with a master's degree in computer science;

4) Must culminate in a technical project to be evaluated by a CSC graduate faculty member and the industry partner offering the internship. The outcome of the internship must include a written report and a public presentation.