Software Engineering
This is an archived copy of the 2018-19 catalog. To access the most recent version of the catalog, please visit http://bulletin.ndsu.edu.
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 in Software Engineering, Master of Software Engineering, Master of Science in Software Engineering, 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. The Master of Software Engineering is a course work only program while the Master of Science in Software Engineering is a course work, comprehensive examination and research program. For additional information, see cs.ndsu.edu or contact the Computer Science Department at (701) 231-8562 or gradinfo@cs.ndsu.edu.
In addition to the Graduate School requirements, applicants must fulfill the program requirements listed below:
Certificate
- B.S. or equivalent degree from an educational institution of recognized standing, including 12 semester hours or equivalent of Computer Science or Software Engineering courses from an educational institution of recognized standing, or at least one year full-time professional software engineering experience;
- Programming skill in a modern higher level programming language, preferably C++, C#, or Java;
- A 2.85 (on a 4.0 scale) GPA in previous course work.
Master of Software Engineering
- Bachelor’s level (B.S., B.A., Sc.B., etc.) degree from an educational institution of recognized standing;
- Ability to design and implement a program consisting of several interacting classes that might total approximately 100 executable statements;
- International Students require a minimum TOEFL ibT of 79 or an IELTS of 6.5.
- A 3.0 (on a 4.0 scale) GPA in previous coursework. Conditional admission may be given with a 2.7 or higher GPA and professional experience.
Master of Science
- Four year or longer B.S. or equivalent degree from an educational institution of recognized standing with at least a 3.0 grade point average on a 4.0 grade point scale. Eighteen semester hours or equivalent in Computer Science from an educational institution of recognized standing, or at least 2 years of full-time professional software engineering experience. Full time professional experience may offset the GPA requirement at the rate of 0.1 in GPA for each 18 months of such experience to a maximum of 0.3 in GPA;
- Programming skill with one modern higher level programming language, preferably C++, C#, or Java.
- A 3.0 (on a 4.0 scale) GPA in all previous coursework.
Doctor of Philosophy
- Four year or longer B.S. or equivalent degree from an educational institution of recognized standing with at least a 3.25 grade point average (GPA) on a 4.0 grade point scale. Eighteen semester hours or equivalent in Computer Science from an educational institution of recognized standing, or at least 3 years of full-time professional software engineering experience. Significant full-time professional software development experience may offset this GPA requirement at the rate of 0.1 in GPA for each 2 years of such experience to a maximum of 0.4 in GPA. If the applicant has an M.S. or equivalent degree from an educational institution of recognized standing, the GPA in that degree should be at least 3.35 on a 4.0 scale.
- Programming skill in at least 1 higher level programming language, preferably C++, C#, or Java.
Graduate Certificate
Code | Title | Credits |
---|---|---|
CSCI 713 | Software Development Processes | 3 |
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 848 | Empirical Methods in Software Engineering | 3 |
Total Credits | 12 |
Masters of Software Engineering
Code | Title | Credits |
---|---|---|
Core Courses - 15 Credits | ||
Software Development Processes | ||
Software Requirements Definition and Analysis | ||
Software Design | ||
Software Testing and Debugging | ||
Empirical Methods in Software Engineering | ||
Electives - 15 Credits | ||
Software Project Planning and Estimation | ||
Software Construction | ||
Survey of Artificial Intelligence | ||
Advanced Intelligent Systems | ||
Introduction To Database Systems | ||
Knowledge Based Systems | ||
Development of Distributed Systems | ||
Software Complexity Metrics | ||
Total Credits - 30 |
Master of Science
Code | Title | Credits |
---|---|---|
Core Courses | 12 | |
Students must complete the core within five semesters of their entering the program. | ||
Software Development Processes | ||
Software Requirements Definition and Analysis | ||
or CSCI 718 | Software Testing and Debugging | |
Software Design | ||
Introduction To Database Systems | ||
Six credits (not part of the core) from: | 6 | |
Software Project Planning and Estimation | ||
Software Requirements Definition and Analysis | ||
Software Construction | ||
Software Testing and Debugging | ||
Formal Methods for Software Development | ||
Development of Distributed Systems | ||
Software Complexity Metrics | ||
Empirical Methods in Software Engineering | ||
Other Computer Science or Computer Engineering courses selected with and approved by the student's graduate advisory committee. (six -thesis students) or three (paper students) | 3-6 | |
CSCI 790 | Graduate Seminar ( in software engineering areas (1 credit each), approved by adviser) | 3 |
Research Component* | 3-6 | |
Master's Paper | ||
or CSCI 798 | Master's Thesis | |
Total Credits | 33 |
Students seeking an option in cybersecurty must take 9 credits from the below list. No more than 3 credits can be from CSCI 790.
Code | Title | Credits |
---|---|---|
CSCI 676 | Computer Crime & Forensics | 3 |
CSCI 793 | Individual Study/Tutorial (cybersecurity focus) | 1-5 |
CSCI 791 | Temporary/Trial Topics (cybersecurity focus) | 1-5 |
CSCI 790 | Graduate Seminar (cybersecurity focus) | 1-3 |
CSCI 669 | Network Security | 3 |
CSCI 773 | Foundations of the Digital Enterprise | 3 |
CSCI 783 | Topics In Software Systems (cybersecurity focus) | 3 |
* | Either a thesis option or comprehensive study 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. |
Doctor of Philosophy
Code | Title | Credits |
---|---|---|
Select 5 from the courses listed below and not duplicating any items used to satisfy requirements for the Master of Science degree: | 15 | |
Software Development Processes | ||
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 | ||
Empirical Methods in Software Engineering | ||
Courses in Computer Science or Electrical and Computer Engineering approved by the student's Supervisory Committee. | 9 | |
CSCI 899 | Doctoral Dissertation | 15 |
Total Credits | 39 |
Students seeking an option in cybersecurty must take 9 credits from the below list. No more than 3 credits can be from CSCI 790.
Code | Title | Credits |
---|---|---|
CSCI 676 | Computer Crime & Forensics | 3 |
CSCI 790 | Graduate Seminar (cybersecurity focus) | 1-3 |
CSCI 791 | Temporary/Trial Topics (cybersecurity focus) | 1-5 |
CSCI 793 | Individual Study/Tutorial (cybersecurity focus) | 1-5 |
CSCI 669 | Network Security | 3 |
CSCI 773 | Foundations of the Digital Enterprise | 3 |
CSCI 783 | Topics In Software Systems (cybersecurity focus) | 3 |
Department Faculty
Anne Denton, Ph.D.
University of Mainz, 1996
Research Interests: Data Mining, Bioinformatics, Scientific Informatics, Databases, Geospatial Data, Cloud Computing
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 ( P2P and Cloud Computing, Distributed Search, Routing Algorithms), Semantic Web Technologies, Social Networks, Information Retrieval, Knowledge Discovery
Simone Ludwig, Ph.D.
Brunel University, 2004
Research Interests: Swarm Intelligence, Evolutionary Computation, Fuzzy Reasoning, 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, Security, Adaptive Systems, Swarm Intelligence
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
Jeremy Straub, Ph.D.
University of North Dakota, 2015
Research Interests: Multi-tier Mission Architecture & Control, Autonomous Data Link Reduction, Autonomous Vehicle Control, Machine Vision, Super Resolution
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 and Software Quality Improvement, Requirements Engineering, Human Cognition in Software Engineering, Managing and Estimating Software Quality
Changhui Yan, Ph.D.
Iowa State University, 2005
Research Interests: Bioinformatics, Computational Biology, Genomics, Machine Learning, Data Mining, Big Data, Cloud Computing
Professors of Practice
Oksana Myronovych, Ph.D.
North Dakota State University, 2009
Mark Pavicic, Ph.D.
Columbia University, 1985
Affiliate Faculty
Otto Borchert, Ph.D.
North Dakota State University, 2015
Research Interests: Artificial Intelligence, Educational Games, STEM Learning
Hyunsook Do, Ph.D.
University of Nebraska, 2007
Research Interests: Software Engineering, Software Testing, Regression Testing, Software Maintenance, Requirements Verification, Software Empirical Methodologies
Hassan Reza, Ph.D.
North Dakota State University, 2002
Research Interests: Software Architecture, Cloud Computing, Architectural Analysis & Description
Xiaodong Zhang, Ph.D.
Dalhousie University, Canada, 2001
Research Interests: Satellite Sensing, Geographic Information Systems