joomla templates   

Master of Science in Computer Science


The Master of Science in Computer Science (MCS) program is designed to appeal to a broad range of individuals. The program balances theory with practice, offers an extensive set of traditional and state-of-the-art courses, and provides the necessary flexibility to accommodate students with various backgrounds, including computer professionals who want to expand their understanding of computer science, as well as individuals whose undergraduate degrees are not in computer science but who wish to broaden their knowledge in computing. The program also provides the background necessary to continue the study of computer science at the doctoral level.

Students may choose a thesis option, which requires two semesters of study under the direction of a professor in which the student gains an understanding of an area of current research and contributes to it.

Program Requirements

VIU’s MCS program is generally completed within two years of full time study. It consists of five (5) core courses (15 credits), five (5) specialization elective courses (15 credits) and two (2) other course (6 credits). The specialization allows a student to concentrate in a specific area for which there is demand and to achieve knowledge depth in that area.

Area # of Courses Credit Hours
Core Courses 5 15
Specialization elective courses 5 15
Elective Courses 2 6
Total 12 36

MCS Core Courses

Each candidate must complete the following five (5) core courses (15 credits):

Course Code Course Name Credits
CMP 511
Prerequisite: CMP 250 / CMP 260
This course surveys architecture and organization of modern computing systems including: CPU design, instruction sets, memory hierarchy, pipelined machines, and multiprocessors. The emphasis is on the major component subsystems of high performance computers: pipelining, instruction level parallelism, thread-level parallelism, memory hierarchies, input /output, and network-oriented interconnections. This course introduces techniques and tools for quantitative analysis, evaluation, and implementation of modern computing systems and their components.
3
CMP 556
Prerequisite: CMP 350
This course provides an introduction to hierarchical and relational models, normalization, query facilities, transactions, indexing, security issues, relational algebra, SQL database design stages, distributed databases, data warehousing, data and database administration, and internet database environments. Students will learn various DBMS software products and multi-user database environments and how they are controlled.
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 561
Prerequisite: CMP 220 or 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 641
Prerequisite: CMP 260
This course discusses the design and implementation of computer operating systems. Topics include operating system structures, functions of the kernel, process management, CPU scheduling, deadlocks, memory management, input/output, file system facilities, concurrent processes, security, and integrity.
3

MCS Program Specializations

  • Networking
  • Data Management
  • Software Engineering
  • Cybersecurity
  • Intelligent Systems
  • Computer Animation & Gaming
  • Software Applications Development

MCS Elective Courses

Candidates must select two (2) courses (6 credits) from the list of courses below or from any other specialization electives*:

Course Code Course Name Credits
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 591
Prerequisites: All core courses, one specialization elective course, Dean 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
Prerequisites: All core courses, one specialization elective course, Dean 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 Dean 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 Dean 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
Prerequisites: All core, two specialization elective courses, academic advisor’s approval
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. Thereafter, the student completes the project and writes a thesis. The master's thesis will project will be conducted over a period of two semesters.
3
CMP 699
Prerequisite: CMP 698
CMP 699 is a continuation of the course CMP 698: Master Thesis I. 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
CMP XXX A course from any MCS specialization courses 3
CMP 609
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to design, implement, manage, evaluate, and further improve networks are explored; including emerging trends and their potential effect on networking.
3
CMP 629
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to design, implement, manage, evaluate, and further improve databases are explored; including emerging trends and their potential effect on data management.
3
CMP 639
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and emerging topics and technologies in software engineering.
3
CMP 649
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to design, implement, manage, evaluate, and further improve network security are explored; including emerging trends and their potential effect on Cybersecurity.
3
CMP 659
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to design, implement, manage, evaluate, and deploy MAS are explored; including emerging trends.
3
CMP 589
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to design, and implement graphics and animation programs are explored; including emerging trends.
3
CMP 619
Prerequisite: All core courses and four specialization courses completed
A capstone project that integrates and applies concepts previously studied. Best practices and appropriate technologies to analyze, design, implement, test, evaluate, and further improve software applications development; including emerging trends.
3

