Computer Science, Ph.D.
Curriculum

Major Requirements

Core Required Courses Credits:
CSCI 610 Theoretic Concepts in Computers and Computation 3
Selected topics in set theory, Boolean Algebra, graph theory, and combinatorics. Formal languages, regular expressions and grammars. Automata and Turing machines. Algorithms and computability.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 621 Programming Languages 3
Prerequisite: 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.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 651 Algorithm Concepts 3
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 themselve.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
    Total: 9 Credits
Electives can be selected from the following list in the areas of: Computer Science; Cybersecurity; and Data Science.
 
Core Required Electives (choose nine) Credits:
CSCI 606 Distributed Systems 3
This course introduces the principles and practice underlying the design of distributed systems, both Internet-based and otherwise. Major topics include interprocess communication and remote invocation, distributed naming, distributed file systems, data replication, distributed transaction mechanisms, and distributed shared objects, secure communication, authentication and access control, mobile code, transactions and persistent storage mechanisms. A course project is required to construct working distributed applications using contemporary languages, tools and environments.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 620 Operating System Security 3
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. Equivalent to ITEC 445.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 626 Information Retrieval 3
This course provides students with an introduction to the basics and techniques of information retrieval. Topics cover search engines, retrieval strategies such as vector space, extended Boolean, probabilistic models and evaluation methods including relevance-based measures, query processing, indexing and searching. Classroom Hours- Laboratory and/or Studio Hours- Course Credits: 3-0-3

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 636 Big Data Analytics 3
Organizations today are generating massive amounts of data that are too large and unstructured to fit in relational databases. Organizations and enterprises are turning to massively parallel computing solutions such as Hadoop. The Apache Hadoop platform allows for distributed processing of large data sets across clusters of computers using the map and reduce programming model. Students will gain an in-depth understanding of how MapReduce and Distributed File Systems work. In addition, they will be able to author Hadoop-based MapReduce applications in Java and use Hadoop subprojects Hive and Pig to build powerful data processing applications. Industry systems, such as IBM InfoSphere BigInsights and IBM InfoSphere Streams will be studied. Classroom Hours- Laboratory and/or Studio Hours- Course Credits: 3-0-3

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 641 Computer Architecture I 3
This course explores modem architectural design patterns and exposes the students to 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. Equivalent to EENG 641.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 645 Numerical Analysis 3
Real and complex zeros of a function and polynomials, interpolation, roundoff error, optimization techniques, least square techniques, orthogonal functions, Legendre and Chebyshev polynomials, numerical integration and differentiation, numerical solution of differential equations with initial and boundary values. The numerical methods developed will emphasize efficiency, accuracy and suitability to high-speed computing. Selected algorithms may be flowcharted and programmed for solution on a computer.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 646 Database Interface and Programming 3
An advanced course in static and dynamic programming embedded SQL using C. Open Database Connectivity (ODBC), interface to access data from various database management systems with Structured Query Language (SQL). Classroom Hours- Laboratory and/or Studio Hours- Course Credits: 3-0-3

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 654 Principles of Information Security 3
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. Classroom Hours- Laboratory and/or Studio Hours- Course Credits 3-0-3

CSCI 655 Automata Theory 3
Theory of finite automata, identification of states. Turing Machines, neural nets, majority logic. Applications in pattern recognition and game playing. Hardware and software implementations.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 656 Distributed Database Systems 3
Concepts underlying distributed systems: synchronization, communication, fault-tolerance. Concepts and architecture of distributed database systems. Distributed concurrency control and recovery. Replicated databases. Distributed Query Processing. Examples of commercial relational distributed DBMS. Classroom Hours- Laboratory and/or Studio Hours- Course Credits: 3-0-3

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 657 Introduction to Data Mining 3
This course introduces the concepts, techniques, and applications of data mining. Topics include data preprocessing, clustering, data warehouse and Online Analytical Processing (OLAP) technology, cluster and social network analysis, data classification and prediction, multimedia and web mining. Classroom Hours- Laboratory and/or Studio Hours- Course Credits: 3-0-3

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 665 Software Engineering 3
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.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 690 Computer Networks 3
Connection of multiple systems in a networked environment. Topics include physical connection alternatives, error management at the physical level, commercially available protocol support, packet switching, LANs, WANs and Gateways.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 760 Database Systems 3
Prerequisite: Prerequisites: CSCI 651 or DTSC 610

Design and implementation of databases. Hierarchal and network concepts; relational databases systems; entity relationship model: query languages; relational design theory; security and authorization; access methods; concurrency control backup and recovery.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
CSCI 790 Advanced Software Engineering 3
Prerequisite: Prerequisite: CSCI 665

