VIU Online Education Degree

Articles

Master of Science in Software Engineering

Program Highlights

The online Master of Science in Software Engineering (MSE) program prepares students to become software engineering leaders. The program teaches students to apply computer science, engineering, and mathematical principles to design, develop, and test software. The core of the program is centered on learning to make professional judgments by honing essential critical thinking skills.

The online MSE program builds these thinking skills through a solid understanding of principles, theoretical methods and tools and an analysis of fundamental software development issues and processes. Topics include engineering, project management, quality assurance, and database management systems. Instructors with both industry and academic backgrounds provide a practical perspective help students to explore real-world problems and opportunities with software intensive systems. Students in the program learn methods to evaluate, adopt, and take advantage of emerging technologies and work closely with fellow software professionals, completing applicable class assignments in teams.

Possible career paths include: software engineer, solutions architect, programmer, technical systems analyst, software quality assurance engineer, applications coordinator, software architect, software and applications developer.

Degree at Glance

The online Master of Science in Software Engineering program consists of seven (7) core courses and five (5) elective courses. The elective courses provide the opportunity for students to develop further competencies covered in the core courses, based on their areas of interest.

Area # of Courses Credit Hours
Core courses 7 21
Elective courses 5 15
Total 12 36



























MS IN SOFTWARE ENGINEERING: Core Courses (7 Courses – 21 Credit Hours)
*Core courses provide students with the skills and knowledge that all professionals need to succeed. Each candidate must complete the following seven (7) core courses.
Course Code Course Name Credit Hours
CMP 551
Prerequisite: None
This course provides knowledge of research methodologies used in management information systems, information systems, information technology, computer science, and other disciplines. The course includes experimental design, surveys, case studies, and fieldwork. It introduces students to applied research methodologies. The use of analytical tools, literature searches, and the application of VIU documentation style will result in a formal written proposal that may serve as the basis for each student's special project.
3
CMP 553
Prerequisite: None 

This course provides an overview of the systems development life cycle. It introduces tools and methods for the analysis and design of information systems and the management and organizational skills needed for their implementation. Information analysis in entity-relationship modeling and process modeling in data flow diagrams will be covered as the key skills in structured system analysis and design.
3
CMP 560
Prerequisite: None
The objective of this course is to familiarize students with software application development processes and underlying concepts. Topics covered include Object Oriented Analysis & Design, Unified Modeling Language, Software Development Life Cycle, Models and Methodologies, Quality Assurance & Improvement, and the basics of tools used for application development such as Requirement Management Tools, Version Control, Modeling, and Defect Tracking.
3
CMP 610
Prerequisite: CMP 552 or CMP 553
This course overviews the processes, methods, and techniques to plan, analyze, and design complex Information Systems, within selected existing frameworks. It involves planning, gathering requirements, modeling business needs, creating blueprints for building the system, and managing and organizing resources in these challenging, difficult, complex and expensive activities.
3
CMP 650
Prerequisite: CMP 56000
Internship / CPT Qualified
This course is an in-depth study of software design and construction. The topics covered in this course include: software design fundamentals; key issues in software design such as concurrency, control and handling of events, distribution of components, error and exception handling and fault tolerance, interaction and presentation, data persistence; architectural structures and viewpoints, architectural styles (macro architectural patterns), design patterns (micro architectural patterns), human computer interface design, families of programs and frameworks; software design quality analysis and evaluation; software structural descriptions (static) and behavioral descriptions (dynamic); software design strategies and methods: general strategies, function-oriented (structured) design, object-oriented design, heuristic methods, formal methods, Component-Based Design (CBD) and SOA; software construction fundamentals: minimizing complexity, anticipating change, constructing for verification, standards in construction; managing construction, construction methods, construction planning, construction measurement; and practical considerations: construction design, coding, construction testing, construction quality and integration.
3
CMP 660
3
CMP 669
Prerequisite: CMP 560, CMP 610, and CMP 650 Software Architectures
Internship / CPT Qualified
This course provides experience in applying software - engineering techniques by giving the students an opportunity to produce software when working in teams under the schedule constraints commonly experienced in industry. Students utilize a software engineering methodology in a team environment in a real - world application. They are involved in all the phases of software development, including project planning, requirements analysis, 208 VIU Academic Catalog 2013 – 201 4 design, coding, testing, configuration management, quality assurance, documentation, and delivery.
3
Total Credit Hours Required 21
MS IN SOFTWARE ENGINEERING: Elective Courses (5 Courses – 15 Credit Hours)
* Students are required to choose five (5) courses from the elective courses below.