*Students may choose to take no more than one (1) specialization elective from another specialization.

MCS Program Prerequisites

All new MCS students need certain basic skills to prepare them for success in the MCS program. The MCS degree provides a broad understanding of computer science theory and technology. Students who do not have the required background need to take some or all of the prerequisites before taking the core courses. In some cases, the program prerequisite courses may have course prerequisites to be taken before enrolling in the program prerequisite courses. To be successful, students must have a background in the following areas:

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 260
Prerequisite: CMP 110 Introduction to Computing
The course is an introduction to the fundamentals of operating systems. Topics included: concurrent processes and synchronization mechanisms; processor scheduling; memory management, virtual memory; paging, file management; I/O management; deadlock management; interrupt structures, interrupt processing; device management; performance of operating systems; synchronization in a multi-programmed OS and with virtual memory management. Formal principles are illustrated with examples and case studies of one or more contemporary operating systems.
3
CMP 270
Prerequisite: CMP 110
This course i ncludes the fundamentals of network standards, concepts, topologies and terminologies including LANs, WANs, Internet Protocol addressing, subnet masking and network design, and various protocols . This course teaches concepts from the Open Systems Interconn ection Networking Reference Model, developed by the International Standards Organization to describe the function and structure of network communications protocols .
3
CMP 330
Prerequisite: CMP 120 Programming I
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 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-MCS Program

Students who have earned their bachelor’s degree with less than 120 undergraduate credits can be given conditional admission to the MCS program, provided they enroll in and successfully complete the remaining credits by selecting from the Bachelor of Science in Computer Science (BCS) undergraduate courses offered at VIU. Among the 120 required credits, the MCS program prerequisite courses must be fulfilled. Before choosing pre-MCS courses, students must consult their academic advisor who will advise them on the appropriate course selections from VIU’s BCS program while complying with MCS program prerequisites. Successful completion of the pre-MCS courses will allow these students to complete the undergraduate credits requirement of 120 and enter into the MCS program.

Explore Specializations

Networking

The objective of this specialization is to equip students with a comprehensive understanding of network and Internet architecture, network design and implementation, network performance analysis, network management, network security, and emerging trends in networking technology.

In addition to the core courses, students specializing in networking choose five (5) of the following elective courses:

Course Code Course Name Credit Hours
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; and disaster planning, backups, and risks mitigation strategies.

3
CMP 562

Prerequisite: CMP 270
This course examines data communication and computer networks. Topics include: interconnection of networks; network hardware and software; reference models; data communication services and network standardization; the OSI and the Internet (TCP/IP) network models; encoding digital and analog signals; transmission media; internetworking devices; LANs/WANs; application layer protocols; HTTP, TELNET, SMPT, FTP, and SNMP; cloud computing architectures; and the domain name services. The course covers each network layer in detail, starting from the physical layer and moving toward the application layer. An introduction to network security topics is also included.

3
CMP 602

Prerequisite: CMP 562
This course focuses on the diverse quality of service (QoS) requirements associated with different types of data; application and business; and designing networks and communication systems appropriately to ensure the high performance requirements that meet the business needs of an organization. Topics covered include: the specific quality of service requirements for different scenarios; the metrics for measuring quality of service; and the factors which affect the performance of a network, including the actual network design and choice of technologies as well as the extent, patterns, and mix of traffic types present. There is particular emphasis on congestion control, traffic analysis and patterns, performance prediction, network simulation, and evaluation of network performance, security, and manageability.

3
CMP 603

Prerequisite: CMP 558
Internship / CPT Qualified

This course studies network management including configuration, performance, fault diagnosis, and security management. Topics covered include: LAN and WAN network management; configuration; fault detection; security; performance; risk assessment; and accounting management. The course also emphasizes problem-solving techniques and network management tools based on SNMP.

3
CMP 604

Prerequisite: CMP 558 Internship / CPT Qualified
Cloud computing has become ubiquitous with many enterprises leveraging the World Wide Web to fulfill various computing needs using a number of models, such as SaaS, PaaS, and IaaS. The topics covered in this course include: origins of, cloud computing; enabling technology and key concepts in cloud computing; the unique set of problems and challenges in developing cloud computing applications; and the platform, tools, technologies, and processes for developing cloud computing applications (such as Hadoop).

