Mastering the Digital Age

Join Utah’s only graduate program in software development that’s geared specifically for those with no computer science background — from the Kahlert School of Computing at the University of Utah.

The Master of Software Development (MSD) is a comprehensive and rigorous 16-month* STEM program producing capable coders, big data analysts, computer security professionals, and more for graduates looking to carve out a new career path. It’s the perfect next step for those with no CS background who want to enhance their careers by learning software development.
*20 month option available by postponing the MSD Capstone to Spring(2) and taking courses outside of the MSD program.

Success Stories

Students from the first graduating class of the Master of Software Development program are achieving great success thanks to this exciting curriculum. They have been hired for high-paying software developments jobs from companies including Microsoft, L3 Technologies, Symantec, Salesforce, BioFire, Ancestry, Cvent, and Bruker Daltonics among others. Hear what some of them had to say about the program and how it helped them achieve their dreams in finding a new, lucrative career.

"Employment of software developers is projected to grow 25 percent from 2022 to 2032, much faster than the average for all occupations. "
- U.S. Bureau of Labor Statistics

Why the MSD program might be right for you


For a new digital era.

Whether it's in finance, retail, government, or even the arts, software is a critical component to every industry.  Software development has become a vital — and valuable — work skill as companies have turned to mobile apps and cloud computing to boost productivity and make life easier.

New possibilities.

Feel like you've reached a career dead end or realized your bachelor's degree hasn't opened as many doors as you once thought? Here's a chance to reset your earning potential. The Master of Software Development is a key to new possibilities in an area with unbelievable growth.

No CS degree? No problem!

This innovative STEM program requires no computer science or related degree, but it will engage students in an extensive 40-credit-hour curriculum that covers everything from writing high-quality software to data analytics and security. We're looking for hard-working graduates with strong analytical thinking skills.

Expert faculty.

The MSD courses are taught by faculty from the University of Utah's world-renowned Kahlert School of Computing. A pioneer in computer graphics, computer networking, computer architecture and digital media, the School of Computing has more than 40 faculty that touch every aspect of modern computing research.


The Fall 2024 application deadline has passed, however, we may consider late applications if space is available. The application requirements and process are the same for the MSD and the Programming Certificate programs. Deadline for domestic and international applicants: March 15, 2024. Decisions will be made by April 15, 2024.

Program Acceptance

We encourage students with little to no computer science or related backgrounds to apply. Applicants to the program must demonstrate problem-solving skills and the ability to reason mathematically and logically through undergraduate or higher-level courses in one or more of the following: Calculus, Probability Theory, or Statistics (examples of courses at the University of Utah that satisfy this requirement would include MATH 1100, 1170, 1210, ECON 3620, 3640, or PSY 3000). If you didn't take any of these courses during your degree, we recommend taking a relevant course from a community college or similar to strengthen your application. The admissions committee examines your complete application, including any college level coursework, work experience, or self study, for experience that shows you're likely to succeed in MSD. For students with a Computer Science degree or a related degree and substantial experience, then we encourage applying instead to the department's CS MS program.

Admitted students choose in the second semester whether to enroll in just the Programming Certificate class or continue with the full MSD coursework.

Admissions Criteria

  • Bachelor's Degree

    You may apply if you have received a bachelor’s degree from a regionally accredited college or university. Four years of study is required for most international university degrees. If you are currently finishing up your degree, BS or MS, please note your status in your applications statement of purpose, and upload available transcripts to date into the application system. You can be admitted based on this information and, official transcripts will be verified before the start of the semester. You need to have a bachelor’s degree before starting the MSD program.
  • Transcripts/GPA

    This requirement includes a list all colleges and universities applicants have attended including the University of Utah, regardless of length of attendance. Official transcripts from each institution will be required. A minimum cumulative 3.0 undergraduate GPA is required for admission. The transcripts should include courses that demonstrate the ability to reason mathematically and logically.
  • Optional: Graduate Record Examination (GRE) Test Score

    The GRE is not required to apply, but will be looked at if submitted with your application. School code 4853 or department code 0402.
  • English Language Proficiency

    International applicants must receive a minimum score of 80 on the TOEFL (Test of English as a Foreign Language) iBT exam or 6.5 on the IELTS exam.

