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

Every graduate student who chooses the Graduate Project option will be required to complete a two- semester-long graduate project.  Do not expect to complete this in a single semester--you cannot have a baby in four months by just pushing harder and you do not complete two semesters of work in one semester by just working harder.

Picking the right graduate project is strongly related to picking the right graduate mentor. All graduate projects are required to make 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 instate 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 18 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 6700

Advanced Mathematics for Computer Science



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

CS 6100

Database Management System Construction


CS 6400

Modern Databases


CS 6480

Advanced Machine Learning


CS 6600

Graduate Project I


CS 6610

Graduate Project II


CS 6620

Advanced Data Mining and Visualization


CS 6800

Computer Graphics and Mixed Realities


                                                                                                                                                                                                                 Total Credits



A personal note from former MCS Director Curtis Welborn

"I was not always an academic; there was a time when I wasn't even a good student. When I finished high school, I was functionally illiterate. I failed college English so many times I was threatened with expulsion and struggled in my math and science-related classes. Yet, even through all that, I was always motivated to learn. Eventually I found the help and motivation I needed to excel in school. My undergraduate degree wasn't in math, science, or engineering. It was a BBA in Information Systems. As a result, when I went for my Master of Science in Computer Science, I had to take lots of leveling classes to get into the graduate classes. I never saw these leveling classes as a waste of my time; rather I saw them as an opportunity to grow, learn, and prove myself. I was 40 years old with 17 years of industry experience when I returned to school to get my Ph.D. There were times in class when I knew the material better than my professor, yet there was always something I could learn. Education is truly a journey not a destination. When you complete your study in the MCS, you will learn the real hard truth of graduate education. You're not done, you've only scratched the surface, and you'll need to know even more to solve the really fun, complex, and difficult problems that exist in the world."

Curtis Ray Welborn, Ph.D.

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.