Course Code

Course Name

Credit Hours
CMP 556
Prerequisite: CMP 350
This course provides an introduction to relational models, normalization, query facilities, transactions, indexing, security issues, relational algebra, SQL database design stages, distributed databases, data warehousing, data and database administration, the JSON data inter-change format, and Internet database environments. Students will learn about various DBMS software products and multi-user database environments and how they are controlled.
3
CMP 558
Prerequisite: CMP 550 or CMP 562
This course is an introduction to the key security concepts required for the design, use, and implementation of secure voice and data communications networks, including the Internet. The security topics covered include defense models, authentication and authorization controls including biometrics, firewalls, packet filtering, virtual private networks (VPNs), security policy development, introduction to wireless network security, cloud computing security, disaster planning, backups, and risks mitigation strategies.
3
CMP 611
Prerequisite: CMP 552 or CMP 553
Internship / CPT Qualified
This course focuses on the organization of development projects in the global service marketplace, based on key considerations and best practices in outsourced and offshore development. Students learn the most important issues and practices for both clients and service providers. Topics include legal, economic, cultural and intellectual property issues; 24-hour development; strategic division of labor; quality and process standards, and global human resources.
3
CMP 621
Prerequisite: None
This course provides overview of the main thrusts in artificial intelligence, starting with the historically symbolic, logic-based approaches to knowledge representation, planning, reasoning and learning, leading into more recent directions of statistics-based probabilistic approaches (such as Bayesian approaches, belief nets, probabilistic reasoning, etc.). This course also touches on more recent developments in natural language processing, visual processing, robotics, machine learning, and philosophical foundations. This course covers search, constraint satisfaction, knowledge representation, probabilistic models, machine learning, neural networks, vision, robotics, and natural language understanding.
3
CMP 627
Prerequisite: CMP 556
Internship / CPT Qualified
This course is an introductory course on data mining. It covers concepts, algorithms, and applications in data warehousing and OLAP, mining frequent patterns and association rules, classification and predication, and cluster analysis, implementations and applications of mining sequential and structured data, stream data, text data, Web data, spatiotemporal data, biomedical data and other forms of complex data.
3
CMP 640
Prerequisite: CMP 556
Internship / CPT Qualified
This course is an introduction to decision support and Business Intelligence. These topics are combined with practical examples and methods from the real world. The topics covered in this course include: decision making, systems, modeling, and support, decision support systems concepts, methodologies, and technologies, modeling and analysis, business intelligence, data warehousing, data mining for business intelligence, business performance management, and text and web mining, collaboration, communication, group support systems, knowledge management, artificial intelligence and expert systems, and management support systems.
3
CMP 661
Prerequisite: CMP 561 and CMP 650
Internship / CPT Qualified
This course examines software testing issues in software engineering. The topics covered include program testing theory, unit testing, control flow testing, data flow testing, domain testing, system integration testing, system testing categories, functional testing, test generation from a Finite State Machine (FSM), system test design, system test planning and automation, system text execution, acceptance testing, and test team organization, and the IEEE standards for software testing and documentation.
3
CMP 662
Prerequisite: CMP 650
Internship / CPT Qualified
This course is an in-depth study of software maintenance & configuration management issues. Topics covered include software maintenance fundamentals; key issues in software maintenance: technical, management issues, maintenance cost estimation and software maintenance measurement; the maintenance process; techniques for maintenance; management of the configuration management (CM) process; configuration identification; configuration control; configuration status accounting and software release management and delivery.
3
CMP 663
Prerequisite: CMP 553 or CMP 561
Internship / CPT Qualified

