The online M.S. in Computer Science (M.S.C.S.), housed in the Department of Computer and Data Sciences, provides students with a grounded foundation in advanced algorithms and computational ethics, while allowing students to specialize in a variety of concentrations. The online M.S.C.S. is designed to cater to professionals looking to fill the gap or shift their career trajectory toward a software development and design career path. Students without a strong background in mathematics, programming or computational science will be able to take a foundations course sequence as part of their core to be brought up to speed.
The software engineering concentration focuses on advanced programming concepts such as parallel programming, networking and socket programming, advanced object orientation, systems programming, and user interface design principles. Additional coursework focuses on software documentation, software design patterns, project management, and database management. The online M.S.C.S. offers an experiential curriculum, with heavy emphasis on hands-on software design and development. All M.S.C.S. online concentrations offer, as part of their core curriculum, a four-credit master’s level project or thesis (student choice), depending on the experience of the student. Additionally, individual courses emphasize a project-heavy curriculum.
Admission Requirements and Prerequisites
Students must hold a bachelor’s degree and meet Merrimack’s general master’s degree admissions requirements. Additionally, students must interview with the department, or take an entry exam to determine the level of foundational coursework that will be required to begin the degree program.
Transfer of Credit from other Institutions
A maximum of two graduate-level electives may be transferred in from other institutions with the approval of the Department Chair.
Program Outcomes
Students of the online M.S.C.S. with a concentration in Software Engineering will be able to…
- design high level object-oriented software as native applications, smartphone apps, systems-level programs, and web sites.
- develop software using a variety of programming languages and design patterns.
- understand the ethical considerations of data farming, data usage, data storage, machine learning, artificial intelligence, and algorithmic deployment.
- understand the utility and deployment of high level algorithms, including approximation algorithms, and randomized algorithms.