The Master's of Science in Software Engineering degree requires completion of a total of 33 graduate credit hours (except for the thesis option, which requires 30 hours.) This course work is comprised of five required courses that form the core of the program, plus additional electives as described below.
Students may elect the course work option, the problem report option, or the thesis option. Selection of the course work option requires the student to complete eleven 3-hour courses. In the problem report option, the student carries out a 3-hour software engineering project related to their work (or an independent effort) in lieu of one formal 3-hour elective course. The thesis option requires completion of six (6) hours of research credit culminating in the publication of a thesis under the direction of a research advisor, and 24 hours of formal course work. Students electing the problem report and thesis options must begin by forming an individual graduate committee headed by a Lane Department faculty member who will serve as their research adviser. For more information see the Research link on the MSSE index page.
Program Preparatory Courses
The current catalog policy for this program states: “Students who do not hold a baccalaureate degree in software engineering, computer science, or computer engineering may be required to take a set of undergraduate courses above and beyond the minimum coursework requirements.” We have developed the following course that will be required to be taken with no credit earned toward the 33 required credit hours when accepted as provisional under the condition specified above.
- SENG 591A (SENG 500) Programming Fundamentals with Java (Odd FALL)
- PREPARATORY PROGRAM COURSE- 3 hours earned will not apply to the required 33 hours for the M.S.S.E.
- This course serves as an introduction to developing application software. It covers solving problems using the Java programming language. Topics include problem-solving, fundamentals of programming, basic algorithms and data structures, data organization, defensive programming, relational databases and creating database applications.
Program Core (Certificate) Courses (Links to Syllabus)
The first fifteen (15) credit hours of the master's in software engineering is a five-course core which is common with (and comprises most of the requirements for) the Software Engineering Certificate Program:
SENG 510: Software Project Management (every SPRING)
- Topics include: project management process, measures and metrics, project planning and estimation, risk analysis, scheduling, tracking and control.
SENG 520: Software Analysis and Design (every FALL)
- Defining the software requirements of a large and complex software product and the principles and concepts of designing the software that will implement the product are discussed.
SENG 530: Validation and Verification (every SPRING)
- Processes and methods for evaluating the correctness and quality of the software product throughout the software life cycle are discussed.
SENG 540: Software Evolution (every SUMMER)
- Topics include: Software process and CMM, software maintenance and evolution, program understanding, re-engineering software, configuration management and software tools related to these issues.
SENG 550: Object-Oriented Design (every FALL)
- Developing a software system from an object oriented perspective with C++.
Program Advanced Elective Courses
Completion of the Master's of Science in Software Engineering will require a selection of up to six additional courses chosen by the student to meet individual educational objectives. While the set of applicable existing and new courses will continue to evolve, the following have been recently offered:
Electives may be freely chosen from SENG courses or any other course that may be offered from time to time directly through the Software Engineering program. PLEASE NOTE THAT THE SEMESTER DESIGNATION MAY CHANGE AND THOSE IDENTIFIED ABOVE ARE ONLY A GUIDE TO ASSIST IN YOUR PLAN OF STUDY.
Traditional, on-campus courses taught in Morgantown may also be used to satisfy the requirements; however, use of such courses in general will need prior approval from the Software Engineering Curriculum Committee.
A limited number (up to 4) of courses taken elsewhere may be transferred into the program, and a limited number (up to 3) of 400-level (senior undergraduate) courses may be included in your program if they were not counted for another degree. All of these options require approval by the Software Engineering Committee.