Needed for Application

  • Kahlert School of Computing MSD Online Application

    Apply by clicking the following link: Online Application
  • Statement of Purpose

    One statement of purpose essay describing the applicant's intent and goals for joining the program (submitted within the online application).
  • Three Letters of Recommendation

  • Resume

What you need to know

CoursesCertificatesAnticipated ScheduleCostLiving in SLCSeminarsTestimonialsFAQ
The duration of the MSD program is 16 months* (Fall/Spring/Summer/ Fall) involving classroom teaching and extensive lab and project experiences. The MSD program will use active-learning and project-oriented approaches to equip students with tools and perspectives for problem solving while honing their critical-thinking skills that transcend specific software languages or applications. All MSD students are required to take the following courses (4 credit hours each), while Programming Certificate students take only the first Fall semester courses plus the Spring course in Software Engineering.
*20 month option available by postponing the MSD Capstone to Spring(2) and taking courses outside of the MSD program.

Fall (Year 1)

Introduction to Software Development
CS 6010
This course covers (i) basics of hardware and software components of different types of computers including PCs, laptops, mobile devices, servers, and clouds; Software components include operating systems, programming languages, and translators (compilers, interpreters, high level languages, assembly languages, binary code); (ii) Introduction to programming in C++; (iii) the Linux programming environment, shell scripts, processes, file systems, directory structures, paths, and libraries; (iv) Source code control and code repositories – version control, github, subversion.
Computer Programming
CS 6011
This course will build upon CS 6010 and cover (i) object oriented programming principles in depth and specifically, Java; (ii) Windows development environment; (iii) Multithreading. (iv) Comparison of different object oriented programming languages; (iv) Software design. (vi) Programming examples will be drawn for various computer applications including web applications, and mobile applications.
Data Structures and Algorithms
CS 6012
This course will build upon on CS 6010 and CS 6011 and cover (i) different types of data structures including Arrays, Stacks, Queues, Trees, Heaps, and Hash Tables; (ii) Graphs; (iii) Time and space complexity; (iv) Algorithms – Divide and Conquer, Dynamic Programming, and Network flow; (v) NP completeness; (vi) Approximations; (vii) Randomization.

Spring (Year 1)

Software Engineering
CS 6015
This course develops skills in developing and maintaining complex applications. Skills will be developed in (i) creating and interpreting specifications for software, both formal and informal, (ii) using version control systems and continuous integration systems, (iii) creating test cases, creating testable software, and assessing the effectiveness of a testing campaign, (iv), using static and dynamic analysis tools to find and eliminate software defects, (v) refactoring applications, and (vi) writing solid, secure code using techniques such as defensive programming and assertions.
Systems 1 (Computer Arch + Operating Systems)
CS 6013
This course covers (i) an introduction to modern commodity hardware architecture and Operating Systems with an emphasis on their co-design; (ii) concurrent and efficient code for modern machines; (iii) reasoning about concurrent performance including context switch, cache coherence, and non-uniform memory access costs; (iv) The process abstraction, protection, and isolation; (v) Controlling devices through the operating system – device drivers; (vi) System calls; (vii) Virtualization.
Systems 2 (Computer Networks + Security)
CS 6014
This course covers (i) Internet software and hardware components, protocols (e.g., TCP/IP), Internet performance metrics; (ii) Mobile and wireless networking; (iii) Socket programming and applications; (iv) Software defined networking, network function virtualization; (v) Causes and effects of computer and network vulnerabilities (e.g., poor code, limited access control); (vi) Solutions for securing computer and networked systems through cryptography, security-aware programming/coding, and careful protocol design; (vii) DDoS prevention, end-to-end analysis of spam-value chain; (viii) concepts of indirection and randomization in network architectures.

Summer (Year 1)

