This is an archived copy of the 2014-15 catalog. To access the most recent version of the catalog, please visit http://bulletin.ndsu.edu.

Software Engineering

cs.ndsu.edu/

Department Head:                     Dr. Brian Slator
Graduate Coordinator:              Dr. Kenneth Magel
Graduate Committee Email:      gradinfo@cs.ndsu.edu
Department Location:                258 QBB (formerly IACC)
Telephone Number:                   (701) 231-8562
Degrees Offered :                       Ph.D., M.S., M.S.E., Certificate
Application Deadline:                M.S. and Ph.D. --  March 1 for Fall; October 1 for Spring; No Summer Applications
                                                     M.S.E – December 10 for Spring; July 1 for Fall
Test Requirements:                   GRE (M.S. and Ph.D. only)
English Proficiency                   TOEFL ibT 79
Requirements:                            IELTS 6.5


Program Description

Software Engineering 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, design, 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.

The Department of Computer Science offers a Graduate Certificate, M.S.E., M.S., and Ph.D. in Software Engineering. The programs are designed to appeal to both full-time students and software professionals who are employed and wish to pursue a program part time. Minimum qualifications for admission are the same as those specified for advanced degrees in Computer Science. For additional information, see www.cs.ndsu.nodak.edu or contact the Director of Software Engineering (701) 231-8562 . For a complete listing of courses and faculty, please refer to the Computer Science section.

Admissions Requirements

In addition to the Graduate School requirements , applicants must fulfill the program requirements listed below:

Certificate

  1. B.S. or equivalent degree from an accredited university;
  2. Twelve semester hours or equivalent of Computer Science or Software Engineering courses from an accredited university, or at least one year full-time professional software engineering experience;
  3. Programming skill in a modern higher level programming language, preferably C++, C#, or Java.

Master of Software Engineering

  1. Bachelor’s level (B.S., B.A., Sc.B., etc) degree from an accredited institution
  2. Skill in a higher level programming language such as Java, C# or C++. You should be able to design and implement a program consisting of several interacting classes that might total approximately 100 executable statements
  3. International Students require a minimum TOEFL ibT of 79 or an IELTS of 6.
  4. MSE students are not eligible for Assistantships in the Computer Science Department

Master of Science

  1. Four year or longer B.S. or equivalent degree from an accredited university with at least a 3.0 grade point average on a 4.0 scale. Full-time professional experience may offset this GPA requirement at the rate of 0.1 in GPA for each eighteen months of such experience to a maximum of 0.2 in GPA;
  2. Eighteen semester hours or equivalent in Computer Science from an accredited institution, or at least two years of full-time professional software engineering experience;
  3. Programming skill with one modern higher level programming language, preferably C++, C#, or Java.

Doctor of Philosophy

  1. Four year or longer B.S. or equivalent degree from an accredited university with at least a 3.25 grade point average on a 4.0 scale. Significant full-time software development professional experience may offset this GPA requirement at the rate of 0.1 in GPA for each two years of such experience to a maximum of 0.3 in GPA;  If the applicant has an M.S. or equivalent degree from an accredited university, the grade point average in that degree should be at least 3.35 on a 4.0 scale.
  2. Eighteen semester hours or equivalent in Computer Science from an accredited institution, or at least three years of full-time professional software engineering experience;
  3. Programming skill in at least one higher level programming language, preferably C++, C#, or Java.

