joomla templates   

Master of Science in Software Engineering

The Master of Science in Software Engineering (MSE) program prepares students to become Software Engineering professionals. Graduates are prepared to address the global need for professionals that apply computer science, engineering, and mathematical principles to design, develop, test and maintain software. The core of the program is focused on building a foundation of critical thinking skills on which to make professional judgments. This program builds these thinking skills through a solid understanding of theoretical concepts, principles, and tools; and coverage of the fundamental software development issues and processes. Topics covered include: requirements engineering, software design and construction, verification, testing, maintenance, software process improvement, project management, quality assurance, etc.

Program Requirements

VIU’s MSE program is generally completed within two years of full time study. It consists of seven (7) Core Courses and five (5) Elective courses. The elective courses provide the opportunity for the students to develop further competencies covered in the core courses, based on their area of interest.

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

MSE Core Courses

Each candidate must complete the following seven (7) core courses (21 credits):

Course Code Course Name Credits
CMP 550
Prerequisite: None
This course provides a holistic overview of the IT infrastructure in large enterprises. The topics covered include telecommunications fundamentals including data, voice, image, and video, the concepts, models, architectures, protocols, standards, and security for the design, implementation, and management of digital networks, server architectures, server farms, cluster computing, grid computing and cloud computing; storage area networks and network attached storage, data center design and implementation; the development of an integrated technical architecture (hardware, software, networks, and data) to serve organizational needs in a rapidly changing competitive and technological environment; network, data and application architectures, and enterprise application integration, XML, Web Services (WS), and service oriented architectures (SOA).
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 560
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
Prerequisite: CMP 560
This course will consider ethical issues relating to various aspects of software development and design. By utilizing case studies students will examine and discuss various topical situations in the realms of information acquisition, access, stewardship, software licensing, intellectual property, safety and reliability.
3
CMP 669
Prerequisite: CMP 610/CMP 650 -
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 const raints 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, design, coding, testing, configuration management, quality assurance, documentation, and delivery.
3

MSE Elective Courses

Candidates must select five (5) courses (15 credits) from the list of courses below:

Course Code Course Name Credits
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 561
Prerequisite: CMP 220/CMP 330
This course provides a survey of computer algorithms, examines fundamental techniques in algorithm design and analysis, and develops problem-solving skills required in all programs of study involving computer science. Topics include advanced data structures, recursion and mathematical induction, algorithm analysis and computational complexity, sorting and searching, design paradigms, and graph algorithms. Advanced topics include randomized algorithms, information retrieval, string and pattern matching, and computational geometry.
3
CMP 611
Prerequisite: CMP 552 or CMP 553
Internship / CPT Qualified

This course focuses on the organization of development projects in a 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: CMP553 or CMP561
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: CMP553 or CMP561
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 requirem ents of user interface design for limited devices. The course combines a conceptual overview, design issues, and practical development issues
3
CMP 673
Prerequisite: Dean’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, Dean’s approval (plus one specialization elective course for MCS & MIS Program students)
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, Dean’s approval (plus two specialization elective courses for MCS & MIS Program students)
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: Dean's permission.
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: Dean's permission.
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: Completion of all core program courses.
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.
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
CMP 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

MSE Program Prerequisites

All new MSE students need certain basic skills to succeed in the MSE program. Students who do not have the requisite background in computing concepts or programming need to take some or all of the prerequisite courses before they begin 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.

Course Code Course Name Credits
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 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
CMP 350
Prerequisite: None
This course introduces the fundamental concepts for design and development of database systems. Topics include: review of relational data model and the relational manipulation languages SQL and QBE; integrity constraints; logical database design, dependency theory and normalization; query processing and optimization; transaction processing, concurrency control, recovery, and security issues in database systems; object-oriented and object-relational databases; distributed databases; emerging database applications.
3

Pre-MSE Program

Students who have earned their bachelor’s degrees with less than 120 undergraduate credit hours can be given conditional admission to the MSE program, provided they enroll in and successfully complete the remaining credit hours by selecting from the Bachelor of Science in Computer Science (BCS) undergraduate courses offered at VIU. Among the 120 required credit hours, the MSE program prerequisite courses must be fulfilled. Before choosing Pre-MSE courses, students must consult their academic advisor who will advise them on the appropriate course selections from VIU’s BCS program while complying 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 program.

Career Paths & Opportunities

  • Software engineer
  • Software architect
  • Software project leader
  • Software project manager
  • Software designer
  • Program developer
  • Chief technology officer
  • Chief information officer
  • Software consultant
  • Computer systems analyst

Sample Schedule

The following is a sample schedule of the possible sequencing of courses in the Master of Science in Software Engineering.

Course Code Course Name Credits
First Semester
CMP 550 IT Infrastructure 3
CMP 553 Analysis, Modeling and Design 3
CMP 560 Software Engineering 3
Second Semester
CMP 610 Managing IS Development 3
CMP 650 Software Design and Construction 3
CMP 660 Issues and Trends in Software Engineering 3
Third Semester
CMP 699 Software Engineering Project 3
CMP XXX CMP Elective #1 3
CMP XXX CMP Elective #2 3
Fourth Semester
CMP XXX CMP Elective #3 3
CMP XXX CMP Elective #4 3
CAR 600 Career Planning & Management 3