Every course in the Online Computer Science, M.S. program is carefully designed to meet the industry’s demand. Through a mix of core courses and electives, you’ll gain a comprehensive understanding of computer algorithms, computational theory, computer architecture, operating systems, compiler design, and software-based systems.
Selected topics in set theory, Boolean Algebra, graph theory, and combinatorics. Formal languages, regular expressions and grammar. Automata and Turing machines. Algorithms and computability.
This course explores modern architectural design patterns and exposes the students to the latest technologies used to build computing systems. Concepts presented in this course include, but are not limited, to pipelining, multicore processors, superscalar processors with in-order and out-of order execution, virtual machines, memory hierarchy, virtual memory, interconnection networking, storage and I/0 architectures, computer clustering, and cloud computing. Students are introduced to performance evaluation techniques and learn how to use the results of such techniques in the design of computing systems.
Abstract Data Structures are reviewed. The course covers the study of both the design and analysis of algorithms. Design methods include: divide-and-conquer; the greedy method; dynamic programming; basic traversal and search techniques, algebraic and geometric problems, as well as parallel algorithms (PRAM). Space and time complexity; performance evaluation; and NP-Hard and NP-Complete classes are also covered. The purpose of this approach to the subject is to enable students to design and analyze new algorithms for themselves.
In this course, students are introduced to advanced concepts in operating systems with emphasis on security. Students will study contemporary operating systems including UNIX and Windows. Topics include the application of policies for security administration, directory services, file system security, audit and logging, cryptographic enabled applications, cryptographic programming interfaces, and operating system integrity verification techniques.
Co-requisite: CSCI 651
The general principles of modern programming language design: Imperative (as exemplified by Pascal, C and Ada), functional (Lisp), and logical (Prolog) languages. Data management, abstract data types, packages, and object-oriented languages (Ada, C + +). Control structures. Syntax, and formal semantics. While some implementation techniques are mentioned, the primary thrust of the course is concerned with the abstract semantics of programming languages.
Techniques for the development and implementation of high-quality digital computer software are presented. Major areas covered in the course include software quality factors and metrics, software development outlines and specification languages, top-down vs. bottom-up design and development, complexity, testing, and software reliability.
Design and implementation of databases. Hierarchical and network concepts; relational databases systems; entity relationship model: query languages; relational design theory; security and authorization; access methods; concurrency control backup and recovery.
Electives (3 credits each, select 3 courses from the following)
This course will introduce basic programming concepts (i.e. in Python and R), and techniques including data structures (vector, matrix, list, data frame, factor), basic and common operations/concepts (indexing, vectorization, split, subset), data input and output, control structures, and functions. Other topics will include string operations (stringr package) and data manipulation techniques (dplyr, reshape2 packages). The course will also explore data mining, such as probability basics/data exploration, clustering, regression, classification, graphics, and debugging.
Prerequisite: DTSC 610
This course provides an overview of big data applications ranging from data acquisition, storage, management, transfer, to analytics, with focus on the state-of-the-art technologies, tools, and platforms that constitute big-data computing solutions. Real-life big data applications and workflows are introduced as well as use cases to illustrate the development, deployment, and execution of a wide spectrum of emerging big-data solutions.
This course is designed to provide an introduction to the fundamental principles of designing and building effective data visualizations. Students will learn about data visualization principles rooted in graphic design, psychology and cognitive science, and how to use these principles in conjunction with state-of-the-art technology to create effective visualizations for any domain. Students who have taken this course will not only understand the current state-of-the-art in data visualization, but they will be capable of extending it.
In this course, students will study the issues involved in structuring information systems to meet enterprise requirements, including security and public policy regulations. Topics include the building blocks of an information system, emphasizing the security and administration aspects of each, as well as life-cycle considerations, and risk management. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
In this course, students are introduced to the design of secure computer networks. Exploitation of weaknesses in the design of network infrastructure and security flaws in network protocols are presented and discussed. Network operation systems and network architectures are reviewed, together with the respective security related issues. Issues related to the security of content and applications such as emails, DNS, and web servers are also addressed. Security techniques including intrusion detection, forensics, cryptography, authentication and access control are analyzed. Security issues in IPSEC, SSL/ TLS, and the SSH protocol are presented.
This course introduces students to a range of contemporary, applications oriented, and advanced technical aspects of information security and assurance. Topics covered in this course are: the need and planning for security, information security maintenance, security technology, cryptography, and physical security. The course will also cover security policies, and legal and ethical issues. The course will also include a special project or paper as required and specified by the instructor and the SoECS graduate committee.
Total Required Credits: 30