Program Information


The most desirable background for an MCS student is an undergraduate degree in a computer-related field such as Computer Science, Computer Engineering, Software Engineering, or a closely related field. You will need a minimum overall grade point average of 3.0 on a 4.0 scale.  You will need to have completed the following UVU or equivalent classes with at least a C+:

  • CS 2300: Discrete Structures I
  • CS 2420: Introduction to Algorithms and Data Structures
  • CS 2810: Computer Organization and Architecture
  • CS 3060: Operating Systems Theory
  • MATH 1210: Calculus I

Students who feel they are prepared for the MCS, perhaps through work experience, but fail to meet all the requirements should address this issue in their statement of purpose.

Graduate Project

Each MCS student will be required to complete a two- semester-long graduate project.  

Picking the right graduate project is strongly related to picking the right graduate mentor. The purpose of the graduate project is to provide an opportunity where students design and implement a large complex system. We encourage students to define their own projects of interest, but some professors may have projects to offer as well. Some projects that will be very industry-related, while others may be more research-oriented, and some will have a combination of both. Deciding what you want to work on and who you want to do it with is one of your major responsibilities as a graduate student.

MCS Graduate Project guidelines can be found in the following zip file.

WRGP Participate

The Master of Computer Science (MCS) program has been approved to participate in WRGP which allows students from eligible states to pay in-state tuition while attending the MCS. In order to be eligible, students will need to show proof that they are residents of WICHE states.
Click here for more information

REQUIRED COURSES 24 Credits     


                                COURSE TITLE


CS 6150

Advanced Algorithms


CS 6300

Software Engineering Leadership


CS 6470

Machine Learning


CS 6500

Software Architecture


CS 6510

Design and Simulation of Operating Systems


CS 6600

Graduate Project I


CS 6610

Graduate Project II


CS 6700

Advanced Mathematics for Computer Science



Pick 2 courses to complete either the Graduate Project or Graduate Coursework Option:

CS 6100

Database Management System Construction


CS 6200

Cyberphysical Security


CS 6400

Modern Databases


CS 6460 

Artificial Intelligence


CS 6480

Advanced Machine Learning


CS 6620

Advanced Data Mining and Visualization


CS 6730

Advanced Embedded Systems


CS 6800

Computer Graphics and Mixed Realities


                                                                                                                                                                                                                 Total Credits




Being a Graduate Student

As a graduate student, you are moving into an area of education where more will be expected of you than ever before: more time, more commitment, more responsibility, more leadership, and perhaps, most importantly, more professionalism. It is not just the depth and complexity of the material taught in graduate classes, it's the entire process. Try to enjoy the journey. Employers who understand this will look at you differently than an undergraduate, not only because you have had different classes, but because you have had a different type of educational experience, one that requires more of you.

To this end, the MCS has been designed around three key elements: 1) to be rigorous, 2) to be relevant, and 3) to be practical. Additionally, all graduate students are expected to achieve four key outcomes before graduating from the MCS: 1) students will design large-scale systems, 2) students will implement large-scale systems, 3) students will exhibit professional maturity, and 4) students will develop a broad base of competency.

What does this mean to you as an MCS student?

  • You should expect courses that require 3+ hours of work outside of class for every 1 hour of lecture.
  • You should expect multiple hands-on assignments in every course that escalate in both depth and complexity as the course progresses.
  • You should expect to gain the fundamental skillset needed to evaluate and, if appropriate, apply the techniques/technologies taught in class in a real-world setting.
  • You should expect to work on projects where the lines of code measure in the thousands rather than the hundreds.
  • You should expect to work with a faculty mentor/advisor who will help guide you through the process of completing your graduate project.
  • You should expect to develop a greater level of confidence for tackling larger and more complex systems.
  • You should expect that as alumni of the MCS, your views and opinions will be valued by the CS Department.

Graduate Mentor's Role

If you have not read the section entitled "Being a Graduate Student," please read that first. As a graduate student, more will be expected of you, and while you might not always agree with what is being expected of you, understand that, too, is part of the process.

As you make your way through the graduate program, you will undoubtedly encounter issues. These may take the form of time management problems, waning commitment to the program, too many interests, as well as a host of other problems. While the MCS Director and individual faculty members teaching a course can assist you, this is where your faculty advisor/mentor can really help you. Finding the right mentor can be essential to your success as a graduate student.

The right faculty mentor can help keep you focused on your goals when you are feeling lost or overwhelmed, but it is your responsibility to pick the correct faculty mentor for you. The department can give you advice on whom to choose, but ultimately you are responsible for choosing your faculty mentor, and they must agree to accept you as a student. The faculty mentor you choose will not necessarily be your best friend or the teacher you like the most. They should be the faculty member you feel most strongly can guide you to achieving your goals. This may actually mean picking the professor that challenges you the most. Like picking a spouse or job, there is no simple set of rules that will always work.