The major emphasis in this course is on the structural design of software. Methods and concepts covered include cohesion and coupling; structured and composite design: Jackson methodology; higher order software; data abstraction and design of program families.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
INCS 615 Advanced Network and Internet Security 3
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, 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.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
INCS 618 Computer Security Risk Management and Legal Issues 3
This course explores several domains in the Information Security Common Body of Knowledge. Students in this course will be introduced to the following domains within Information Security: Security Management Practices, Security Architecture and Models, Business Continuity Planning (BCP), Disaster Recovery Planning (DRP), Law, Investigations, Ethics, Physical Security, Operations Security, Access Control Systems and Methodology, Network and Internet Security. 3-0-3

INCS 712 Digital Forensics 3
Prerequisite: Prerequisite: INCS 615

Digital forensics is concerned with the post-analysis of information systems that have already been compromised, usually by criminal actors. It is a field that encompasses a range of topics, including computer forensics, memory forensics, network forensics, and incident response. This course is an introduction to the investigation procedures that are used in digital forensics. These procedures, depending on the type of crime, reconstruct the events that led to the compromise. Students who take this course will gain an in depth understanding of handling digital evidence, gathering and investigating artifacts and evidence, and effectively managing security incidents, including incident response techniques for preventing and addressing cyberattacks.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
INCS 741 Cryptography 3
In this course we introduce the students to key issues in cryptography. Topics covered include definitions of security, digital signatures, cryptographic hash functions, authentication, symmetric and asymmetric encryption, stream ciphers, and zero knowledge proof systems.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
INCS 745 Intrusion Detection and Hacker Exploits 3
Prerequisite: Prerequisite: CSCI 620 and INCS 615

Methods used in computer and network hacking are studied with the intention of learning how to better to protect systems from such intrusions. Methods used by hackers include reconnaissance techniques, system scanning, and gaining system access by network and application level attacks, and denial of service attacks. The course will extensively study Internet related protocols, methods of traffic analysis, tools and techniques for implementing traffic filtering and monitoring, and intrusion detection techniques. Students will study common hacking and evasion techniques for compromising intrusion detection systems.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
INCS 775 Data Center Security 3
Prerequisite: Prerequisite: INCS 745

Data Center Security is concerned with the study of computer architectures and systems that provide critical computing infrastructure. This infrastructure combines hardware devices including computers, firewalls, routers, switches, and software applications such as email systems, Web servers, and computer desktop operating systems, to implement and manage organization wide secure computing capability. Examples of critical systems include intranet, extranet, and Internet systems.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
DTSC 610 Programming for Data Science 3
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.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 2-2-3
DTSC 615 Optimization Methods for Data Science 3
Prerequisite: Corequisites: DTSC 635

Basic concepts in optimization are introduced. Linear optimization (linear and integer programming) will be introduced including solution methods like simplex and the sensitivity analysis with applications to transportation, network optimization and task assignments. Unconstrained and constrained non-linear optimization will be studied and solution methods using tools like Matlab/Excel will be discussed. Extensions to game theory and computational methods to solve static, dynamic games will be provided. Decision theory algorithms and statistical data analysis tools (Z-test, t-test, F-test, Bayesian algorithms and Neyman Pearson methods) will be studied. Linear and non-linear regression techniques will be explored.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
DTSC 635 Probability and Stochastic Processes 3
This course starts with a review of the elements of probability theory such as: axioms of probability, conditional and independent probabilities, random variables, distribution functions, functions of random variables, statistical averages, and some well-known random variables such as Bernoulli, geometry, binomial, Pascal, Gaussian, and Poisson. The course introduces more advanced topics such as stochastic processes, stationary processes, correlations, statistical signal processing, and well-known processes such as Brownian motion, Poisson, Gaussian, and Markov. Prerequisite: Undergraduate level knowledge of probability theory.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
DTSC 701 Introduction to Big Data 3
Prerequisite: 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.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 3-0-3
    Total: 27 Credits
** Students can register for the courses below multiple times with credits ranging from 1 to 9 to fulfill the total 30-credit requirement for research and dissertation.
 
Independent Research Credits:
CSGR 860 Independent Research** 1–9
This course is devoted to independent research for PhD student. Work is carried out under supervision of a graduate school faculty member and must be approved by the chairperson of ECE department.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 0-0-1
    Total: 18 Credits
 
Ph.D. Dissertation Credits:
CSGR 861 Ph.D. Dissertation** 1–9
Development and implementation of original research. After completion of preliminary dissertation proposal, candidates must continue to register for this course to maintain candidacy until the completed dissertation is submitted.

Classroom Hours - Laboratory and/or Studio Hours – Course Credits: 0-0-1
    Total: 12 Credits
Students will be required to maintain an overall GPA of 3.0 in Ph.D. courses. A grade below a B- will result in the student repeating the course.
 

Total Program Credits = 66



A maximum of 18 credits can be transferred if the student has an M.S. degree in computer science or a related area, with approval of the program director.