The MS provides specialized knowledge and experience in developing and modifying large, complex software systems. It emphasizes technical and management aspects of software engineering development. Software engineering is an established discipline based on requirements analysis, design, construction, testing, maintenance, economics, and management issues. A pragmatic approach to problem solving is the hallmark of a software engineer. Software engineers are concerned with the theoretical and practical aspects of technology, cost, and social impact of software systems that are effective and efficient.

Software engineers are in demand in every segment of society affected by computing technology. Potential employers include all software vendors and Internet-based companies, electronic business organizations, businesses that build and sell computers, research and development laboratories, aerospace companies, government contractors, banks, insurance companies, and manufacturing organizations. The master's program is concerned with technical and managerial issues, but primary emphasis is placed on the technical aspects of building and modifying high-quality software systems.

Successful applicants have a broad variety of undergraduate backgrounds, including computer science, science and mathematics, engineering, liberal arts, and business. Many students are working or have worked in the software industry.

The program is revised on a regular basis to stay abreast of the latest developments in information technology (IT). The program introduced a major revision for fall 2005; recent additions include software construction with the object-oriented Java programming language, requirements analysis with use cases and the Unified Modeling Language (UML), object-oriented software design with the UML, graphical user interface design, software engineering for the web, software project management using the spiral life cycle model and the Capability Maturity Model, software architecture, design patterns, system testing and testing of object-oriented components, and formal methods using the Object Constraint Language. All classes are scheduled in the late afternoon and early evening to accommodate employed students.

Admissions

Students entering the MS program must have coursework or equivalent knowledge in the following areas: introductory programming in any language; knowledge of an object-oriented programming language such as Java, C++, or C#; data structures and algorithms; machine organization (such as those given in computer system architecture or assembly language courses); and topics in discrete mathematics, including sets, relations, functions, trees, graphs, and inductive proofs.

The level of knowledge required in these areas is equivalent to that taught in undergraduate courses and may be achieved by taking the following foundation courses from Mason:

INFS 501Discrete and Logical Structures for Information Systems3
INFS 515Computer Organization Course and Operating Systems3
INFS 519Program Design and Data Structures3
SWE 510Object-Oriented Programming in Java3
Total Credits12

In addition, it is desirable, though not required, that entering students have at least one year of work experience in building or modifying software systems.

Prospective students are asked to complete a department self-evaluation form, indicating whether previously taken courses may satisfy these foundation requirements. On acceptance, students are advised of the necessary foundation courses to be satisfactorily completed to meet this requirement. Foundation courses do not earn credit toward the MS degree; however, they must be successfully completed with a grade of B or better before enrolling in the core curriculum.

Students may test out to indicate they have the requisite knowledge for those foundation courses. The exams are given before classes begin in January and August, and can only be taken once. Registration is not required; students need only be present at the date, time, and location specified and bring some form of photographic identification. Detailed information is available on the department web site. Students failing any one of the exams must take the equivalent course before enrolling in the core curriculum courses.

Application Requirements

In addition to general admission requirements of the university, each applicant to the MS program must hold a four-year (120-credit) baccalaureate degree in an appropriate discipline from an accredited institution and have earned a GPA of 3.00 or better in the last 60 credits of undergraduate study. Other requirements are as follows:

  • Provide a resume and a one- to two-page statement of educational and work experience in the computing field that includes a statement of career goals in software engineering.
  • Complete the self-evaluation section of the online application. This information is used by the admissions committee to assess an applicant's academic preparation for the MS program. Students with some deficiencies in preparation may be admitted provisionally pending completion of foundation courses required for the program. 
  • Submit the appropriate application with two letters of recommendation from people directly knowledgeable of the applicant's professional and academic competence.
  • The GRE is only required for those who have not earned a Bachelor's degree from a US Institution.
  • International students must submit their English Proficiency scores.

Acceptance into the MS program is based on an overall assessment of the applicant's ability to complete the program of study satisfactorily. Well-qualified students with minor deficiencies may be admitted to the program in provisional status, with specified course work to be completed within a specified time.

Policies

Program Requirements

In addition to the general requirements of the university, the MS in Software Engineering requires a minimum of 30 graduate credits. The coursework is divided into three categories: a breadth requirement of 12 credits of core courses, a depth requirement of 9 credits of emphasis courses, and 9 credits of elective courses.

Advising

The department holds orientation meetings each January and August to advise incoming and continuing students. Members of the faculty are present to answer questions and offer advice concerning programs of study. Detailed information is available on the department web site.

The department also provides an advising function to students, as outlined in the student advising form available from the department. Each student is assigned a faculty advisor with whom to confer on matters related to degree requirements. A plan of study form for the MS degree should be completed and submitted by the student soon after admission; this plan serves as a guide for the student.

