Software Engineering / Software and Security Engineering
This is an archived copy of the 2022-23 catalog. To access the most recent version of the catalog, please visit http://catalog.ndsu.edu.
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. Security engineering is the process of applying knowledge to build secure systems by identifying security vulnerabilities and incorporating control measures to minimize or contain the risks associated with these vulnerabilities. It involves protecting systems, networks, devices, programs, and data from unauthorized access and destruction by implementing effective cybersecurity measures to meet the security goals of Confidentiality, Integrity, and Availability.
The Department of Computer Science offers a graduate certificate in Software Engineering, Master of Software Engineering (M.S.E), Master of Science (M.S.) in Software and Security Engineering, and Doctor of Philosophy (Ph.D.) in Software and Security 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 M.S.E. is a online course work only program aimed at professionals while the M.S. in Software and Security Engineering is a course work and research program. For additional information, see the Computer Science website (or contact the Computer Science department at (701) 231-8562 or gradinfo@cs.ndsu.edu).
*Spring admissions are given only occasionally, depending on funding and faculty interest. If there are no spring openings, spring applicants are automatically considered for the subsequent fall semester.
In addition to the Graduate College requirements, applicants must fulfill the program requirements listed below:
Software Engineering Certificate
- Bachelor of Science (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 3.0 (on a 4.0 scale) GPA in previous coursework. Conditional admission may be given with a 2.85 or higher GPA and professional experience.
Master of Software Engineering
- Bachelor of Science (B.S). or equivalent degree from an educational institution of recognized standing, including 12 credit hours or equivalent of Computer Science or Software Engineering courses 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;
- GRE score is not required for admission.
- International students must submit TOEFL, IELTS, PTE Academic score or Duolingo score. Minimum requirements are:
- TOEFL score of at least 550 (paper based) or 79 (internet based)
- IELTS score of at least 6.5
- PTE Academic score of at least 53; or
- Duolingo score of 100.
- A 3.0 (on a 4.0 scale) GPA in previous coursework. Conditional admission may be given with a 2.85 or higher GPA and professional experience.
Master of Science in Software and Security Engineering
- A Bachelor of Science (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;
- GRE score is not required for admission. However, a GRE score above the median (50th percentile) for the quantitative reasoning portion is strongly recommended for gaining priority in assistantships.
- International applicants are welcome. International applicants must submit TOEFL, IELTS, PTE Academic score or Duolingo score. Minimum requirements are:
- TOEFL score of at least 550 (paper based) or 79 (internet based)
- IELTS score of at least 6.5
- PTE Academic score of at least 53; or
- Duolingo score of 100.
- Eligibility for a teaching assistantship/tutor requires the following additional requirements:
- minimum TOEFL ibT score of 81 (IELTS of 7),
- TOEFL ibT Speaking subscale score of 23 or above and
- TOEFL ibT Writing subscale score of 21 or above
- IELTS equivalent scores are 6.0 and 6.0 respectively
- PTE Academic equivalent scores are 62 and 56, respectively
- Duolingo score is 115 or greater.
- minimum TOEFL ibT score of 81 (IELTS of 7),
- 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 in Software and Security Engineering
- 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.
- 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.
- 18 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.
- GRE score is not required for admission. However, a GRE score above the median (50th percentile) for the quantitative reasoning portion is strongly recommended for gaining priority in assistantships.
- International applicants are welcomed. They must submit a TOEFL, IELTS, PTE Academic score or Duolingo score. Minimum requirements are:
- TOEFL score of at least 550 (paper based) or 79 (internet based)
- IELTS score of at least 6.5
- PTE Academic score of at least 53 or
- Duolingo score of 100.
- Eligibility for a teaching assistantship/tutor requires the following additional requirements:
- minimum TOEFL ibT score of 81 (IELTS of 7),
- TOEFL ibT Speaking subscale score of 23 or above and
- TOEFL ibT Writing subscale score of 21 or above.
- IELTS equivalent scores are 6.0 and 6.0 respectively.
- PTE Academic equivalent scores are 62 and 56, respectively.
- Duolingo score is 115 or greater.
- minimum TOEFL ibT score of 81 (IELTS of 7),
- Programming skill in at least 1 higher level programming language, preferably C++, C#, or Java.
Software Engineering 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 |
Master of Software Engineering (online)
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 in Software and Security Engineering
Code | Title | Credits |
---|---|---|
Core Courses | 12 | |
Survey of Cybersecurity | ||
Data-Driven Security | ||
Software Development Processes | ||
Software Design | ||
Additional required courses | 6 | |
Empirical Methods in Software Engineering | ||
Graduate Seminar | ||
Software engineering focus (required courses) | 9 | |
Software Requirements Definition and Analysis | ||
Software Testing and Debugging | ||
Introduction To Database Systems | ||
Cybersecurity focus - select from: | 9 | |
Ethical Hacking | ||
Cybersecurity Law and Policy | ||
Computer Crime and Forensics | ||
Foundations of the Digital Enterprise | ||
Introduction To Database Systems | ||
Plan A: Master's Thesis | 6 | |
Master's Thesis (6 credits) | ||
Plan B: Master's Paper | 6 | |
Other Computer Science or Software Engineering Courses (3 credits) | ||
Master's Paper (3 credits) | ||
Total Credits | 33 |
- Research advisor should be selected by the end of the second semester at NDSU.
- A maximum of two courses (6 credits) at the 600 level.
- All course work must be approved by the student's advisor, supervisory committee, and graduate coordinator through the Plan of Study.
- A Plan of Study listing coursework and examination committee members should be completed by the end of the second semester at NDSU.
- A maximum of 9 credits may be transferred into the program.
- Successful completion of the final defense for Plan A or B students.
Doctor of Philosophy in Software and Security Engineering
Bachelor's to Doctor of Philosophy
Code | Title | Credits |
---|---|---|
Core courses: | 12 | |
Survey of Cybersecurity | ||
Data-Driven Security | ||
Software Development Processes | ||
Software Design | ||
Additional required courses | 6 | |
Empirical Methods in Software Engineering | ||
Graduate Seminar | ||
Software engineering focus (required courses) | 9 | |
Software Requirements Definition and Analysis | ||
Software Testing and Debugging | ||
Introduction To Database Systems | ||
Cybersecurity focus - select from: | 9 | |
Ethical Hacking | ||
Cybersecurity Law and Policy | ||
Computer Crime and Forensics | ||
Introduction To Database Systems | ||
Foundations of the Digital Enterprise | ||
All Students: | ||
Software engineering & cybersecurity courses approved by the student's Supervisory Committee. (15-27 credits) | ||
Doctoral Dissertation (36-48 credits) | ||
Total Credits | 90 |
Master's to Doctor of Philosophy
Code | Title | Credits |
---|---|---|
Core courses: | 12 | |
Survey of Cybersecurity | ||
Data-Driven Security | ||
Software Development Processes | ||
Software Design | ||
Additional required courses | 6 | |
Empirical Methods in Software Engineering | ||
Graduate Seminar | ||
Software engineering focus (required courses) | 9 | |
Software Requirements Definition and Analysis | ||
Software Testing and Debugging | ||
Introduction To Database Systems | ||
Cybersecurity focus - select from: | 9 | |
Ethical Hacking | ||
Cybersecurity Law and Policy | ||
Computer Crime and Forensics | ||
Foundations of the Digital Enterprise | ||
CSCI 765 - Introduction to Database Systems | ||
All Students: | ||
Software engineering & cybersecurity courses approved by the student's Supervisory Committee. (0-3 credits) | ||
Doctoral Dissertation (30-33 credits) | ||
Total Credits | 60 |
- Research advisor should be selected by the second semester at NDSU.
- A minimum of 15 didactic credits numbered 700 -789 or 800-898, of which at least 9 are not included in the Software and Security Engineering core courses listed above; none of these can be individual study course credits.
- A maximum of two courses at the 600 level.
- Students who took core courses as part of their M.S. studies at NDSU should discuss replacement courses with the advisor and the graduate program coordinator.
- All course work must be approved by the student's advisor, supervisory committee, and graduate coordinator through the plan of study.
- A Plan of Study listing coursework and supervisory committee members should be completed by the end of the second semester at NDSU.
- 30-48 credit hours of research – The Ph.D. requires a research contribution to be made under the supervision of one of the Computer Science department’s graduate faculty members.
- Students who applied the listed core courses towards a M.S. degree obtained from NDSU can take up to 42 research credits.
- Satisfactory completion of the comprehensive exam at the Ph.D. level (written exam based on the core courses).
- Research proposal presentation and preliminary oral examination (Qualifying Exam) should be completed by the fourth semester at NDSU after passing the Comprehensive Exam.
- Successful completion of the final defense of the dissertation.
Zahid Anwar, Ph.D.
University of Illinois at Urbana-Champaign, 2008
Research Interests: Cybersecurity Policy and Law, Artificial Intelligence and Machine Learning
Anne Denton, Ph.D.
University of Mainz, 1996
Research Interests: Data Mining, Bioinformatics, Scientific Informatics, Databases, Geospatial Data, Cloud Computing
Ajay Jha, Ph.D.
Kyungpook National University, 2017
Research Interests: Software Engineering, Software Testing, and Software Maintenance
Jun Kong, Ph.D.
University of Texas, Dallas, 2005
Research Interests: Human Computer Interaction, Mobile Computing, Software Engineering
Pratap Kotala, Ph.D.
North Dakota State University, 2015
Research Interests: Software Engineering, Cybersecurity
Juan (Jen) Li, Ph.D.
University of British Columbia, 2008
Research Interests: Smart and Connected Health, Semantic Web Technologies, Internet of Things (IoT)
Lu Liu, Ph.D.
University of Texas San Antonio, 2017
Research Interests: Bioinformatics, Data Mining, Machine Learning, Data Science
Simone Ludwig, Ph.D.
Brunel University, 2004
Research Interests: Artificial Intelligence, Swarm Intelligence, Evolutionary Computation, Deep Neural Networks, Fuzzy Reasoning, Machine Learning
Kenneth Magel, Ph.D.
Brown University, 1977
Research Interests: Software Engineering, Human-Computer Interfaces, Software Complexity, and Software Design
M. Zubair Malik, Ph.D.
University of Texas at Austin, 2014
Research Interests: Program Analysis, Automated Program Repair, Secure Software Development, Software Verification-Validation and Testing, Software Systems (especially large scale Distributed Systems for Data science and Machine Learning), Formal Methods, Application of Artificial Intelligence in Program Analysis
Oksana Myronovych, Ph.D.
North Dakota State University, 2009
Research Interests: Software Engineering
Saeed Salem, Ph.D.
Rensselaer Polytechnic Institute, 2009
Research Interests: Bioinformatics, Machine Learning and Data Mining
Jeremy Straub, Ph.D.
University of North Dakota, 2015
Research Interests: Artificial Intelligence, Cybersecurity, Robotics, Technology Policy
Vasant Ubhaya, Ph.D.
University of California-Berkeley, 1971
Research Interests: Algorithm Analysis, Approximation and Optimization
Changhui Yan, Ph.D.
Iowa State University, 2005
Research Interests: Bioinformatics, Computational Biology, Genomics, Machine Learning, Data Mining, Big Data, Cloud Computing
Affiliate Faculty
Kendall Nygard, Ph.D.
Virginia Polytechnic Institute and State University, 1978
Gursimran Walia, Ph.D.
Mississippi State University, 2009