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 alongside 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. Faculty with both academic and industry backgrounds also provide practical perspectives. Real-world problems and opportunities with software intensive systems are explored, and methods to evaluate, adopt, and take advantage of emerging technologies are learned. Students of the Master of Science in Software Engineering program will also be working closely with fellow software professionals, completing applicable assignments and projects within teams.

Degree at Glance

Degree at a Glance
Number of Credit Hours 36
Cost per Credit Hour $726.00
Total Tuition* $26,136.00
*(Estimated tuition does not include housing, additional fees or supplies, scholarships or transfer credit.)

Degree Requirements

The program 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.

Credit Requirements

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

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.

Core Courses:

Course Code Course Name Credits
CMP 110 Introduction to Computing 3
CMP 120 Programming Logic 3
CMP 210 Programming I 3
CMP 220 Programming II 3
CMP 230 Discrete Mathematical Methods for Computing 3
CMP 330 Data Structures and Algorithm Analysis 3
CMP 340 Principles of Programming Languages 3
CMP 355 Programming with C/C++ 3

Elective Courses:

Course Code Course Name Credits
CMP 130 Ethical, Societal, and Legal Aspects of Computing 3
CMP 250 Computer Architecture 3
CMP 260 Operating Systems 3
CMP 360 Web Development Methods 3
CMP 375 Human-Computer Interaction 3

Additional prerequisite courses may be required in order to register for some MSE electives.

Objectives

The program objectives fall in three general categories: technical, organizational, and cross-cutting knowledge, skills, and dispositions. Upon completion of the program, graduates will be able to:

  1. In the technical domain:
    • Apply emerging software development technologies to build robust software solutions.
    • Understand the relationship between software engineering and systems engineering and be able to apply systems engineering principles and practices in the engineering of software.
    • Reconcile conflicting project objectives, finding acceptable compromises within limitations of cost, time, knowledge, risk, existing systems, and organizations.
    • Analyze a current significant software technology, articulate its strengths and weaknesses, compare it to alternative technologies, and specify and promote improvements or extensions to that technology
  2. In the organizational domain:
    • Manage the in-house and outsource development of software projects.
    • Contribute to business processes through a process of analysis, design, and optimization in response to organizational needs.
  3. In the cross-cutting domains:
    • 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.
Prerequisite Courses

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
3

Core Courses

Core Courses provide students with the skills and knowledge that all software engineers need to succeed. Each candidate must complete the following seven Core Courses.

Course Code Course Name Credits
CMP 550
Prerequisite: None
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 Software Engineering
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, 208 VIU Academic Catalog 2013 – 201 4 design, coding, testing, configuration management, quality assurance, documentation, and delivery.
3

Elective Courses

Students must choose 5 additional courses from the electives 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
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 Database Systems 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