This course overviews the processes and techniques for developing software for web applications. The concepts of client - server computing in e - commerce theories of usable graphical user interfaces and models for web - based information retrieval and processing are covered. Students study approaches for evaluating and using various common software tools and languages.
3
CMP 664
Prerequisite: CMP 553 or CMP 561
Internship / CPT Qualified
This course looks at the quickly developing landscape of mobile applications. It focuses on Web - based mobile applications, and thus covers issues of Web service design, mobile platforms, and the specific constraints and requirements of user interface design for limited devices. The course combines a conceptual overview, design issues, and practical development issues
3
CMP 665
Prerequisite: CMP 558 and CMP 641
Internship / CPT Qualified
This course is a study of the virtualization concepts and technologies. The topics covered in this course include virtualization concepts, creating and building virtual machines, deploying virtual workstation software, building guest operating systems, constructing a test environment, partitioning servers, managing virtual servers remotely, data center virtualization, implementing remote management tools, securing virtual machine deployments, and reducing the attack surface. The course emphasizes a hands - on approach to virtualization.
3
CMP 673
Prerequisite: Academic Advisor’s Approval
Internship / CPT Qualified
This course will cover topics of current interest selected by the faculty. Subjects will be announced before each semester.
3
CMP 680
Prerequisite: None
This course discusses the organizational impact and the social implications, rights and duties related to the actions of computing professionals. It investigates the context in which professionals work, the laws and how they are created, human aspects of running a company, software contracts and liability, intellectual property rights, and the legislation that affects the way in which computers are used or misused. Topics include social, legal, financial, organizational and ethical issues in the context of the IT industry; the role of professional codes of conduct and ethics; and key legislation.
3
CMP 591
Prerequisite: All Core Courses and Academic Advisor's Approval
This course represents an opportunity for students receive academic credit through supervised practical training and earn industry experience in an actual work environment. The internship course guides the learning contract established in the beginning of the term, on which students have to report at the end of term. Students are expected to work at least 135 hours per semester. Students are required to attend two meetings/seminars with their faculty advisor to determine learning objectives and assess how well learning objectives are being accomplished.
3
CMP 691
Prerequisite: All Core Courses and Academic Advisor’s Approval.
This course offers hands-on experience to students enrolled in MIS or MCS degrees in a domain close to their main career path intentions. Students are encouraged to pursue projects that would allow them to apply engineering design concepts gained in the classroom; going through all stages of system development, from analysis and design to implementation and testing. This three (3) credit hour project internship is for students who are expected to work a minimum of 135 hours during the semester. Students are required to attend two meetings/seminars with their faculty advisor to determine learning objectives and assess how well learning objectives are being accomplished
3
CMP 696
Prerequisite: Academic Advisor's Approval
This course offers opportunity and challenge of self-directive, independent study; develops the individual's ability as an independent student; and enables the student to pursue needed study in a field in which appropriate courses are not being offered during a given term.
3
CMP 697
Prerequisite: Academic Advisor’s Approval

This course offers opportunity and challenge of self-directive, independent study; develops the individual's ability as an independent student; and enables the student to pursue needed study in a field in which appropriate courses are not being offered during a given term.
3
CMP 698
Prerequisite: All Core Courses and Academic Advisor’s Approval
Students may choose this thesis option or take two elective courses. The thesis work can comprise basic research or a practical project. Students are encouraged to start their thesis work as early as possible. Usually after completing two semesters of course work, the student will be asked to work with a faculty advisor to choose a suitable master's thesis topic and prepare a thesis proposal. The master’s thesis project will be conducted over a period of two semesters.
3
CMP 699
Prerequisite: CMP 698
CMP 699 is a continuation of CMP 698: Master Thesis I. Students can take this thesis option after completion. The thesis work can comprise basic research or a practical project.
3
CAR 600
Prerequisite: None
In-depth exploration and assessment of career values, occupational interests, skills, personality style, work environment preferences; concentration and career exploration; exposure to career and occupational information resources. Students learn and practice job search strategies and tools, including resumes and interviewing skills; decision-making, goal-setting and action planning; and self-marketing techniques for effective career management.
3

Program Objectives

The program objectives for the MSE program fall into three general skill and disposition categories: technical, organizational, and cross-cutting knowledge. Upon completion of the program, graduates will possess competencies in the following areas:

I. Technical Domain

  • Apply emerging software development technologies to build robust products and solutions to enable services computing based on service-oriented architecture
  • Implement the latest software engineering processes where large-scale business application design is preeminent and system integration is the standard mode of development

II. Organizational Domain

  • Manage the in-house and outsourced development of software projects
  • Contribute to business processes through a process of analysis, design, and optimization in response to organizational needs
  • Analyze social and other external impacts along with relevant legal, regulatory, ethical, and professional issues in business and technical decision-making
  • Communicate effectively with technical, business, and user/customer audiences

Develop depth in a selected area of expertise

Degree Prerequisites

All new online MSE students need certain basic skills to succeed in the MSE program. Students who do not have the requisite background in computing need to take some or all of the prerequisite courses before they begin to work on the core courses. In some cases, the program prerequisite courses may have course prerequisites to be taken before enrolling in the program prerequisite courses.  





Prerequisite Courses
Course Code

Course Name

Credit Hours
CMP 220
Prerequisite: CMP 210 Programming I
This course concentrates on the concepts of object oriented programming (OOP) paradigm. Concepts presented are exemplified using a selected object oriented programming language. Topics include: fundamental abstraction, modularity and encapsulation mechanisms in OOP, classes, inheritance, polymorphism, exception handling, concurrent programming, data structures. Students complete a term project that utilizes object oriented programming.
3
CMP 230
Prerequisite: None
This course is intended to be a college-level introductory Discrete Mathematics course for either undergraduate or graduate students. The course focuses on the following seven key topics: Combinatorial Problems and Techniques, Sets, Relations and Functions, Coding Theory, Graphs, Matching, Counting Techniques, Recurrence Relations and Generating Functions.
3
CMP 330
Prerequisite: CMP 120
This course introduces the analysis of algorithms and the effects of data structures on them. Topics include algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide and conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst case, expected time, amortized analysis, solution of recurrence relation and reductions between problems.
3
CMP 340
Prerequisite: CMP 120
This course covers the fundamental concepts of programming language design and implementation. Topics include: language paradigms, syntax and semantics; names, binding, allocation, data structures, data types; scopes; control structures, data flow, concurrency; exception handling; subprograms; comparison of imperative, functional, logical, and object-oriented programming languages.
3

Pre-MSE Program

Students who have earned a bachelor’s degree with less than 120 undergraduate credit hours can be given conditional admission to the online MSE program, provided they enroll in and successfully complete the remaining credit hours by selecting from the Bachelor of Computer Science (BCS) undergraduate courses offered at VIU. Among the 120 required credit hours, the MSE program prerequisite courses must be fulfilled. Students must consult their academic advisors before registering for pre-MSE courses to ensure their course selections from VIU’s BCS program comply with MSE program prerequisites. Successful completion of the pre-MSE courses will allow these students to complete the undergraduate credit hour requirement of 120 and enter into the MSE program.

The following courses represent pre-MSE program requirements. If a pre-MSE core course has been completed in prior study, students may select alternative courses from the pre-MSE electives to fulfill the credit requirements. In addition, some additional prerequisite courses may be required in order to register for some MSE electives.