3
CMP 608

Prerequisite:course prerequisite is that Dean’s approval
This course will cover topics of current interest, specifically emerging topics and technologies in computer networking selected by the faculty. Topics will be announced before each semester.

3
CMP 647

Prerequisite: CMP 558
Internship / CPT Qualified

This course studies wireless and mobile security. Topics include encryption and cryptographic protocols; specifications needed for 3GPP; public-key and elliptic curve cryptography; AES; KASUMI; MIMO/OFDMA for 4G systems such as Long Term Evolution (LTE), Ultra Mobile Broadband (UMB), Mobile WiMax, or Wireless Broadband (WiBro); intrusion detection systems; secure routing; authentication on wireless networks; security for handheld devices; real-time wireless security; and security measures for embedded devices.

3
CMP 665

Prerequisites: CMP 558 and CMP 641
Internship / CPT Qualified

This course studies virtualization concepts and technologies. Topics covered 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

Data Management

The objective of this specialization is to equip students with the knowledge and skills to collect, organize, store, manipulate, analyze, secure, and communicate structured and unstructured data in order to integrate information technology solutions and business processes to meet the information needs of businesses and other enterprises.

In addition to the core courses, students specializing in data management choose five (5) of the following elective courses:

Course Code Course Name Credit Hours
CMP 622

Prerequisite: CMP 556
This course covers the following topics: file structures, indexing, and hashing; algorithms for query processing; advanced normalization and denormalization; query optimization; database security; privacy; introduction to data mining and warehousing; information retrieval; object-relational databases and XML; database performance tuning; spatial and temporal databases; advanced transaction processing; introduction to distributed databases; introduction to big data; introduction to Hadoop; database administration using Oracle.

3
CMP 624

Prerequisite:CMP 556
This course examines the technical skills required to design, implement, and maintain a data warehouse using a DBMS such as Oracle Warehouse Builder. It covers basic data warehousing concepts, data warehousing system design and implementation, gathering data from primary data sources, transforming data, and loading data (ETL) into a DBMS.Students learn how to create a cube using OLAP and analyze cube data using client applications, the typical data warehouse components and architecture.

3
CMP 625

Prerequisite:CMP 556
This course covers the querying of unstructured textual data; statistical, syntactical, and logical analysis of natural language; thesaurus and dictionary systems; web corpus construction and web corpora; searching strategies and cataloguing; and large-scale file structures.

3
CMP 626

Prerequisite: CMP 556
This course focuses exclusively on the design and system issues related to distributed database systems. Topics covered include: distributed database architectures; design strategies for distributed databases; federated databases; query processing techniques and algorithms; transaction management and concurrency control concepts; and reliability and fault tolerance mechanisms. Design and implementation issues related to multi-database systems are discussed as well.

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 online analytical processing, 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 628

Prerequisite:Dean’s approval Internship / CPT Qualified
This course covers advanced classification methods, cluster analysis, advanced cluster analysis, outlier detection, text analytics, big data and mining trends. It also covers emerging trends, research and developments in data manageme

3
CMP 643

Prerequisite: CMP 556 or CMP 553
Internship / CPT Qualified
This course examines defense-in-depth strategies for securing database which are constantly under threat especially from SQL injection and other forms of attacks. It also covers mechanisms for securing data at rest and in transit. The topics covered in this course include: current protocols for the secure exchange of data; the Data Encryption Standard and the Advanced Encryption Standard and secure mechanisms for communication; the Public Key Infrastructure (PKI) and the use of digital signatures and certificates for protecting and validating data; firewalls, VPN, IDS/IPS, PKI, patch management, authentication and password security, application security, granular access control, securing database-todatabase communications, encryption, privacy, fault tolerance, protection of personal identifiable information (PII), regulations and compliance (SOX, HIPAA, GLBA, etc.,), logging, auditing and auditing architectures. Strategies for the physical protection of information assets are also studied.

3

Software Engineering

