Master of Science in Software Engineering

The School of Engineering offers a master's degree in software engineering (MSSE) as well as graduate-level certificate programs in select areas of software engineering. The MSSE program is intended to serve the needs of software application developers, web programmers, network and information security administrators, database administrators, and other information technology professionals. Students who do not meet a minimum experience level, or who have other skill deficiencies, will be required to take one or more bridge courses to strengthen their capacity to meet the MSSE curriculum demands.

The certificate programs allow software professionals to upgrade their skills in selected areas. Certificate program students enroll under "special student" status and participate in courses offered through the MSSE program, earning a Certificate of Completion. The certificate credits could count toward the MSSE degree should students choose to pursue it. Four certificate programs are available: Web Applications Development, Database Management, Information Security, and Network Technologies.

Program Overview

Engineering education programs seek to impart technical, mathematical, and engineering design knowledge that can be applied to the creative development of products, or solutions to problems, that are useful to society. The MSSE program emphasizes software as the product to be built, recognizing that social progress and the national economy depend on knowledge industries as well as on traditional manufacturing, and aims to meet the challenge of progressively increasing demand for the skills and competencies of software engineers.

A special feature of the MSSE program at Fairfield is a team-driven software engineering capstone course during which students experience the various phases of the software engineering development lifecycle while working on significant real-world software development projects chosen by the faculty. The criteria for the projects are that they are complex, allow the students to experience advanced software engineering topics, and are multi-semester long with students joining for two semesters each.

Learning Goals

Students in the MSSE program will be instructed to analyze, design, verify, validate, implement, apply, and maintain software systems. Specifically, the following methodologies and skills will be emphasized:

  • Requirements gathering methodologies
  • Object-oriented design and prototyping following agile and traditional software life cycles
  • Project management in software design and development
  • Software system implementation using various software development tools
  • Software testing and maintenance
  • Software documentation

In sum, students will acquire the skills and real-world knowledge to succeed in the software engineering field through an in-depth exposure to the software development methodologies and tools. A sequence of required courses and elective courses, and the final team-driven capstone project provide depth and breadth to the students' learning experiences.

In addition to required courses, those in specialization areas build strong in-depth technical knowledge and skills in the area of student's interest. Courses in other engineering and management fields are available as electives.


The students who enroll in the MSSE program are:

  • IT workers who, responding to the demands of their industry, need to acquire new skills and master new tools to effectively guide software development in their company
  • Technologists who wish to fulfill their needs for personal and professional growth
  • Engineers and scientists who aspire to a career change
  • Undergraduate students in software engineering, computer engineering, or computer science who seek the opportunity to continue their studies for an advanced engineering degree at Fairfield University

Students who wish to retrain to move from a different discipline into software engineering are welcome to enroll in the program.  They may expect to do as many as 9 credits of work to catch up in the field.  For example, students with no prior programming experience would be required to take programming language courses under advisement from the program director.  Students may also be encouraged to take additional non-credit courses during their graduate work as needed.  These additional prerequisites will be determined on an individual basis.

Software is ubiquitous in all modern technology, and software engineers with skills and knowledge of software design, development and management are a valuable resource, and very well-sought after.

Software Engineering Curriculum

Prerequisites and Foundation Competencies

The MSSE degree requires students to have competencies that will allow them to pursue graduate coursework. Knowledge and/or experience in data structures, applications programming, systems analysis and design, and mathematics is required. Gaps in knowledge and experience in these areas can be remedied by following bridge courses offered in the MSSE program:

SW 0402Database Management Systems3
SW 0407Java for Programmers3

Students who are accepted conditionally into the program with certain bridge courses should complete the bridge requirement within two semesters with a grade of B or higher to satisfy the bridge requirement.  Students may take graduate level courses and bridge courses at the same time.  Bridge courses do not count for credit towards the degree.

Program Requirements

MSSE students will complete three required courses, as described below. In addition, students should select additional electives from one or more specialization areas in which they have an interest, namely computer programming, web technologies, database architecture, computer networking, and data science. Students may also take two elective courses offered in any engineering, math, or business graduate program with approval.

The program requires two capstone or thesis courses and three required core courses listed below to cover the software project management and software development life cycle of requirements gathering, analysis, design, prototyping, implementation, testing, deployment, and maintenance. Completion of a minimum of 8 three-credit courses, plus the two-semester capstone or thesis course, for a total of 30 credits, comprise the graduation requirements for the MSSE program.

To earn the Master of Science in Software Engineering, students complete the following:

Required Courses
SW 0400Software Engineering Methods3
SW 0401Software Design Methods3
SW 0420Software Testing and Maintenance3
Capstone or Thesis Option
SW 0550
SW 0551
Capstone Professional Project I
and Capstone Professional Project II 1
or SW 0560
SW 0561
Software Engineering Thesis I
and Software Engineering Thesis II
Elective Courses
Select five elective courses 215
Total Credits30

SW 0400 Software Engineering Methods3 Credits

This course explores the requirements gathering, system analysis, software design methods and prototyping of software application following the software processes required for the production of high quality software. Techniques for creating documentation and using software development tools will be presented. Students will gain experience in software project management; requirements, analysis, and design; procedural maturity; social, ethical, cultural, and safety issues in software development; interpersonal skills for management and team membership; and the software engineering discernment of systems architecture.

SW 0401 Software Design Methods3 Credits

This course is designed to introduce fundamental concepts of object orientation techniques.Through the use of case studies and project work that has the student gradually building a large design specification, students will achieve an understanding of how complex applications are designed and built.

SW 0402 Database Management Systems3 Credits

This course focuses on the steps required to build and maintain relational database infrastructure for modern n-tiered applications. It covers logical and physical design; implementation of the database; the use of the database to meet the informational needs of a software system; and the installation, operation and maintenance of the software. Specific topics include database design, SQL, interacting with the DBMS, backup and recovery of data security. Students perform a number of hands-on exercises using the Oracle Database Server running on the Microsoft Windows platform. This course serves as one of the bridge courses to the MSSE program.

SW 0404 Network Concepts3 Credits

This course covers the structure and technologies of computer networks architecture including cabling, wiring hubs, file servers, bridges, routers, and network interface cards. It discusses network software and hardware configurations and demonstrates network concepts such as configuring protocol stacks and connecting a personal computer to a network. The course examines the OSI-model, TCP/IP protocol and routing protocols. Student will be able to do subnet of TCP/IP networks.

SW 0406 Web Client Side Development I3 Credits

Attributes: ENPC Digital Journalism Production Component

This course introduces the student to developing browser applications for use on the web. Students learn client side concepts including the display of static information. The course topics include designing and authoring web pages, usability, search engine optimization, markup languages, style sheet, the client side document object model, and making web pages dynamic on the client side.

SW 0407 Java for Programmers3 Credits

This course is a study of object oriented software component design. This course introduces object oriented programming and its use in problem solving with abstract data types such as lists, linked lists, stacks, queues, graphs, and trees. This course serves as one of the bridge courses to the MSSE program.

SW 0409 Advanced Programming in Java3 Credits

This course covers advanced topic of Java programming. Topic covers multithreading, networking, nested references, design patterns, JDBC, persistence, I/O and advanced GUI such as swing. Data structure concepts such as linked list, tree and basic searching and sorting algorithms will be covered. Lab included.

SW 0410 Enterprise Java3 Credits

Prerequisite: SW 0409.

Advanced server-side Java technologies. Coverage includes state-of-the-art explorations into server-side technologies such as JDBC, Google Web Toolkit, Enterprise JavaBeans (EJB), Android, XML, etc., as time permits. Lab included.

SW 0412 Agile Software Engineering3 Credits

Prerequisite: SW 0400.

In this course, students apply in-depth techniques and experience various roles incorporated into one of the main approaches to software development which is agile methodology. It uses detailed knowledge about each of the major traditional software engineering phases to explore a more iterative approach for development of faster and more adaptable software. Proficiency in programming is expected of the students entering this course.

SW 0416 Mobile Application Development3 Credits

This project-oriented course examines the fundamental aspects of mobile computing, application architecture, and mobile application design and development. Students will learn application development on the Android platform. Students will complete a hands-on project building a prototype mobile application. Topics include user interface design and building, input and data handling, and network techniques and GPS and motion sensing. Students are expected to work on a project that produces a professional-quality mobile application. Projects will be deployed in real-world applications.

SW 0420 Software Testing and Maintenance3 Credits

Prerequisite: SW 0400.

This course will cover in-depth methods for software testing, reliability and maintenance of software. Students will learn the principles of software testing and how to apply software testing techniques to the development of quality software and how to deploy software systems, maintain, enhance and reuse software systems.

SW 0421 Software Project Management3 Credits

This course explores software project activities from conception to completion based on best practices. Topics include software systems engineering, personal/team software process management and control, and project planning and management. Through group and individual activities, students apply project management tools and techniques, and address typical problems that occur during the life cycle of the software project.

SW 0422 Visual Analytics3 Credits

In this course, students investigate visual analytics tools and techniques used to synthesize information and derive insight from massive, dynamic, ambiguous, and often conflicting data and to communicate the findings effectively for decision-making. Extensive use of case studies based on real-world events will be used to illustrate course concepts. Students will apply visual analytics techniques toward a focused research problem in a real-world application or a domain of interest.

