Degree Requirements

The BS ACS Software Engineering concentration can be successfully completed within the normal 120 semester hour degree at GMU. In addition to Mason Core requirements including humanities, natural sciences, and social sciences, the BS ACS Software Engineering concentration requires foundation, core, and elective courses as described here. These course requirements provide students with expertise in programming, systems, software requirements and modeling, formal methods and analysis of algorithms. At least 45 semester hours of the degree requirements must be at the 300 level or above.

Required courses for all ACS concentrations  

ACS Foundation Courses: CS 110, 112, 211; MATH 113, 114, 125, 203

ACS Core: CS 262, 310, 321, 330, 367, 471, 483

One CS course numbered above 400.


Software Engineering Concentration courses

All BS ACS majors must complete at least 36 additional credits to meet the course requirements of Software Engineering concentration.

Foundation: STAT 344, CS 306

SWE Core: SWE 205, 301, 401, 332, 437

SWE Related: 15 credits from: SWE 432, SWE 443, CS 463, CS 455, CS 450, CS 468, CS 465, CS 475, CS 491

Cross Disciplinary: ENGH 388 and one of PSYC 333, COMM 320, COMM 335


Prerequisite Chart


Degree Tracker

Sample Schedule

One example of how the ACS in Software Engineering major may be achieved within eight semesters can be found in the brochure.


A Closer Look at SWE Courses

The following courses have been created specifically for this program.

SWE 205 Software Usability Analysis and Design
Explores concepts for objectively and quantitatively assessing the usability of software user interfaces.

SWE 301 Internship Preparation
SWE 401 Internship Reflection
Preparation for, then reflection on, the Internship Educational Experience.

SWE 332 Object-Oriented Software Design & Implementation
In-depth study of software design and implementation using a modern, object-oriented language with support for graphical user interfaces and complex data structures.

SWE 432 Design and Implementation of Software for the Web
This course teaches students how to develop software for web applications.

SWE 437 Software Testing and Maintenance
Concepts and techniques for testing and modifying software in evolving environments.

SWE 443 Software Architectures
This course teaches how to design, understand, and evaluate software systems at an architectural level of abstraction.