Master of Software Engineering
Do you want to update or upgrade your credentials?
Do you want a program you can take anywhere at any time?
Do you want to gain current skills and knowledge in software engineering?
The Master of Software Engineering degree can be completed in as little as sixteen months or as much as seven years. All activities may be done through distance education or through live, on campus classes in any combination. You never have to travel to our campus.
All distance education courses are offered over the Internet using the Blackboard course management system. These courses are asynchronous, meaning you may do as much as you wish whenever you wish. Each course has an instructor who is available through email for questions or to resolve difficulties.
Projects and most larger assignments can be customized to fit your specific needs. If you already do software development, you may be able to use parts of your job activities for these course requirements.
Any time during the first six weeks of a semester, any course can be satisfied through an examination, if you think you already know the material.
- Bachelor’s level (B.S., B.A., Sc.B., etc) degree from an accredited institution
- 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
- International Students require a minimum TOEFL of 550 (paper-based) or 79 (Internet-based) or an IELTS of 6
- Admission to the NDSU Graduate School for this program. Details of the admissions process may be found at: https: //apply.embark.com/grad/ndsu/15/
- Completion of these twelve courses with grades of A or B (CSci 793 is taken twice to complete a two semester project). CSci 745 or CSci 783 may be substituted for any course numbered above 719:
- CSci 713 Software Development Processes - 3 credits This course is designed as a breadth course on the software engineering process. Basic concepts are reviewed and reassured to create a basis for higher concepts and techniques.
- CSci 714 Software Project Planning and Estimation - 3 credits This course is designed to introduce the student to concepts and techniques of how to plan for a software project. This includes time and effort estimation, planning and teaming the project, and managing the development activities. Prereq: CSCI 713.
- CSci 715 Software Requirements Definition and Analysis - 3 credits This course is designed to make the student able to identify and capture requirements for a software system and be able to document and assess the requirements. Prereq: CSCI 713.
- CSci716 Software Design - 3 credits This course covers both architectural design and module design. Students receive practice using a set of patterns to produce software designs with several different types of architecture. Substantial presentation and practice with the UML modeling language is provided. Prereq: CSCI 713.
- CSci 717 Software Construction - 3 credits This course covers the fundamentals of software construction including programming and evaluation of the source code. Students receive a good grounding in and extensive practice with the comprehensive libraries associated with a modern programming language. Prereq: CSCI 713.
- CSci 718 Software Testing and Debugging - 3 credits This course covers the goals, practices, evaluation and limitations of software testing and software debugging. Students receive practice in developing and using test plans and various testing and debugging techniques. Prereq: CSCI 713.
- CSci 724 Survey of Artificial Intelligence - 3 credits Survey of major areas of AI including theorem proving, heuristic search, problem solving, computer analysis of scenes, robotics, natural language understanding, and knowledge-based systems. Prereq: CSCI 372.or graduate standing
- CSci 746 Development of Distributed Systems - 3 credits This course is an advanced course in software engineering aiming at strategies and solutions of distributed systems. It assumes the knowledge of software engineering and particularly design and implementation of software systems, then builds on these concepts to how distributed systems are designed and implemented. Prereq: CSCI 713.
- CSci 747 Software Complexity Metrics - 3 credits This course covers complexity metrics for the entire software lifecycle. Students gain experience in using requirements metrics, design metrics, program metrics, test metrics, and planning metrics. The effectiveness and limitations of metrics in all these areas are emphasized. Prereq: CSCI 718.
- CSci 765 Introduction to Database Systems - 3 credits Basic database concepts, models, management facilities, data structures, storage structures, data definition languages, data manipulation languages, normalization, operator implementation algorithms, transactions, correctness, reliability, distribution, performance analysis. Prereq: CSCI 366 or graduate standing.
- CSci 771 Software Development Project I - 3 credits Each student develops a software project either alone or as part of a team. If the student works as part of a team, the student’s contribution to the project must be significant and easily identified. Prereq: CSci 715, 716, and 718.
- CSci 772 Software Development Project II - 3 credits Each student develops a software project either alone or as part of a team. If the student works as part of a team, the student’s contribution to the project must be significant and easily identified. Prereq: CSci 715, 716, and 718.
- 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.