Online Masters in Computer Science – Software Engineering Track

Online Masters in Computer Science – Software Engineering Track

The Productive Use of Scientific Knowledge

In the Master of Computer Science online program with a concentration in software engineering, you will develop the methods used to produce and maintain high-quality software in a systematic, controlled, and efficient manner. You’ll also focus on spans across pattern specification, software architecture, microservice-based enterprise application design, code analysis, security assessment, model-driven analysis, and testing.

High Demand For Software Engineering Roles

  • 1.1 Million – job postings for software engineer roles over the past 12 months – Dec.2018-Dec.2019, Burning Glass
  • $105, 590 per year - in 2018 - bls.com
  • 21% Job Growth - from 2018-2028, faster than average - bls.com
Software Verification & Validation

Prerequisite(s): CSI 3372 or consent of instructor. Advanced topics in software engineering research, including techniques used in software verification and validation with a focus on software specification and testing.

Software Engineering Track Curriculum

The courses you will take in the Master of Computer Science Online - Software Engineering Track are listed below. Based on your previous education, you may need to take some foundation courses prior to beginning these courses. They are listed in the brochure and an enrollment advisor can help determine if they are necessary. 

Advanced Object-oriented Development

Prerequisite(s): CSI 4344. Object‐oriented development brings many instruments and constructs that involve composition, inheritance, polymorphism, templates, etc. However, how do you use them effectively to solve engineering problems? In this course, you will learn how to apply the best software industry practices to object‐oriented design and programming. We will examine basic and more advanced design patterns that are applicable in conventional programming as well as for enterprise solutions. You will learn to recognize design issues and refactor them using the best practice.

Distributed Systems Development

Distributed systems underlie software in multiple domains, including enterprises for stock trading, health care, online shopping, data processing, and transportation management. These systems are frequently designed using the Microservice Architecture (MSA). MSA splits the overall system into independent self‐contained modules managed by distinct development teams. These low-coupled modules interact on a high level (e.g., through REST calls or messaging), which enables development autonomy, individual module upgrades, or selective redeployment.

Advanced Software Engineering

Prerequisite(s): CSI 5324 or consent of instructor. Advanced topics in software engineering research, including the techniques used in the modeling and analysis of complex systems.