SW 0427 Operating Systems and Programming3 Credits

This course introduces the internal operation of modern operating systems and students learn how to program on non-Window OS platform. The topics cover a brief history of operating system, the major components of modern operating systems, and the object-oriented methodology on UNIX-like platform. Various UNIX tools will be used in the course and participants study examples using object-oriented programs as well as large system integration by object-oriented methodology.

SW 0433 Introduction to Cybersecurity3 Credits

In this course, students will be given an extensive overview of the various components of Cybersecurity including software development, operating systems, databases, and networks. They will learn Cybersecurity concepts, issues, and tools that are critical in solving problems in the computing security domain. The course will use lectures, reading assignments, and interactive lab exercises to re-enforce the concepts that are introduced.

SW 0448 Server Management3 Credits

Server Management is a course designed to provide the student with the tools necessary to manage Window Server. The topics include user management, installation and configuration of web server, mail server, FTP server, LDAP and backup and other routine system and network administration.

SW 0455 Artificial Intelligence3 Credits

This course, which examines computational and theoretical accounts of human intelligence, includes knowledge representation, commonsense reasoning, planning, natural language understanding, machine learning, and deep learning.

SW 0461 Pattern Recognition3 Credits

This course introduces the student to the techniques used and capabilities of modern pattern recognition systems with an emphasis on those that can learn and improve their performance as they are used. After a short review of some necessary mathematical concepts (Probability, Stochastic Processes and Vector Spaces), the student is introduced to the problem of representing real-world problems to a system. Selected real world applications are used to show examples of some valid representations (e.g. Speech and Handwriting) to provide insight and experience in the application of recognition systems. Several important recognition engines are then described and analyzed for their effectiveness in recognition/synthesis/learning systems. The use of additional knowledge bases dealing with the problem environment is then introduced to increase system performance and overall recognition system structures are discussed.

SW 0482 Special Topics (Shell)3 Credits

This course provides an in-depth study of selected topics in software engineering of particular interest to the students and instructor. The course is counted as a major elective/specialization course. The topics and prerequisites will be announced when this course is offered.

SW 0483 Independent Study3 Credits

This course is an individualized study under the supervision of the faculty member. The course emphasizes individual creativity. Students work with a faculty mentor in studying and investigating topics of current interest in software engineering. Students may earn from one to for an independent study course.

SW 0499 Algorithms3 Credits

This course explores the development and evaluation of algorithms. This class covers classic algorithms, algorithm analysis, searching and sorting algorithms, dynamic programming, heuristics, and graphic algorithms. Algorithm efficiency and performance is a focus as the student gains experiences through problems and programming projects.

SW 0505 Advanced Database Concepts3 Credits

This course covers topics in database implementation designed to provide software engineers with a wide variety of server-side problem solving techniques. Topics include cursors, query and index optimization, advanced SQL programming, distributed databases, object-oriented databases, clustering, partitioning, and working with XML and other unstructured data. While Microsoft SQL Server is primarily used for demonstration, the topics covered are applicable to any database platform, and the different approaches of the major database vendors are frequently contrasted. Format consists of lecture and lab.

SW 0508 Data Warehouse Systems3 Credits

This course examines the tools, techniques and processes used in the design and development of data warehouses. As such we will examine how to successfully gather structure, analyze, and understand the data to be stored in the data warehouse, discuss techniques for modeling the data in the data warehouse, discuss the ETL process and describe techniques for presenting and analyzing the data in the warehouse. We will also discuss capacity planning and performance monitoring. Microsoft Analysis Services and Sybase ASIQ will be examined as approaches for implementing a data warehouse.

SW 0512 Web Development II with ASP.NET3 Credits

Prerequisite: SW 0304 or SW 0406.

This course teaches site developers how to create robust, scalable, data-driven ASP.NET Web. Students learn how to create ASP.NET applications using a text editor and the command-line tools, as well as using Visual Studio. Topics include the .NET framework, web forms, validation controls, database connectivity, web services, component development, user controls, custom server controls, and best practices, etc. At the end of the course, students are able to describe the issues involved in creating an enterprise web site, creating and publishing a web site, creating interactive content for a Web site, adding server scripting to a Web page using ASP.NET, implementing security in a Web site, and reading and writing information to a database from ASP.NET.

SW 0516 PHP/MySQL3 Credits

Prerequisite: SW 0406.

This course is an introduction to the PHP programming language. Topics include installation and configuration with the Apache http server, variables and data types, language syntax, control structures, functions, strategies and tools for handling input and generating output, error handling, sending email, manipulating dates and times, string manipulation and regular expressions, SQL and MySQL database access. The course also covers advanced topics such as MVC model-based web application development using framework and packages from the PHP Extension and Application Repository (PEAR). At the conclusion of the course, students are able to design and implement scalable data-driven web applications.

