banner
Undergraduates Graduates Faculty AlumniDonations

Master of Science in Software Engineering

Kenneth Magel, Software Engineering Coordinator

Brian M. Slator, Head

For questions about admission or assistantship opportunities, please contact kendall.nygard@ndsu.edu
For questions about degree requirements, please contact kenneth.magel@ndsu.edu.

Version: September, 2003

Software Engineering is the branch of computer science that is focused on the application of systematic, disciplined, and quantifiable approaches to the development, operation, and maintenance of software systems.  Inclusive of computer programming but going well beyond, Software Engineering is concerned with methodologies, techniques and tools to manage the entire software life cycle, including development of requirements, specifications, testing, maintenance, and project management.  The advent of Software Engineering is a natural result of the continuous quest for software quality and reusability and the maturing of the software development industry. 

This document describes the requirements for the Graduate Certificate in Software Engineering, the Master of Science in Software Engineering, and the Ph.D. in Software Engineering.  The online version of this document is official and available on the departmental web page (http://www.cs.ndsu.nodak.edu).

Primary Software Engineering Faculty:

Name

Email

Office

Telephone

Ken Magel

Kenneth.Magel@ndsu.edu

IACC 258 A21

(701) 231-8189

Hyunsook Do

Hyunsook.Do@ndsu.edu

IACC 258 A12

(701) 231-5856

Jun Kong

Jun.Kong@ndsu.edu

IACC 258 A9

(701) 231-8179

Gursimran Walia

Gursimran.Walia@ndsu.edu

IACC 258 A16

(701) 231-8185

Other Departmental faculty participate in the program through offering courses, serving on Advisory Committees, and pursuing related research.

The program requirements are given below, followed by the admissions requirements.  A final section describes the M.S. Comprehensive Examination and Ph.D. Qualifier Examination. Students who are on F1 or J1 visa, CSCI 765 is a web based course. Please check with the Office of International programs regarding regular and online class requirements.

Master of Science in Software Engineering
Program Requirements (33 semester hours)
1.  Software Engineering core (12 semester hours):
     a. CSCI 713:  Software Development Processes
     b. CSCI 765:  Introduction to Database Systems
     c. CSCI 716:  Software Design
     d. Either CSCI 715:  Software Requirements Definition, or CSCI 718: Software Testing and Debugging. Each student selects one of these two courses. Students must complete the core within five semesters of their entering the program.

2.   The Software Engineering Comprehensive Examination.  This examination shall include integrative questions on the four courses which make up the software engineering core (see 1 above).  The exam must be passed within the first seven semesters of their program.   Each student is allowed a maximum of two attempts to pass this examination.  Students are encouraged to complete the comprehensive examination early in their program. 

3.     Six credits (not part of the core) from:
        a.   CSCI 714: Software Project Planning and Estimation     
        b.   CSCI 715: Software Requirements Definition
        c.   CSCI 717: Software Construction
        d.   CSCI 718: Software Testing and Debugging
        e.   CSCI 747: Software Complexity Metrics
        f.    CSCI 745: Formal Methods for Software Development
        g.   CSCI 746: Development of Distributed Applications

4.      Three (thesis option) or nine credits (comprehensive paper option) of other Computer Science or Computer Engineering courses selected with and approved by the student’s graduate advisory committee.

5.      Three CSCI 790 graduate seminars in software engineering areas (1 credit each).  These seminars must be approved in advance by the student’s graduate advisor (a form is provided for this purpose).

6.      Either a thesis (9 credits) or a comprehensive study option (3 credits) paper based on a significant software development project undertaken by the student, perhaps as a member of a team, either at the University or as part of a job.  This project will require design, implementation, and testing of a significant piece of computer software.

7.      A Final Oral Examination on the paper and course work.  This examination shall include questions on design choices, implementation methods, and testing choices for the student project.