Pre-MSE Core Courses
Course Code Course Name Credit Hours
CMP 110
Prerequisite: None
This course introduces computer systems, their capabilities, limitations, and applications. Students survey computer concepts with an emphasis on the personal computer and its practical use, including hardware, application and system software, the Internet and World Wide Web, communications, database management, e-commerce, and computers in society.
3
CMP 120
Prerequisite: None
This course introduces algorithmic thinking and problem solving without focusing on any particular language. Students will learn the basic constructs of programming, including variables, constants, expressions, control structures, functions pointers and arrays, and are introduced to functional, decision-based and iterative processing of data.
3
CMP 210
Prerequisite: CMP 120
This course examines the fundamental data structures and analyzes algorithms such as files, sets, strings, and linked lists. It introduces searching and sorting algorithms and algorithm analysis. This course also covers abstract data types and essential data structures such as arrays, stacks, queues, and trees. The major emphasis of this course is on program development through various programming projects.
3
CMP 220
Prerequisite: CMP 120
This course concentrates on the concepts of object oriented programming (OOP) paradigm. Concepts presented are exemplified using a selected object oriented programming language. Topics include: fundamental abstraction, modularity and encapsulation mechanisms in OOP, classes, inheritance, polymorphism, exception handling, concurrent programming, data structures. Students complete a term project that utilizes object oriented programming.
3
CMP 230
Prerequisite: None
This course is intended to be a college-level introductory Discrete Mathematics course for either undergraduate or graduate students. The course focuses on the following seven key topics: Combinatorial Problems and Techniques, Sets, Relations and Functions, Coding Theory, Graphs, Matching, Counting Techniques, Recurrence Relations and Generating Functions.
3
CMP 330
Prerequisite: CMP 120
This course introduces the analysis of algorithms and the effects of data structures on them. Topics include algorithms selected from areas such as sorting, searching, shortest paths, greedy algorithms, backtracking, divide and conquer, and dynamic programming. Data structures include heaps and search, splay, and spanning trees. Analysis techniques include asymptotic worst case, expected time, amortized analysis, solution of recurrence relation and reductions between problems.
3
CMP 340
Prerequisite: CMP 120
This course covers the fundamental concepts of programming language design and implementation. Topics include: language paradigms, syntax and semantics; names, binding, allocation, data structures, data types; scopes; control structures, data flow, concurrency; exception handling; subprograms; comparison of imperative, functional, logical, and object-oriented programming language.
3
CMP 355
Prerequisite: CMP 120
This course covers the fundamental concepts of C/C++ programming language. Topics include variables, expressions and interactivity, relational and logical operators, looping, functions, arrays, pointers, classes, file operations, inheritance, polymorphism and virtual functions. Student complete a term project that utilizes C/C++.
3
Pre-MSE Elective Courses
* Additional prerequisite courses may be required in order to register for some MSE electives.
Course Code Course Name Credit Hours
CMP 130
3
CMP 250
Prerequisite: CMP 110
This course is an introduction to the architecture of computer systems. Topics include: computer hardware organization; floating-point arithmetic; central processing units; instructions set design issues; micro-programmed control; addressing and memory hierarchies; bus control and timing; hardwired control; parallelism, pipelining; input/output mechanisms, peripheral devices; interrupt systems; software versus hardware trade-offs.
3
CMP 260
Prerequisite: CMP 110
The course is an introduction to the fundamentals of operating systems. Topics include: concurrent processes and synchronization mechanisms; processor scheduling; memory management, virtual memory; paging, file management; input/output management; deadlock management; interrupt structures, interrupt processing; device management; performance of operating systems; synchronization in a multi-programmed operating systems and with virtual memory management. Formal principles are illustrated with examples and case studies of one or more contemporary operating systems.
3
CMP 360
Prerequisite: CMP 120
Internship / CPT Qualified
This course introduces web development technologies. The topics include: webpage design techniques, using web design editors, designing graphical user interface with image processing tools, client and server side scripting, and development of database applications. Upon completion, students should be able to employ advanced design techniques to create high impact and highly functional webpages and have hands-on experience in designing a website.
3
CMP 375
Prerequisite: None
Topics that this course covers include effective, productive information systems, design and evaluation of interactive computer systems, input and output devices, screen layouts, machine design, health issues and ergonomics, and organizational impacts.
3

Tuition

Degree at a Glance
Number of Credits 36
Cost per Credit $409.00
Total Tuition* $14,724.00
*The estimated tuition does not include additional fees, supplies, scholarships, or transfer credits. The estimate reflects tuition for the 2014-2015 academic year. For full and current tuition information, please visit the Tuition and Fees page.

Career Opportunities

Graduates of the online MSE program may pursue the following types of careers:

  • Software engineer or developer
  • Software quality assurance engineer
  • Program analyst
  • Programmer
  • Software manager
  • Solutions architect
  • Technical systems analyst
  • Applications software coordinator
  • Software architect
  • Researcher in software engineering
  • Instructor at a college or university teaching software engineering-related courses
© 2015 VIU Online Education.     Contact Us -   Site Map -  Privacy & Policy
The University is accredited by ACICS and certified to operate in Virginia by the SCHEV