The objective of this specialization is to equip students with the knowledge and skills to effectively carry out requirements engineering and to design and construct high quality software. Students will also become competent in software testing, maintenance, configuration, and management to meet the business needs of an enterprise in a highly dynamic and competitive business environment.

In addition to the core courses, students specializing in software engineering choose five (5) of the following elective courses:

Course Code Course Name Credit Hours
CMP 632

Prerequisite: CMP 560
This course is an introduction to requirements engineering. Topics covered include: domain understanding and requirements elicitation; requirements evaluation; requirements specification and documentation; use of diagrammatic notation; requirements quality assurance through inspections, reviews, validation, and verification; requirements evolution; goal-orientation in requirements engineering; modeling system objectives with goal diagrams; risk analysis on goal models; modeling conceptual objects with class diagrams; modeling system agents and responsibilities; modeling system operations and behaviors; integrating multiple system views; and goal-oriented model-building method action.

3
CMP 635

Prerequisite: CMP 560
Internship / CPT Qualified

This course is a study of software quality and software process improvement techniques. The topics covered in this course include: software reliability, software quality, verification and validation, ISO 9126 (quality characteristics), ISO 9000 software quality standard, Capability Maturity Models Integration (CMMI) 1 to 5; the Personal Software Process (PSP);and the Team Software Process (TSP) that covers: leadership, teams and team motivation, building teams, managing to plan, maintaining product focus, following the process, managing quality, management support, reporting to management,protecting the team, developing the team, developing team members, and improving team performance.

3
CMP 637

Prerequisite: CMP 560
This course is a study of software engineering management issues. The topics covered in this course include: software project planning, project goals and objectives, project policies and standards, process planning, project assumptions and forecasts, project deliverables, project staffing, effort, schedule, and cost estimation, resource allocation, quality management and project plan/budget development and management; risk management: risk management concepts, risk management process, risk management tools, organizational risk management and joint supplier/customer risk management; software project organization and enactment: project organization, project directing, project control, reporting and supplier contract management; review and evaluation; determining closure and closure activities; software engineering measurement: establish and sustain measurement commitment, plan the measurement process, perform the measurement process, and evaluate measurement; and engineering economics: engineering economics fundamentals, forprofit decision-making, not-for-profit decision-making, estimation, risk, and uncertainty and multiple attribute decisions.

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 661

Prerequisites: CMP 561 and CMP 650
Internship / CPT Qualified

This course examines software testing issues in software engineering. 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 form a Finite State Machine (FSM); system test design; system test planning and automation; system text execution; acceptance testing; 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 and configuration management issues. Topics covered include: software maintenance fundamentals; key issues in software maintenance; 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 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

Cybersecurity

The objective of this specialization is to equip students with in-depth knowledge and skills that will enable them to identify, develop, and implement effective and efficient defense mechanisms in order to secure organization networks and information resources to support organizational goals.

In addition to the core courses, students specializing in cybersecurity choose five (5) of the following specialization elective courses:

Course Code Course Name Credit Hours
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; and disaster planning, backups, and risks mitigation strategies.

3
CMP 562

Prerequisite: CMP 270
This course examines data communication and computer networks. Topics include: interconnection of networks; network hardware and software; reference models; data communication services and network standardization; the OSI and the Internet (TCP/IP) network models; encoding digital and analog signals; transmission media; internetworking devices; LANs/WANs; application layer protocols; HTTP, TELNET, SMPT, FTP, and SNMP; cloud computing architectures; and the domain name services. The course covers each network layer in detail, starting from the physical layer and moving toward the application layer. An introduction to network security topics is also included.

3
CMP 630

Prerequisite: CMP 550/CMP 562
Internship / CPT Qualified

This course examines computer network forensics. The topics covered include digital evidence concepts relating to a digital crime scene; the identification, preservation, collection, examination, analysis, and presentation of evidence for prosecution purposes; network forensics investigative methodology (OSCAR); sources of network-based evidence; evidence acquisition, packet analysis, statistical flow analysis, and wireless network forensics; network intrusion detection and analysis, event log aggregation, correlation and analysis; and malware forensics. The course also studies auditing and compliance requirements and standards, strategies for achieving and maintaining the same, and the laws and ethics related to computer forensics and challenges in computer forensics.