Banner Code: VS-MS-SWE

Degree Requirements

Total credits: 30

Core Courses

SWE 619Object-Oriented Software Specification and Construction3
SWE 621Software Modeling and Architectural Design3
SWE 622Distributed Software Engineering3
SWE 637Software Testing3
Total Credits12

Emphasis Courses

Students may choose an emphasis by taking three courses from one of the available emphasis areas. With permission from the advisor, a student may choose to not take an emphasis. 

Select an emphasis by taking three courses from one of the following areas:9
Software Design
Secure Software Engineering
Software Management
Web Applications Design and Development
Total Credits9

Software Design

SWE 626Software Project Laboratory3
SWE 632User Interface Design and Development3
SWE 681Secure Software Design and Programming3
SWE 721Reusable Software Architectures3
SWE 722Service Oriented Architecture3
SWE 727Quality of Service for Software Architectures3
SWE 760Software Analysis and Design of Real-Time Systems3

Secure Software Engineering

ISA 562Information Security Theory and Practice3
SWE 642Software Engineering for the World Wide Web3
SWE 681Secure Software Design and Programming3
SWE 737Advanced Software Testing3
ISA 673Operating Systems Security3

Software Management

OR 540Management Science3
SWE 620Software Requirements Analysis and Specification3
SWE 625Software Project Management3
SWE 626Software Project Laboratory3
ISA 650Security Policy3

Web Applications Design and Development

INFS 614Database Management 13
or CS 550 Database Systems
SWE 632User Interface Design and Development3
SWE 642Software Engineering for the World Wide Web3
SWE 645Component-Based Software Development3
SWE 722Service Oriented Architecture3
SWE 737Advanced Software Testing3
1

Note: Credit will not be given for both INFS 614 Database Management and CS 550 Database Systems

Electives

Students may select the remaining courses from the list of approved elective courses, including other emphasis areas and courses from other MS programs in the department and the Volgenau School. Students may choose other graduate electives with the consent of their faculty advisor and the graduate coordinator. Students, with the consent of a faculty sponsor and faculty advisor, may also elect courses in individualized study, special topics, or a 6-credit thesis, which is primarily intended for students planning to pursue a PhD in Information Technology with a concentration in Software Engineering. 

Select 9 credits from the list of approved elective courses or from the following:9
Special Topics in Software Engineering
Advanced Topics in Software Engineering
Directed Readings in Software Engineering
Research Project
Thesis
Total Credits9

Approved Electives

Below is the list of approved electives organized by academic program. Students should note that a maximum of two 500-level courses are allowed as electives. Courses not on this list may only be taken with explicit signed permission from the MS-SWE advisor.

Information Systems (INFS)

INFS 612Principles and Practices of Communication Networks3
INFS 614Database Management3
INFS 623Web Search Engines and Recommender Systems3
INFS 640Introduction to Electronic Commerce3
INFS 697Topics in Information Systems1-6
INFS 740Database Programming for the World Wide Web3
INFS 760Advanced Database Management3
INFS 770Knowledge Management for E-Business3
INFS 772Intelligent Agents and the Semantic Web3
INFS 774Enterprise Architecture3
INFS 797Advanced Topics in Information Systems1-6

Information Security and Assurance (ISA)

ISA 562Information Security Theory and Practice3
ISA 564Security Laboratory3
ISA 650Security Policy3
ISA 652Security Audit and Compliance Testing3
ISA 656Network Security3
ISA 673Operating Systems Security3
ISA 681Secure Software Design3
ISA 697Topics in Information Security1-6
ISA 763Security Protocol Analysis3
ISA 764Security Experimentation3
ISA 785Research in Digital Forensics3
ISA 797Advanced Topics in Information Security3

Software Engineering (SWE)

SWE 620Software Requirements Analysis and Specification3
SWE 625Software Project Management3
SWE 626Software Project Laboratory3
SWE 631Software Design Patterns3
SWE 632User Interface Design and Development3
SWE 642Software Engineering for the World Wide Web3
SWE 645Component-Based Software Development3
SWE 681Secure Software Design and Programming3
SWE 699Special Topics in Software Engineering3
SWE 721Reusable Software Architectures3
SWE 727Quality of Service for Software Architectures3
SWE 737Advanced Software Testing3
SWE 760Software Analysis and Design of Real-Time Systems3
SWE 763Software Engineering Experimentation3
SWE 795Advanced Topics in Software Engineering3
SWE 796Directed Readings in Software Engineering3
SWE 798Research Project3
SWE 799Thesis1-6