Database Systems and Applications
CS 6016
This course covers database concepts and tools for both structured and unstructured data. An understanding with corresponding skills will be developed in (i) the effective use of relational databases and in particular SQL; (ii) how to interact with unstructured data via NoSQL; (iii) how the database community has attempted to virtualize heterogeneous data (via SQL-like); and how to apply data analysis tools such as MapReduce and Spark.
Data Analytics and Visualization
CS 6017
This course will cover concepts in (i) supervised learning approaches; (ii) unsupervised clustering; and (iii) regression / extrapolation, in addition to ways of visually representing and interacting with data and the results of the aforementioned analyses.

Fall (Year 2)

Application System Design
CS 6018
This course teaches to incorporate software development skills to design and build different types of application systems. These application systems include Embedded systems (Internet of Things), mobile and cloud application, and web system design. The course also covers consuming and providing services, and software as a service (SAS).
MSD Capstone
CS 6019 Capstone Project
Students will apply the knowledge of software development to specific disciplines/application domains for a significant capstone project. Examples include design and development of a substantial finance software package, design and development of security protocols or tools, design and development of software for data collection and analysis, etc. Students will acquire deeper knowledge in the domains they choose to work in. OR
CS 6800 Capstone Internship
Students will apply their knowledge of software development to specific applications while working with a local industry or institutional partner. As a result of real-world, practical experience, students will acquire deeper knowledge in the domains that they choose to work in. As part of the course, students produce a written report and oral presentation.
The Software Development Programming Certificate is an 8-month program that corresponds to the first semester of the MSD program (full time) plus one course from the second semester (part time). This certificate offers prospective students a way to get a foot in the door toward a career in programming while preparing them with a rigorous foundation for lifelong learning. Students who complete the certificate program are eligible to resume coursework toward the full MSD program. Requirements listed here.

The Software Development Systems & Data Certificate is an 8-month program that corresponds to the spring and summer semester (8 credits per semester). Requirements listed here.
Fall 1: Monday-Friday 8:30am-12:30pm
Spring: Monday-Friday 9am-11:20am (with CS 6015 on Tuesdays and Thursdays) and the Industry Seminar once a week
Summer: Tuesday-Thursday 8:30-11:30am
Fall 2: Monday/Wednesday 8:30-11:30am
Cost of the entire MSD program (Fall/Spring/Summer/Fall) for Fall 2024:
Resident: $41,203.92
Non-Resident: $57,472.48

Each student will be provided a laptop with software and access to online resources. The above amount includes the cost of the laptop + software + online resources. Students will be able to retain their laptops after finishing the program at no extra cost.
Tuition and Fees Schedule linked here
There’s a plethora of reasons why people are flocking to Utah to both work and play. From the rugged snow-capped Rocky Mountains that are home to some of the best skiing and hiking in the world to the heavenly landscapes of five national parks, Utah’s scenery is an outdoor recreationalist’s dream. Meanwhile, Utah and the stunning Salt Lake Valley are also the center of robust economic growth with one of the fastest-growing technology sectors in the country. Don’t believe us? Utah and Salt Lake City have both received national accolades in recent years.

Salt Lake City

  • #1 America’s 25 Best Cities for Young Professionals — Forbes
  • #1 Best Place to Start a Career — CNBC
  • #1 Best Cities to Start a Career — WalletHub
  • #3 Best Cities for Young Entrepreneurs — NerdWallet
  • #4 Most Attractive City — Travel & Leisure
  • #7 25 Best Cities for Jobs — Glassdoor
  • #10 Best Places to Live in the U.S. — U.S. News & World Report


  • #1 Best State for Employment — U.S. News & World Report
  • #1 America’s Top States for Business — CNBC
  • #1 Best States for Business — Forbes
  • #1 Best States for Business — 24/7 Wall Street
  • #1 Fastest-Growing Tech States — Business Insider
  • #1 Economic Outlook Ranking — American Legislative Exchange Council
  • #1 Most Entrepreneurial States — NerdWallet
  • #1 Top Destination in the World to Visit — Fodor’s Travel
  • #1 Favorite Mountain Towns (Park City) — Travel & Leisure
  • #2 Best Business Climate — Business Facilities Magazine
  • #2 Economic Growth Potential — Business Facilities Magazine