3
CMP 643

Prerequisite: CMP 556 or CMP 553
Internship / CPT Qualified
This course examines defense-in-depth strategies for securing database which are constantly under threat especially from SQL injection and other forms of attacks. It also covers mechanisms for securing data at rest and in transit. The topics covered in this course include: current protocols for the secure exchange of data; the Data Encryption Standard and the Advanced Encryption Standard and secure mechanisms for communication; the Public Key Infrastructure (PKI) and the use of digital signatures and certificates for protecting and validating data; firewalls, VPN, IDS/IPS, PKI, patch management, authentication and password security, application security, granular access control, securing database-todatabase communications, encryption, privacy, fault tolerance, protection of personal identifiable information (PII), regulations and compliance (SOX, HIPAA, GLBA, etc.,), logging, auditing and auditing architectures. Strategies for the physical protection of information assets are also studied.

3
CMP 644

Prerequisite: CMP 558
This course studies the theory and implementation of intrusion detection and prevention systems. Topics covered include: network-base, host-based, and hybrid intrusion detection; intrusion prevention; attack pattern identification; deployment; response; surveillance; damage assessment; data forensics; attack tracing; system recovery; and continuity of operation (COP). The course also examines penetration testing methodologies; planning and scheduling; vulnerability analysis; penetration testing deliverables; and documentation.

3
CMP 645

Prerequisite: CMP 558
Internship / CPT Qualified

This course focuses on the managerial aspects of information security and assurance. Topics covered include: planning for security and contingencies; information security policy; developing the security program; security management models and practices; risk management; protection mechanisms; personnel and security; and law and ethics.

3
CMP 647

Prerequisite: CMP 558
Internship / CPT Qualified

This course studies wireless and mobile security. Topics include encryption and cryptographic protocols; specifications needed for 3GPP; public-key and elliptic curve cryptography; AES; KASUMI; MIMO/OFDMA for 4G systems such as Long Term Evolution (LTE), Ultra Mobile Broadband (UMB), Mobile WiMax, or Wireless Broadband (WiBro); intrusion detection systems; secure routing; authentication on wireless networks; security for handheld devices; real-time wireless security; and security measures for embedded devices.

3
CMP 648

Prerequisite:Dean’s approval Internship / CPT Qualified
This course will cover topics of current interest, emerging topics, and technologies in cybersecurity as selected by the faculty. Subjects will be announced prior to each semester.

3

Intelligent Systems

The objective of this specialization is to equip students with in-depth knowledge and skills that will enable them apply artificial intelligence (AI), machine learning, and intelligent systems techniques in order to solve real-world problems.

In addition to the core courses, students specializing in intelligent systems choose five (5) of the following specialization elective courses:

Course Code Course Name Credit Hours
CMP 621
Prerequisite: None
This course provides an overview of the main thrusts in artificial intelligence, starting with the historically symbolic, logic-based approaches to knowledge representation, planning, reasoning, and learning. The course will then lead 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 651
Prerequisite: CMP 556 Internship / CPT Qualifiedem>
This course provides an in-depth study of new developments in database systems and intelligent information systems. The course covers internet databases, data warehousing and online analytical processing, object-relational, object-oriented, and deductive databases. Formal semantics of relational database and systems, physical database tuning, advanced issued in query optimization and transaction processing, advanced database facilities such as triggers and materialized views, query caching, and database mediation.
3
CMP 652
Prerequisite: CMP 561 or CMP 621
This course examines various issues relating to natural language processing. Topics covered include: parsing/semantic understanding of natural language processing; formal, context-free, and transformational grammars; augmented transition networks; and deterministic parsing and semantic parsing.

3
CMP 653
Prerequisite: CMP 621
This course provides an introduction to machine learning and statistical pattern recognition. Topics covered include: supervised and unsupervised learning; learning theory; and adaptive control and reinforcement learning. The course also discusses recent application of machine learning such as speech recognition, text and web data processing, robotics, autonomous navigation, bioinformatics, and data mining.