Graduate Certificate

  • Requires 10 semester credit hours consisting of
    CSCI 713Software Development Processes3
    Select two of the following:6
    Software Project Planning and Estimation
    Software Requirements Definition and Analysis
    Software Design
    Software Construction
    Software Testing and Debugging
    CSCI 790Graduate Seminar ((in appropriate area as approved by the student's adviser) Examples include:Database Systems, Extreme Programming, Formal Methods in Software Engineering, Intelligent Agents)1
    An extensive project of approximately one third of a semester incorporated into whichever of the above courses the student and her (his) adviser selected. The project may be job related. This project serves as the capstone experience for the student.
    Total Credits10

Sample Certificate Combinations:

Software Design:

CSCI 713Software Development Processes3
CSCI 715Software Requirements Definition and Analysis3
CSCI 716Software Design (+ Seminar with project)3

Software Testing:

CSCI 713Software Development Processes3
CSCI 714Software Project Planning and Estimation3
CSCI 718Software Testing and Debugging (+ Seminar with project)3

Software Project Management:

CSCI 713Software Development Processes3
CSCI 714Software Project Planning and Estimation3
CSCI 715Software Requirements Definition and Analysis (+ Seminar with project)3

Software Construction:

CSCI 713Software Development Processes3
CSCI 716Software Design (+ Seminar with project)3
CSCI 717Software Construction (+ Seminar with project)3

Other arrangements could be done as well.


Master of Software Engineering

Offered through on-campus classes or through Distance and Continuing Education classes. Please note that F-1 and J-1 non-immigrant students are only allowed to take one online course per semester

Completion of these twelve courses with grades of B or better and 2 semester sequence of CSCI 771 and CSCI 772 Software Development Project. CSci 745 or CSCI 783 may be substituted for any course numbered above 719.
CSCI 713Software Development Processes3
CSCI 714Software Project Planning and Estimation3
CSCI 715Software Requirements Definition and Analysis3
CSCI 716Software Design3
CSCI 717Software Construction3
CSCI 718Software Testing and Debugging3
CSCI 724Survey of Artificial Intelligence3
CSCI 765Introduction To Database Systems3
CSCI 771Software Development Project I3
CSCI 772Software Development Project II3
CSCI 846Development of Distributed Systems3
CSCI 847Software Complexity Metrics3
Total Credits36
  • Successful completion of an Internet-based sixteen hour module on Computer Ethics. This module will be required for students starting the program in fall, 2012 or later.
  • Maximum of four courses may be attempted in any one semester. If a course is started in a particular semester, it must be dropped or completed within that semester.

Master of Science in Software Engineering

  • Program Requirements (33 semester hours)
  • The Software Engineering Core (12 credits): Students must complete the core within five semesters of their entering the program.
    Core Courses12
    Software Development Processes
    Introduction To Database Systems
    Software Design
    Software Requirements Definition and Analysis
    Software Testing and Debugging
    Six credits (not part of the core) from: 6
    Software Project Planning and Estimation
    Software Construction
    Software Testing and Debugging
    Formal Methods for Software Development
    Development of Distributed Systems
    Software Complexity Metrics
    Nine credits of other Computer Science or Computer Engineering courses selected with and approved by the student's graduate advisory committee.9
    CSCI 790Graduate Seminar ( in software engineering areas (1 credit each). These seminars must be approved in advance by the student's graduate adviser (a form is provided for this purpose).)3
    CSCI 797Master's Paper3
    Total Credits33
  • 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.
  • 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.

Ph.D. in Software Engineering

Program Requirements (90 semester hours)

  • All M.S. course requirements or their equivalent in transfer or examination credits.
  • Satisfactory completion of the Ph.D. Qualifying Examination. This examination will consist of integrative questions on the four core courses described under the Master of Science degree. Students must complete this requirement within their first seven semesters of participation in the program.
  • Fifteen hours of course work chosen from the courses listed below and not duplicating any items used to satisfy requirements for the Master of Science degree:
    Select four of the following:
    Software Project Planning and Estimation
    Software Requirements Definition and Analysis
    Software Design
    Software Construction
    Software Testing and Debugging
    Formal Methods for Software Development
    Development of Distributed Systems
    Software Complexity Metrics
  • Nine hours of additional course work in Computer Science or ECE-Computer Engineering chosen by the student and adviser and approved by the Student's Supervisory Committee.
  • Thirty-six semester credit hours for research, preparation, and defense of a dissertation in Software Engineering. These hours will be graded on a Satisfactory/Unsatisfactory basis.

Additional course work requirements:

  1. A student holding a Master of Science degree may use 30 credits of previously completed coursework toward the 90 total credits required for the doctoral degree. OR
  2. Up to 9 previously earned credits with a grade of B or better may be used toward the 90 total credits required for the doctoral degree.
  3. The 90 credits may include a maximum of 15 credits of independent study and seminar hours. Seminars are limited to four of those credits.

The student's superdvisory committee, the department chair, and the graduate dean all must approve the course work on the plan of study at least two semesters before graduation

Anne Denton, Ph.D.
University of Mainz, 1996
Research Interests:  Data Mining, Bioinformatics, Scientific Informatics, Databases, Geospatial Data, Cloud Computing

Hyunsook Do, Ph.D.
University of Nebraska, 2007
Research Interests: Software Engineering, Software Testing, Maintenance, and Empirical Methodologies.

Wei Jin, Ph.D.
State University of New York at Buffalo, 2008
Research Interests: Data Mining and Knowledge Discovery (particularly text and web mining), Information Retrieval and Extraction, Machine Learning, and Bioinformatics

Dean Knudson, Ph.D.
Northwestern University, 1972
Research Interests: Software Engineering, International Capstone Programs, University/Industry Relationships

Jun Kong, Ph.D.
University of Texas, Dallas, 2005
Research Interests: Human Computer Interaction, Mobile Computing, Software Engineering

Juan (Jen) Li, Ph.D.
University of British Columbia, 2008
Research Interests: Large-scale Distributed System (including P2P and Cloud Computing, Distributed Search, Routing Algorithms); Semantic Web Technologies; Social Networks; Information Retrieval and Knowledge Discovery

Simone Ludwig, Ph.D.
Brunel University, 2004
Research Interests: Swarm Intelligence, Evolutionary Computation, Fuzzy Reasoning, Service-oriented Computing, and Cloud Computing

Kenneth Magel, Ph.D.
Brown University, 1977
Research Interests: Software Engineering, Human-Computer Interfaces, Software Complexity, and Software Design

Kendall Nygard, Ph.D.
Virginia Polytechnic Institute and State University, 1978
Research Interests: Data Science, Optimization Modeling, Smart Grid, Sensor Networks, Agents, Artificial Intelligence

William Perrizo, Ph.D.
University of Minnesota, 1972
Research Interests: Data Mining, Distributed Database Systems, Centralized Database Systems, Data Security, Bioinformatics

Saeed Salem, Ph.D.
Rensselaer Polytechnic Institute, 2009
Research Interests: Bio-Informatics and Data Mining

Brian Slator, Ph.D.
New Mexico State University, 1988
Research Interests: Artificial Intelligence, Educational Media

Vasant Ubhaya, Ph.D.
University of California-Berkeley, 1971
Research Interests: Algorithm Analysis, Approximation and Optimization

Gursimran Walia, Ph.D.
Mississippi State University, 2009
Research Interests: Empirical Software Engineering, Software Errors; Software Inspections and Software Quality Improvement, Requirements Engineering, Human Cognition in Software Engineering, Managing and Estimating Software Quality, Information Assurance, Software Engineering for Computer Security.

Changhui Yan, Ph.D.
Iowa State University, 2005
Research Interests: Bioinformatics, Computational Biology, Machine Learning and Data Mining

Emeritus

Robert Gammill, Ph.D.
Massachusetts Institute of Technology