Computer Science (CS)

CS 531Fundamentals of Systems Programming3
CS 540Language Processors3
CS 550Database Systems3
CS 555Computer Communications and Networking3
CS 571Operating Systems3
CS 580Introduction to Artificial Intelligence3
CS 583Analysis of Algorithms3
CS 584Theory and Applications of Data Mining3
CS 611Computational Methods for Genomics3
CS 630Advanced Algorithms3
CS 635Foundations of Parallel Computation3
CS 640Advanced Compilers3
CS 650Advanced Database Management3
CS 657Mining Massive Datasets with MapReduce3
CS 662Computer Graphics Game Technologies3
CS 672Computer System Performance Evaluation3
CS 673Multimedia Computing and Systems3
CS 674Data Mining on Multimedia Data3
CS 681Knowledge Engineering3
CS 682Computer Vision3
CS 683Parallel Algorithms3
CS 684Graph Algorithms3
CS 685Autonomous Robotics3
CS 686Image Processing and Applications3
CS 687Advanced Artificial Intelligence3
CS 688Pattern Recognition3
CS 689Planning Motions of Robots and Molecules3
CS 700Quantitative Methods and Experimental Design in Computer Science3
CS 706Concurrent Software Systems3
CS 752Interactive Graphics Software3
CS 755Advanced Computer Networks3
CS 756Performance Analysis of Computer Networks3
CS 773Real-Time Systems Design and Development3
CS 777Human-Computer Intelligent Interaction3
CS 779Topics in Resilient and Secure Computer Systems3
CS 782Machine Learning3
CS 787Decision Guidance Systems3
CS 795Advanced Topics in CS3

Electrical and Computer Engineering (ECE)

ECE 511Microprocessors3
ECE 521Modern Systems Theory3
ECE 528Introduction to Random Processes in Electrical and Computer Engineering3
ECE 535Digital Signal Processing3
ECE 537Introduction to Digital Image Processing (DIP)3
ECE 542Computer Network Architectures and Protocols3
ECE 545Digital System Design with VHDL3
ECE 548Sequential Machine Theory3
ECE 584Semiconductor Device Fundamentals3
ECE 586Digital Integrated Circuits3
ECE 611Advanced Microprocessors3
ECE 612Real-Time Embedded Systems3
ECE 620Optimal Control Theory3
ECE 621Systems Identification3
ECE 624Control Systems3
ECE 630Statistical Communication Theory3
ECE 633Coding Theory3
ECE 635Adaptive Signal Processing3
ECE 641Computer System Architecture3
ECE 642Design and Analysis of Computer Communication Networks3
ECE 643Network Switching and Routing3
ECE 645Computer Arithmetic3
ECE 646Cryptography and Computer Network Security3
ECE 650Robotics3
ECE 680Physical VLSI Design3
ECE 681VLSI Design for ASICs3
ECE 732Mobile Communication Systems3
ECE 741Wireless Networks3
ECE 746Advanced Applied Cryptography3

Operations Research (OR)

OR 540Management Science3
OR 541Operations Research: Deterministic Models3
OR 542Operations Research: Stochastic Models3
OR 635Discrete System Simulation3
OR 640Global Optimization and Computational Intelligence3
OR 641Linear Programming3
OR 642Integer Programming3
OR 643Network Modeling3
OR 644Nonlinear Programming3
OR 645Stochastic Processes3
OR 647Queuing Theory3
OR 681Decision and Risk Analysis3
OR 690Optimization of Supply Chains3

Psychology (PSYC)

PSYC 734Seminar in Human Factors and Applied Cognition3

Statistics (STAT)

STAT 544Applied Probability3
STAT 554Applied Statistics I3
STAT 652Statistical Inference3
STAT 655Analysis of Variance3
STAT 656Regression Analysis3
STAT 662Multivariate Statistical Methods3
STAT 663Statistical Graphics and Data Exploration I3
STAT 674Survey Sampling II3

Systems Engineering (SYST)

SYST 542Decision Support Systems Engineering3
SYST 560Introduction to Air Traffic Control3
SYST 573Decision and Risk Analysis3
SYST 611System Methodology and Modeling3
SYST 620Discrete Event Systems3
SYST 659Topics in Systems Engineering3
SYST 660Air Transportation Systems Modeling3
SYST 671Judgment and Choice Processing and Decision Making3
SYST 680Principles of Command, Control, Communications, Computing, and Intelligence (C4I)3
SYST 683Modeling, Simulation, and Gaming3

Applied Computer Science, BS/Software Engineering, Accelerated MS

Overview