3
CMP 654
Prerequisite: CMP 621
Internship / CPT Qualified

This course is a study of adaptive learning as an alternative to rule-based schemes for artificial intelligence. Topics covered include: expert systems; fuzzy methods; neural net architectures; and the examination and comparison of genetic algorithms.

3
CMP 655
Prerequisite: CMP 621
Internship / CPT Qualified

This course discusses multi-agent systems concepts, theories, and applications. Topic covered include: introduction to multi-agent systems (MAS); negotiation in MAS; agent learning; agent communication language (ACL); applications of MAS with examples; agent architectures; agent model and theory; coordination in MAS; agent-oriented software engineering techniques; agent-oriented programming; agent and grid computing; and classification of agents

3
CMP 658
Prerequisite: course prerequisite is that Dean’s approval
This course will cover topics of current interest, emerging topics, and technologies in machine intelligence and cognitive science.

3

Computer Animation & Gaming

The objective of this specialization is to equip the students with in-depth knowledge and skills that will enable them to conceptualize, design, and implement computer graphics and animation programs to meet certain objective criteria.

In addition to the core courses, students specializing in computer animation and gaming choose five (5) of the following specialization elective courses:

Course Code Course Name Credit Hours
CMP 582
Prerequisite: CMP 561
This course is mainly a study of the design of graphic algorithms. Topics covered include graphics devices and graphics software, 2D primitives such as lines and curves, algorithms for drawing 2D primitives, polygons, scan conversion and other fill methods, primitives attributes, filtering and aliasing, geometric transformations in 2D in homogeneous coordinates, viewing pipeline, hierarchical graphics modeling, the graphics user interfaces, input functions and interaction modes, 3D graphics: object representations through polygonal methods, spline techniques, and octrees, 3D transformations and the 3D viewing pipeline, and algorithms to detect the visible surfaces of a 3D object in both the object space and the image space.

3
CMP 583
Prerequisite: CMP 561
Topics covered in this course include: character animation techniques; motion capture technologies; kinematic linkages; motion capture and physically based animation; fluids; modeling and animating human figures; facial animation; behavioral animation; special models for animation; and using commercial 3-D computer animation packages to create digital artistic works and visualizations.

3
CMP 584
Prerequisite: CMP 561
This course examines some design issues in HCI. Topics covered include: the design of dialogues for interactive systems; widgets, windows, and input devices; the client-server model; event-driven programming and callbacks; windows systems and dialog control; psychological, physiological, linguistic, and perceptual factors; advantages and disadvantages of various interaction techniques, command language syntaxes, and data presentation; and design methodology and guidelines.

3
CMP 585
Prerequisite: None Internship / CPT Qualified
This course examines the design of interactive multimedia. Covered topics include: the theory and multimedia development concepts; hardware components; platforms; authoring tools; the scientific, technical, and cognitive foundations of various media, including text; sound, graphics, and video; interface design.

3
CMP 586
Prerequisite: CMP 582
Topics covered in this course include: image formation; light and shading; color; linear filters; local image features; texture; stereopsis; structure from motion; segmentation by clustering; grouping and model fitting; tracking; registration; smooth surfaces and their outlines; range data; learning to classify images; detecting objects in images; image-based modeling and rendering; and image search and retrieval.

3
CMP 587
Prerequisite: Prerequisite: CMP 582 Internship / CPT Qualified
This course provides an in-depth study of the tools and techniques used in computer game design and development. Topics covered include: games and video games; design components and processes; game concepts; game worlds; creative and expressive play; character development; storytelling and narratives; user interfaces; gameplay; core mechanics; game balancing; and genres of games

3
CMP 588
Prerequisite:Prerequisite: Dean's approval Internship / CPT Qualified
This course will cover topics of current interest, emerging topics, and technologies in computer animation and gaming.

3

Software Applications Development

The objective of this specialization is to equip the students with a comprehensive understanding of advanced software applications development using modern program paradigms and tools. The program is designed to provide students with extensive hands-on experience in order to analyze, design, implement, and test software applications that meet the business objectives of an organization using techniques such as design patterns, component-based architectures, web services, service-oriented architectures, and emerging technologies.

