The Master of Science degree in software development (MSSD) is an applied program designed to prepare students with the skills that employers seek when hiring software developers. Software development involves the process of conceiving, specifying, designing, programming, documenting, testing, and debugging to create and maintain computer applications, frameworks, or support components of these, such as databases and security contexts. To succeed, software developers must have the skills to be able to write code to create single-threaded, multi-threaded, or user interface event-driven applications, be they stand-alone applications or those which access servers or services. Software developers must also be able to determine the scope of a computer system, gather requirements for it, choose from possible architectural options, and then design, test, modify, debug and document software for client applications. To do so requires specific skills in tandem and combination, which are addressed in the curriculum requirements of the degree.
The degree program is in hybrid format with a significant online component, and consists of two foundation courses, seven required core courses, and an array of electives, from which a student must choose at least three. The required courses provide students with a solid foundation in the design and coding of a wealth of applications as well as in software design techniques,and comprise a majority of the coursework. Students can select electives to intensify their skills in four different areas of specializations: web development, mobile applications development, database management, or software design.
Web Development
Businesses, government, and other organizations are continually improving and updating their web presence to advertise products and promote services, which maintains a high demand for skilled web developers. In fact, the need for trained web developers is growing so rapidly that the U.S. Bureau of Labor Statistics projects an impressive 27% increase in web developer jobs through the next decade. Students who specialize in web development will build applied skills in stacked web development technologies, both front-end (client-side) and back-end (server-side). Specific technologies students will learn include HTML5, CSS3, JavaScript, Bootstrap, jQuery, Angular JS, AJAX, ASP.NET Core MVC, PHP, JSP, GIS, and RESTful services. Courses in this specialization also cover responsive web design techniques, web hosting, Apache Hadoop, CMS, web security, cloud computing, and web performance issues.
Mobile Applications Development
Our increased dependency on our smartphones speaks to the ongoing need for app developers. In a rather short period of time, mobile apps have become ubiquitous. New apps continue to be introduced at an exponential rate. Apps are relevant to almost every industry today, including retail, banking, travel, dining, education, media, and entertainment. What’s more, CNNMoney and PayScale listed Mobile Applications Developer first on their 2017 Best Jobs list and ninth on their fastest-growing job list with anticipated 19% jobs growth over the next decade. Students who specialize in mobile applications development will acquire skills in Android native app development, mobile web app development, hybrid app development and, electively, iPhone app development.
Database Management
Employment of database administrators is projected to grow 11 percent from 2016 to 2026. Database administrators (DBAs) use specialized software to store and organize data. They ensure that data is available to users, consistent and clearly defined, and secure from unauthorized access. Students who specialize in database management will build skills pertaining to relational databases, including SQL, normalization, functional dependency and entity relationship diagrams, database design, recovery, security, client server systems, and the programming and administration of database systems.
Software Design
With computer applications supporting everything from the space program to the mobile device, there is a need for people who can create the software programs that run them. Systems analysts and software application designers are responsible for the critical design and development plan that leads to the creation of all kinds of software, from complex corporate systems that support the operations and processes of a corporation, to mobile phone applications, or apps. Students who specialize in software design will study software development methodologies, associated tools used to support development throughout the systems development lifecycle and approaches to project management, as well as requirements analysis, database design, application interface design, software design foundations, software engineering fundamentals, and popular software architectures.