Master of Science in Software Engineering
The School of Engineering and Computing 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.
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.
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
Transition to a career in Software Engineering
Students may enter the Master of Science in Software Engineering program from any background, Motivated students who wish to expand their skill set and transition into software engineering are welcome to enroll in the program. Change is an option. Career changers may expect to close their knowledge gaps by enrolling in as many as 9 credits of work to catch up in the field. These bridge courses will be determined on an individual basis. Contact the department chair or program director to discuss your specific needs.
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.
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:
|Database Management Systems
|Java for Programmers
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.
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:
|Software Engineering Methods
|Software Design Methods
|Software Testing and Maintenance
|Capstone or Thesis Option
|Capstone Professional Project I 1
|or SWEG 6971
|Capstone Professional Project II 1
|or SWEG 6972
|Select five elective courses 2
Students have two options for a two-semester long required course sequence:
In the event that a student in one option (Capstone or Thesis) wishes to switch to the other option, the course that was taken in one option will not count toward fulfilling the graduation requirement. Capstone or thesis classes can be taken only after the completion of 9 credits at the minimum.
Electives may be chosen from courses listed under Software Engineering Graduate Certificate Programs, as well as SWEG 5900 Special Topics (Shell) and SWEG 5990 Independent Study, or any other graduate-level engineering course, under advisement of the department chair or academic advisor.
SWEG 5301 Software Engineering Methods 3 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. Undergraduate equivalent: SWEG 3301. Previously SW 0400.
SWEG 5302 Software Design Methods 3 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. Undergraduate equivalent: SWEG 3302. Previously SW 0401.
SWEG 5304 Web Development I 3 Credits
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 sheets, the client side document object model, and making web pages dynamic on the client side. Undergraduate equivalent: CPSC 2304. Previously SW 0406.
SWEG 5305 Mobile Application Development 3 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. Undergraduate equivalent: CPSC 4305. Previously SW 0416.
SWEG 5312 Agile Software Engineering 3 Credits
Prerequisite: SWEG 5301.
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. Undergraduate equivalent: SWEG 4312. Previously SW 0412.
SWEG 5315 Computational Biology 3 Credits
This course is designed to benefit computational and experimental biologists to understand the principles of analyzing biological data, building models and testing hypotheses using computer science paradigms. Students will learn how to build computational tools that are used to analyze DNA content, identify protein binding patterns, compare sequences, and discover variation within genomes. Undergraduate equivalent: CPSC 4315. Previously SW 0415.
SWEG 5317 Computational Statistics for Biomedical Sciences 3 Credits
This course will provide a practical introduction to analysis of biological and biomedical data. Basic statistical and machine learning techniques will be covered, including descriptive statistics, linear regression, non-linear regression, classification/prediction, and biomedical data visualization. Emphasis will be on how to choose appropriate data analysis models and how to assess statistical significance. This course will benefit data scientists to apply data science techniques to analyze biomedical data or clinical data. In addition, this course is also designed to benefit computational and experimental biologists to understand the principles of analyzing biological data, building models and testing hypotheses using computer science paradigms. To visualize data and carry out data analysis, students will learn R or Python, and other programming languages for statistical computing and graphics. The class will be a combination of lecture and computer lab. Undergraduate equivalent: CPSC 4317. Previously SW 0417.
SWEG 5320 Software Testing and Maintenance 3 Credits
Prerequisite: SWEG 5301.
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. Undergraduate equivalent: SWEG 4320. Previously SW 0420.
SWEG 5321 Software Project Management 3 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. Undergraduate equivalent: SWEG 4321. Previously SW 0421.
SWEG 5322 Visual Analytics 3 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. Undergraduate equivalent: CPSC 4322. Previously SW 0422.
SWEG 5333 Introduction to Cybersecurity 3 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. Undergraduate equivalent: CPSC 3333. Previously SW 0433.
SWEG 5335 Digital Forensics 3 Credits
In this course students will be given the basic notions and theory of digital forensics. For file systems and operating systems, the class covers investigative techniques and legal and technical considerations that the examiner should make. They will learn concepts, challenges, and tools in applying digital forensics examinations. The course includes, but not limited to, topics in the suggested curriculum of CDFE certification. The course will use lectures, reading assignments, and interactive lab exercises to reinforce the concepts that are introduced. Undergraduate equivalent: CPSC 4335.
SWEG 5349 Cloud Computing 3 Credits
This course will introduce the foundations of cloud computing, and familiarize students with the core concepts needed to build, deploy and manage applications in a cloud. Besides the theoretical underpinnings, emphasis will be put on practical experience of using cloud resources and services. Concepts like microservices and containers will be discussed in depth, as well as best practices for building successful cloud native applications and implications for development and operational processes. The course will be a combination of lectures and hands-on experience of a public cloud. Undergraduate equivalent: CPSC 3349. Previously SW 0449.
SWEG 5355 Artificial Intelligence 3 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. Undergraduate equivalent: CPSC 4355. Previously SW 0455.
SWEG 5357 Database Management Systems 3 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, and 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. Undergraduate equivalent: CPSC 4357. Previously SW 0402.
SWEG 5360 Machine Learning 3 Credits
This course will provide a practical introduction to machine learning applications such as face recognition, clinical diagnosis, speech recognition, natural language processing, or image classification. Topics such as regression, classification, neural networks, deep learning, and ensemble methods will be discussed. Emphasis will be on how to choose appropriate machine learning and deep learning models and how to evaluate their performance. The class will be a combination of lecture and computer lab. Undergraduate equivalent: CPSC 4360.
SWEG 5407 Java for Programmers 3 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. Previously SW 0407.
SWEG 5417 Security Management 3 Credits
This course will introduce the foundations of security program management and familiarize students with the core concepts needed to build, deploy, and manage security controls and policy to protect against today's cyber threats and regulations. Besides the theoretical underpinnings, emphasis will be put on practical experience of using security governance resources. Concepts like security policy/standards, governance, risk management, and program management will be key to ensuring effective security program management. The course will be a combination of lectures and hands-on collaborative working experience in building a security program.
SWEG 5420 Systems Security 3 Credits
This course will introduce the core concepts of detective and preventative security and the venues that threat agents use to compromise and breach systems. Students will learn to evaluate their environment for potential attacker entry points physical, virtual, and electronic, and come up with solutions to deploy to prevent intrusions. Emphasis will be placed on theoretical occurrences, but will also include practical experience of using prevention applications. Additionally, research on methodologies used by attackers will be required from outside resources (internet) which will be shared with the class as a whole. The course provides a current status of what is prevalent in the evolving cybersecurity domain.
SWEG 5427 Operating Systems and Programming 3 Credits
This course introduces the internal operations of modern operating systems. Students will learn how to program on non-Windows OS platforms. The topics cover a brief history of operating systems, the major components of modern operating systems, and the object-oriented methodology on UNIX-like platforms. Various UNIX tools will be used in the course and students will study examples using object-oriented programs as well as large system integration by object-oriented methodology. Previously SW 0427.
SWEG 5440 Vulnerability Management 3 Credits
This course will introduce the foundations of vulnerability program management and familiarize students with the core concepts needed to build, deploy, and manage vulnerability management controls that help identify risk and help prioritize remediation and determine risk to protect against today’s cyber threats. Besides the theoretical underpinnings, emphasis will be put on practical vulnerability management experience. Concepts like vulnerability discovery, reporting and assessing risk, threat modeling, and security testing are key to managing a vulnerability management program's risk posture. The course will be a combination of lectures and hands-on a collaborative working experience in building a vulnerability management program.
SWEG 5521 Information Visualization 3 Credits
Topics covered include graphics programming, information visualization general principles, visualization techniques for one-dimensional, two-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. Undergraduate equivalent: CPSC 4521. Previously SW 0521.
SWEG 5525 Human Computer Interaction 3 Credits
This course introduces students to the foundations of Human Computer Interaction and how it applies in software engineering and research settings. Students will learn how to design user interfaces based on the capabilities of computer technology and the needs of human factors. They will design user interfaces and learn how to implement a prototype from a list of informal requirements. It will also introduce students to issues related to human subject research as well as ethical implications of human computer interaction.
SWEG 5530 Introduction to Information Security 3 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 within the software engineering 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. Previously SW 0530.
SWEG 5900 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. Previously SW 0482.
SWEG 5990 Independent Study 3 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. Enrollment by permission only. Previously SW 0483.
SWEG 6404 Network Security 3 Credits
This course is intended for individuals who need an understanding of the client-server environment, with any emphasis on network security. The OSI Model, network concepts and network architecture are discussed. The components that make up a network, including cabling, wiring hubs, file servers, bridges, switches, routers, network interface cards, network operating systems, and network software and hardware configurations are discussed. Network architectural concepts, wide area networks, remote access, and segmentation are discussed. Operating systems will be discussed and demonstrated. Featured is the seven-layer OSI model, the foundation of today's communication protocols. Students will work with various security protocols and configure routers and switches with security methods. Previously SW 0404.
SWEG 6409 Advanced Programming in Java 3 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 component included. Previously SW 0409.
SWEG 6410 Enterprise Java 3 Credits
Prerequisite: SWEG 6409.
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 component included. Previously SW 0410.
SWEG 6448 Server Management 3 Credits
This is a course designed to provide the student with the tools necessary to manage Windows servers. The topics include user management, installation and configuration of web servers, mail servers, FTP servers, LDAP and backup, and other routine systems and network administration. Previously SW 0448.
SWEG 6461 Pattern Recognition 3 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. Previously SW 0461.
SWEG 6499 Algorithms 3 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. Previously SW 0499.
SWEG 6505 Advanced Database Concepts 3 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. The format consists of lecture and lab components. Previously SW 0505.
SWEG 6508 Data Warehouse Systems 3 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. Previously SW 0508.
SWEG 6512 Web Development II with ASP.NET 3 Credits
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 will be able to describe the issues involved in creating an enterprise web site, creating and publishing a web site, creating interactive content for a website, adding server scripting to a web page using ASP.NET, implementing security in a website, and reading and writing information to a database from ASP.NET. Previously SW 0512.
SWEG 6516 PHP and MySQL 3 Credits
Prerequisite: SWEG 5304.
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 will be able to design and implement scalable data-driven web applications. Previously SW 0516.
SWEG 6518 Data Mining and Business Intelligence 3 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. Students will first examine the principles and practices of gathering and retrieving large volumes of data for analysis and synthesis. Next, students 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, students will also discuss knowledge management, how organizations manage and use the knowledge that they acquire, and presentation of data. Previously SW 0518.
SWEG 6530 Applications and Data Security 3 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. Previously SW 0531.
SWEG 6596 Network Routing and Switching 3 Credits
This course presents concepts and develops skills needed in designing, implementing, and troubleshooting local and wide area networks. Students design and configure LAN and WAN using routers and switches, learn the components of wireless networks, and how to configure and troubleshoot a network and optimize its performance. The course also provides numerous lab opportunities to configure and troubleshoot networks with Cisco routers and switches. Previously SW 0596.
SWEG 6599 Ethical Hacking 3 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. Previously SW 0599.
SWEG 6961 Capstone Professional Project I 3 Credits
In this two-semester capstone sequence, 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. Previously SW 0550.
SWEG 6962 Capstone Professional Project II 3 Credits
Prerequisite: SWEG 6961.
In this two-semester capstone sequence, 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. Previously SW 0551.
SWEG 6971 Thesis I 3 Credits
Prerequisites: SWEG 5302; at least 18 credits of software engineering courses.
In this two-semester sequence of thesis courses, students will work on an individual research project that they should formulate as a problem, solve 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. Previously SW 0560.
SWEG 6972 Thesis II 3 Credits
Prerequisite: SWEG 6971.
In this two-semester sequence of thesis courses, students will work on an individual research project that they should formulate as a problem, solve 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. Previously SW 0561.