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 101, 105, 112, 211; MATH 113, 114, 125, 203

ACS Core: ECE 301, CS 262, 310, 321, 330, 367, 465, 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 471, CS 475

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


Prerequisite Chart


Sample Schedule

Below is one example of how the ACS in Software Engineering major may be achieved within eight semesters.

FIRST SEMESTER (16 CREDITS)

CS 101 Preview of Computer Science (2)
CS 112 Introduction to Programming (4)
MATH 113 Analytical Geometry & Calculus (4)
ENGH 101 Composition (3)
Western Civilization Elective (3)

SECOND SEMESTER (14 CREDITS)

CS 105 Computer Ethics and Society (1)
CS 211 Object-Oriented Programming (3)
MATH 114 Analytical Geometry & Calculus II (4)
MATH 125 Discrete Mathematics I (3)
COMM 100 Public Speaking (3)

THIRD SEMESTER (15 CREDITS)

CS 262 Low-Level Programming (2)
CS 310 Data Structures (3)
MATH 203 Linear Algebra (3)
ECE 301 Digital Electronics (3)
Natural Science Elective (4)

FOURTH SEMESTER (15 CREDITS)

CS 330 Formal Methods & Models (3)
CS 367 Computer Systems and Programming (3)
SWE 205 Software Usability Design & Analysis (3)
Natural Science Elective (3)
ENGH 302 Advanced Composition (3)

FIFTH SEMESTER (15 CREDITS)

CS/SWE 332 OO Software Design & Implementation (3)
CS/SWE 321 Software Engineering (3)
SWE Cross Disciplinary Elective (3)
Literature Elective (3)Social and Behavioral Science Elective (3)


SIXTH SEMESTER (15 CREDITS)

SWE 437 Software Testing and Maintenance (3)
STAT 344 Prob/Stat for Engrs & Scientists (3)
SWE 301 Internship Preparation (0)
SWE Related elective (3)
Arts Elective (3)
Global Understanding Elective (3)

SEVENTH SEMESTER (15 CREDITS)

SWE Related Elective (3)
SWE Related Elective (3)
CS 465 Computer Systems Architecture (3)
ENGH 388 Professional / Technical Writing (3)
Elective (2)

EIGHTH SEMESTER (16 CREDITS)

SWE 401 Internship Reflection (1)
SWE Related Elective (3)
SWE Related Elective (3)
CS 483 Analysis of Algorithms (3)
CS 306 Synth Ethics & Law for Computing Professional (3)
CS Senior Elective (3)


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.