SW 0518 Data Mining and Business Intelligence3 Credits

This course examines business intelligence concepts, methods and processes used to improve data-centric business decision support solutions with a particular focus on data mining techniques. We will first examine the principles and practices of gathering and retrieving large volumes of data for analysis and synthesis. Next we will examine analytical techniques for extracting information from large data sets. In particular, the course examines the following data mining techniques: classification, estimation, prediction, and clustering. During the course we will also discuss knowledge management, how organizations manage and use the knowledge that they acquire, and presentation of data.

SW 0521 Information Visualization3 Credits

Topics covered include graphics programming, information visualization general principles, visualization techniques for 1-dimensional, 2-dimensional, and N-dimensional information, graph visualization, information visualization lifecycle: representation, presentation, interaction, perception and interpretation, as well as theories behind information visualization, and focus+context techniques. This course also includes the implementation of techniques presented in lecture. Students are encouraged to devise new techniques, implement them, and determine their effectiveness. Students will be required to complete in-depth assignments, read, summarize, and present recent journal papers from the information visualization literature, and prepare term papers with regard to an information visualization research topic. Students will also be required to specify, design, implement, and document a semester-long software project related to information visualization.

SW 0530 Introduction to Information Security3 Credits

This course gives students a fundamental understanding of current Social Engineering methods in the Information Security arena. Deception and human behavior is exploited to gain valuable information, which is very relevant to today's growing security concerns. This course is another key class in the Information Security track in the MSSE program and builds upon the weaknesses in the human factor. Areas of discussion will be methods, current trends, and most of all countermeasures. Instruction includes lectures and discussion assignments which involve analyzing current work places and social gatherings coupled with scenarios of exploitation.

SW 0531 Applications and Data Security3 Credits

This course is structured around enterprise and web applications and the data security associated with these applications. It encompasses the encryption schemes of transmission to execution of code and complete flight of an execution. Common countermeasure and best business practices that help ensure a solid security understanding are the objectives of the course.

SW 0550 Capstone Professional Project I3 Credits

Prerequisite: SW 0400.

In these two semester capstone courses, students form teams, perform a technical study, and design software systems based on either their customer's requirements, develop, test, and deploy software systems. The results of these projects provide a library of case studies, designs, and software development techniques, and project management skills that are of general interest to local information technology professionals. A capstone prospectus, approved by your advisor, must be submitted to and accepted by the director of the program prior to starting the capstone sequence.

SW 0551 Capstone Professional Project II3 Credits

Prerequisite: SW 0550.

In these two semester capstone courses, students form teams, perform a technical study, and design software systems based on either their customer's requirements, develop, test, and deploy software systems. The results of these projects provide a library of case studies, designs, and software development techniques, and project management skills that are of general interest to local information technology professionals. A capstone prospectus, approved by your advisor, must be submitted to and accepted by the director of the program prior to starting the capstone sequence.

SW 0560 Software Engineering Thesis I3 Credits

Prerequisites: SW 0401 and completion of at least 18 credits of MSSE courses.

In these two semester thesis courses, a student will work on individual research project that a student should formulate as a problem, solve it under the guidance of a faculty member and communicate the results. Work involves literature search, writing a proposal, analysis and/or implementation with critical thinking, and writing convincingly. The student must also submit a final paper for possible publication in a refereed journal appropriate to the topic.

SW 0561 Software Engineering Thesis II3 Credits

Prerequisite: SW 0560.

In these two semester thesis courses, a student will work on individual research project that a student should formulate as a problem, solve it under the guidance of a faculty member and communicate the results. Work involves literature search, writing a proposal, analysis and/or implementation with critical thinking, and writing convincingly. The student must also submit a final paper for possible publication in a refereed journal appropriate to the topic.

SW 0596 Network Routing and Switching3 Credits

The course presents concepts and develops skills needed in designing, implementing, and troubleshooting local and wide-area networks. Students design and configure LAN, WAN using routers/switches and learn the components of wireless networks, and how to configure and troubleshoot a network and optimize its performance. The course provides also numerous lab opportunities to configure and troubleshoot networks with Cisco routers and switches.

SW 0599 Information Security Measures and Countermeasures3 Credits

This course covers current information security practices and countermeasures put in place to safeguard against security breaches. The course reviews Internet infrastructures such as firewalls, IDS systems, and honey pots. Additional areas include risk analysis, computer-use policies, physical security, Internet/intranet security, Malware, firewall infrastructure, and current information security issues.