The MSD Industry Seminar is a forum where speakers from industry interact with current MSD students. This is an important component of the MSD program's broader engagement with industry. The seminar is conducted weekly every fall and spring as part of the MSD program.



“After completing the program I was offered a dream job.”
Sydney Sturgeon, Symantec
“If you are not satisfied in your current career and you are interested in software development, look into this program.”
Bill Aldrich, Symantec
“I got a job working for Microsoft because of what I learned in the MSD program”
Junchen Zhang, Microsoft
Is the MSD program online or in-person?
The MSD program is not an online program. It is an in-person program. Students are expected to be at the U of U for at least 20 hours a week. Additionally, as summer semesters at the University of Utah are by necessity somewhat compressed, students should also plan on 20+ hours a week during the summer.
What is the expected load?
The average MSD student is expected to spend at least 35-40 hours per week on their studies (this includes classroom and lab times, as well as homework and study time).
Are the classes held during evenings/weekends?
No. The classes will be held during regular business hours. Please check out the Fall schedule.
Are there any scholarships associated with the MSD program?
There are no scholarships or assistantships specifically tied to the MSD program. However, the MSD students should consider checking out the University of Utah’s Office of Scholarships and Financial Aid office at for any financial assistance they might be eligible for.
Could one be admitted to the MSD program in the Spring semester?
No. Currently, the MSD program allows Fall admissions only.
How should the MSD fees be paid?
The MSD fees must be paid in four equal installments when tuition is due each semester.
How is the MSD program at the School of Computing different from its MS programs in Computer Science or Computing?
The MSD program does not require any Computer Science or Computing background or pre-requisite courses. Very importantly, it focuses on preparing students for software development jobs in industry. Our MS programs generally prepare students for both industry and research in computer science/computing. The MSD learning outcomes are as follows:
  • To have a comprehensive view of both the fundamental concepts as well as the practice of software design and development
  • To demonstrate mastery of software design and development, specifically, to be able to write secure, reliable and robust code
  • To be able to apply software skills to different application areas
  • To demonstrate critical thinking skills transcending specific software languages or applications
  • To be able to work as members of, and also be able to lead, teams for software design and development
How is the MSD program different from the MSIS program in the School of Business?
The School of Business at the University of Utah offers an MSIS and graduate certificate in Information Systems. The MSIS and graduate certificate in Information Systems programs are intended to prepare students for business careers where an understanding of technology is of financial and strategic value to a firm. The MSIS program focuses on producing information systems executives, analysts and specialists with business management skills to align information technology with business strategy. The MSD degree offered by the School of Computing will produce high quality software engineers by focusing on teaching hard software design and development skills. The courses in MSIS and MSD, even with similar sounding names, thus have different content.
What does the MSD tuition cover?
Tuition covers the cost of MSD courses for Fall/Spring/Summer/Fall:
Each student will be provided a laptop with software and access to online resources. The above amount includes the cost of the laptop + software + online resources. Students will be able to retain their laptops after finishing the program at no extra cost.
How is my degree labeled?
Master of Software Development

Faculty – Current Instructors

Ben Jones
Program Associate Director
Associate Professor (Lecturer)
School of Computing
Varun Shankar
Program Associate Director
Assistant Professor
School of Computing
Nabil Makarem
Assistant Professor (Lecturer)
School of Computing
Dav de St. Germain
Associate Instructor
School of Computing
Matthew Flatt
Program Director
School of Computing

Faculty – Contributors and Past Instructors

Sneha Kasera
Program Founder
School of Computing
Mike Kirby
School of Computing
John Regehr
School of Computing
Zvonimir Rakamaric
Associate Professor
School of Computing
David E. Johnson
Associate Professor
School of Computing
Daniel Kopta
Assistant Professor
School of Computing

Contact Us!

For more information, contact or use the form below.

Contact Us
Would you be interested in attending an Information Session?

Follow Us