In addition to the core courses, students specializing in software applications development choose five (5) of the following specialization elective courses:

Course Code Course Name Credit Hours
CMP 573
Prerequisite:CMP 561
This course provides an introduction to compiler construction and covers stages of compilation including lexical analysis,parsing, code generation and code optimization, formal translation of programming languages, program syntax and semantics, finite state recognizers and regular grammars, context-free parsing techniques, attribute grammars syntaxdirected translation schema, type checking, code generation, data flow analysis and code optimization.

3
CMP 632

Prerequisite: CMP 560
This course is an introduction to requirements engineering. Topics covered include: domain understanding and requirements elicitation; requirements evaluation; requirements specification and documentation; use of diagrammatic notation; requirements quality assurance through inspections, reviews, validation, and verification; requirements evolution; goal-orientation in requirements engineering; modeling system objectives with goal diagrams; risk analysis on goal models; modeling conceptual objects with class diagrams; modeling system agents and responsibilities; modeling system operations and behaviors; integrating multiple system views; and goal-oriented model-building method action.

3
CMP 636
Prerequisite:CMP 632
The course covers the development of software applications using new paradigms and architectural styles as well as wellknown paradigms. Topics covered in this course include: Component Based Software Engineering (CBSE): Domain engineering and Component-Based Design, Component Qualification, Component Adaptation, Component Composition and Component Update, the V-Model, the object models: OMG/CORBA, COM/DCOM, JavaBeans, CCM, Testing; Web Service (WS); Service-oriented architecture (SOA): benefits, design concept, principles, types, WS protocols,Programmatic Service Contract, Network Management Architecture, benefits and Challenges, SOA Extensions: SOA, Web 2.0, Services over the Messenger, Mashups, Digital Nervous Systems, etc.

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 661

Prerequisites: CMP 561 and CMP 650
Internship / CPT Qualified

This course examines software testing issues in software engineering. 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 form a Finite State Machine (FSM); system test design; system test planning and automation; system text execution; acceptance testing; test team organization; and the IEEE standards for software testing and documentation.

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 modules 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
This course looks at the quickly developing landscape of mobile applications. The course focuses on web-based mobile applications, and thus covers issues of web service design, mobile platforms, and the specific constraints and requirements for user interface design for limited devices. The course combines a conceptual overview, design issues, and practical development issues.

3
CMP 618
Prerequisite:course prerequisite is that Dean’s approval
This course will cover topics of current interest, emerging topics, and technologies in software applications development as selected by the faculty. Subjects will be announced prior to each semester.

3

Career Paths & Opportunities

  • System programmer
  • Application developer
  • Data analyst
  • Software systems architect
  • Computer engineer
  • Web developer
  • Network engineer
  • Security engineer
  • Chief technology officer
  • Network administrator
  • Network manager
  • Network architect
  • IT manager
  • Data administrator
  • Network and security engineer
  • Integration engineer
  • Network and systems administrator
  • Software engineer
  • Solutions architect
  • Programmer
  • Technical systems analyst
  • Software quality assurance engineer
  • Applications coordinator
  • Software architect
  • Software and applications developer

Sample Schedule

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

Course Code Course Name Credits
First Semester
CMP 511 Computer Architecture & Implementation 3
CMP 556 Database Management Systems I 3
CMP 560 Software Engineering 3
Second Semester
CMP 561 Design and Analysis of Algorithms 3
CMP 641 Operating Systems 3
CMP XXX CMP Specialization #1 3
Third Semester
CMP XXX CMP Specialization #2 3
CMP XXX CMP Specialization #3 3
CMP XXX CMP Specialization #4 3
Fourth Semester
CMP XXX CMP Specialization #5 3
CMP XXX CMP Elective 3
CAR 600 CAR 600 Career Planning & Management (CMP Elective) 3

The School of Computer Information Systems at VIU also offers other graduate degree and Certificate Programs in our Fairfax, VA campus and online.