Highly-qualified students in the Applied Computer Science, BS have the option of obtaining an accelerated Software Engineering, MS. See AP.6.7 Bachelor's/Accelerated Master's Degrees.

Students in an accelerated degree program must fulfill all university requirements for the master's degree. For policies governing all graduate degrees, see AP.6 Graduate Policies.

Admission Requirements

Students in the Applied Computer Science, BS program may apply to this option if they have earned 90 undergraduate credits with an overall GPA of at least 3.30.  Students must have successfully completed:

CS 310Data Structures3
CS 330Formal Methods and Models3
CS 367Computer Systems and Programming4
Total Credits10

Accelerated Option Requirements

Students must complete all credits that satisfy requirements for the BS and MS programs, with 6 credits overlap.

Students register for two 500-level computer science core courses (6 credits) in place of the corresponding 400-level computer science courses, as part of the undergraduate degree requirements. Specifically, students must take:

CS 583Analysis of Algorithms3
Select one of the following:3
Language Processors
Database Systems
Computer Graphics
Computer Communications and Networking
Operating Systems
Introduction to Artificial Intelligence
Theory and Applications of Data Mining
Total Credits6

Note:

Students complete all Software Engineering, MS core courses and apply the two courses from the above list toward the elective requirements.

Degree Conferral

Students must apply the semester before they expect to complete the BS requirements to have the BS degree conferred. In addition, at the beginning of the student's final undergraduate semester, students must complete a Bachelor's/Accelerated Master's Transition form that is submitted to the Office of the University Registrar and the VSE Graduate Admissions Office. At the completion of MS requirements, a master's degree is conferred.

Computer Science, BS/Software Engineering, Accelerated MS

Overview

Highly-qualified students in the Computer Science, BS have the option of obtaining an accelerated Software Engineering, MS.

For more detailed information, see AP.6.7 Bachelor's/Accelerated Master's Degrees. For policies governing all graduate degrees, see AP.6 Graduate Policies.

Admission Requirements

Students in the Computer Science, BS program may apply to this option if they have earned 90 undergraduate credits with an overall GPA of at least 3.30. Students must have successfully completed CS 310 Data Structures, CS 330 Formal Methods and Models and CS 367 Computer Systems and Programming.

Accelerated Option Requirements

Students must complete all requirements for the BS and MS programs, with 6 credits overlap. Students register for 6 credits of CS 500-level basic courses in place of the corresponding CS 400-level courses required for the undergraduate degree requirements. Specifically, students must register for two of the following courses in place of the corresponding 400-level courses:

CS 540Language Processors3
CS 550Database Systems3
CS 551Computer Graphics3
CS 555Computer Communications and Networking3
CS 571Operating Systems3
CS 580Introduction to Artificial Intelligence3
CS 583Analysis of Algorithms3
CS 584Theory and Applications of Data Mining3

Note:

Students complete all MS in Software Engineering core courses and apply the two courses from the above list toward the elective requirements.

Degree Conferral

Students must apply the semester before they expect to complete the BS requirements to have the BS degree conferred. In addition, at the beginning of the student's final undergraduate semester, students must complete a Bachelor's/Accelerated Master's Transition form that is submitted to the Office of the University Registrar and the VSE Graduate Admissions Office. At the completion of MS requirements, a master's degree is conferred.

Information Technology, BS/Software Engineering, Accelerated MS

Overview

Highly-qualified students in the Information Technology, BS have the option of obtaining an accelerated Software Engineering, MS.

For more detailed information, see AP.6.7 Bachelor's/Accelerated Master's Degrees. For policies governing all graduate degrees, see AP.6 Graduate Policies.

Admission Requirements

Students in the Information Technology, BS program may apply to this option if they have earned 90 undergraduate credits with an overall GPA of at least 3.30. Criteria for admission are identical to criteria for admission to the Software Engineering, MS Program.

Accelerated Option Requirements

Students must complete all credits that satisfy requirements for the BS and MS programs, with 6 credits overlapping with the following two courses:

CS 550Database Systems (satisfies IT 414 requirement in the BS program)3
SWE 619Object-Oriented Software Specification and Construction (satisfies as one DTP concentration course in the BS program)3

Note:

Students must complete MATH 125 Discrete Mathematics I (Mason Core) as their discrete math requirement and IT 306 Program Design and Data Structures as part of their concentration requirements in the BS program

Degree Conferral

Students must apply the semester before they expect to complete the BS requirements to have the BS degree conferred. In addition, at the beginning of the student’s final undergraduate semester, students must complete a Bachelor’s/Accelerated Master’s Transition form that is submitted to the Office of the University Registrar and the VSE Graduate Admissions Office. At the completion of MS requirements, a master’s degree is conferred.