Computer Science (CSCI)

CSCI 8000  ADVANCED CONCEPTS IN PROGRAMMING LANGUAGES (3 credits)

This course studies the concepts and properties of programming languages in general. It covers the syntax of major programming languages such as the imperative, functional, and logic programming languages, and the semantics of programming languages such as those dealing with concurrency and object oriented programming. Topics in formal language theory, parsing, and formal methods of syntax description are also covered.

Prerequisite(s)/Corequisite(s): CSCI 3320. Not open to non-degree graduate students.

CSCI 8010  FOUNDATIONS OF COMPUTER SCIENCE (3 credits)

This is a foundational course for students enrolled in the graduate program in computer science. The objectives are to introduce students to a large body of concepts so that they are better prepared for undertaking the core courses in the graduate program. It is assumed that student would have programmed in a high-level language and have exposure to basic college level mathematical concepts such as logarithms, exponents, sequences, and counting principles.

Prerequisite(s)/Corequisite(s): Students are expected to have written programs using a high-level programming language and should understand basic mathematical concepts including exponents, logarithms, sequences, and counting principles. Not open to non-degree graduate students.

CSCI 8016  INTRODUCTION TO THE THEORY OF RECURSIVE FUNCTIONS (3 credits)

This is a proof-oriented course presenting the foundations of Recursion Theory. We present the definition and properties of the class of primitive recursive functions, study the formal models of computation, and investigate partially computable functions, universal programs. We prove Rice's Theorem, the Recursion Theorem, develop the arithmetic hierarchy, demonstrate Post's theorem. Introduction to the formal theories of computability and complexity is also given. (Cross-listed with MATH 4010, MATH 8016, CSCI 4010).

Prerequisite(s)/Corequisite(s): MATH 2230 with a C- or better or CSCI 3660 with a C- or better or instructor's permission

CSCI 8040  LARGE SCALE NETWORK ANALYSIS ALGORITHMS (3 credits)

The course will provide a review of the properties of large complex network systems, such as those occurring in social networks, epidemiology and biological systems. We will discuss algorithms to analyze these properties, their implementations, their stability under information fluctuation and how information spreads through networks.

Prerequisite(s)/Corequisite(s): Students should be comfortable w/ programming, have knowledge of data structures, preliminary graph algorithms, & linear algebra. Suggest Prep Courses: CSCI 4150 or CSCI 8156; CSCI 3320; MATH 4050 or Permission. Not open to non-degree graduate students.

CSCI 8050  ALGORITHMIC GRAPH THEORY (3 credits)

Review of the basic concepts of graphy theory. Introduction to perfect graphs and their characterizations. Main classes of perfect graphs and their properties. Algorithms for main problems of perfect graphs. Applications of perfect graphs in several fields such as scheduling, VLSI and communication networks. (Cross-listed with MATH 8050).

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 and MATH 4150 or MATH 8156 or permission of instructor. Not open to non-degree graduate students.

CSCI 8060  ALGORITHMIC COMBINATORICS (3 credits)

This course includes classical combinatorial analysis graph theory, trees, network flow, matching theory, external problems, and block designs. (Cross-listed with MATH 8060).

Prerequisite(s)/Corequisite(s): MATH 3100, CSCI 3100, MATH 8105 or CSCI 8105 or instructor's permission.

CSCI 8070  GENETIC ALGORITHMS (3 credits)

This course introduces the student to the fast growing field of genetic algorithms. The course covers the basic concepts of genetic algorithms and their implementations. Case studies from different fields such as chip design, scheduling, and information gathering are used to illustrate how genetic algorithms can be used to solve important problems effectively.

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325; bachelor's degree and permission from the graduate program committee. Not open to non-degree graduate students.

CSCI 8080  DESIGN AND ANALYSIS OF ALGORITHMS (3 credits)

The study of algorithms important in computer programming. Principles and underlying concepts of algorithm design, fundamental techniques of algorithm analysis, typical types of algorithms and computer architecture. (Cross-listed with MATH 8080).

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 or equivalent. Not open to non-degree graduate students.

CSCI 8100  EXPERT SYSTEMS (3 credits)

A study of the theoretical basis and practical design of expert systems. Knowledge engineering. Foundations in logic programming, the architecture of expert systems, languages (Prolog, LISP) for expert systems, expert system shells, knowledge acquisition, current issues.

Prerequisite(s)/Corequisite(s): CSCI 4450 or CSCI 8456 or equivalent. Not open to non-degree graduate students.

CSCI 8105  APPLIED COMBINATORICS (3 credits)

Basic counting methods, generating functions, recurrence relations, principle of inclusion-exclusion. Polya's formula. Elements of graph theory, trees and searching network algorithms. (Cross-listed with MATH 8105, MATH 3100, CSCI 3100).

Prerequisite(s)/Corequisite(s): MATH 2030, MATH 2040, MATH 2230, or CSCI 2030 all with a C- or better. Mathematical logic; Set theory; Relations; Functions; Congruences; Inductive and recursive definitions; Discrete probability; sets, graphs, trees, & matrices

CSCI 8110  ADVANCED TOPICS IN ARTIFICIAL INTELLIGENCE (3 credits)

An in-depth study of one or more topics selected from: search techniques, knowledge representation, knowledge programming, parallel processing in Artificial Intelligence, natural language processing, image processing, current and future directions, etc. May be repeated with different topics, with permission of adviser.

Prerequisite(s)/Corequisite(s): CSCI 4450 or CSCI 8456 or equivalent. Not open to non-degree graduate students.

CSCI 8150  ADVANCED COMPUTER ARCHITECTURE (3 credits)

Various parallel architectures, models of parallel computation, processor arrays, multiprocessor systems, pipelined and vector processors, dataflow computers and systolic array structures.

Prerequisite(s)/Corequisite(s): CSCI 4350, CSCI 4500 and graduate. Not open to non-degree graduate students.

CSCI 8156  GRAPH THEORY & APPLICATIONS (3 credits)

Introduction to graph theory. Representations of graphs and graph isomorphism. Trees as a special case of graphs. Connectivity, covering, matching and coloring in graphs. Directed graphs and planar graphs. Applications of graph theory in several fields such as networks, social sciences, VLSI, chemistry and parallel processing. (Cross-listed with CSCI 4150, MATH 4150, MATH 8156).

Prerequisite(s)/Corequisite(s): MATH 2030 or permission of instructor.

CSCI 8160  INTRODUCTION TO VLSI DESIGN (3 credits)

Introduction to the principle concepts of integrated circuit layout. Presentation of the hardware foundations, algorithmic mathematical and graph theoretical foundations of circuit layout. Partitioning problems in integrated circuits. Placement and floor planning phase in layout. Routing algorithms and compaction techniques. Applications of graph theory in several steps of the design process of VLSI circuits.

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 and CSCI 4350 or CSCI 8356. Not open to non-degree graduate students.

CSCI 8170  VLSI TESTING (3 credits)

This course covers topics in VLSI testing. In particular, topics covered include fault modeling, fault simulation, test generation, testability profiles, built-in tests, and binary decision diagrams.

Prerequisite(s)/Corequisite(s): Bachelors degree and permission from the Graduate Program Committee; CSCI 4350. Not open to non-degree graduate students.

CSCI 8200  INTERCONNECTION NETWORKS (3 credits)

This course is to introduce the technology of interconnection networks from topology of networks, through routing and flow control, to a discussion of hardware/software fault tolerance, and to understand parameters affecting performance.

Prerequisite(s)/Corequisite(s): Bachelors degree and permission from the Graduate Program Committee. Not open to non-degree graduate students.

CSCI 8210  ADVANCED COMMUNICATIONS NETWORKS (3 credits)

Advanced study of communication networks, analysis of communication needs, special problems encountered in different types of networks, efficiency and traffic analysis and emerging hardware software technologies. Detailed "hands-on" study of the TCP/IP networking protocols.

Prerequisite(s)/Corequisite(s): CSCI 3550 or 8555 or equivalent. Not open to non-degree graduate students.

CSCI 8220  TELECOMMUNICATIONS MANAGEMENT (3 credits)

This course will focus on the management required to operate today's complex telecommunications networks. The course will be based on the standards that are currently in place as well as examining the future directions. The student, upon the successful completion of this course, will have: an operational knowledge of the components of complex telecommunications networks, the management structures and computer systems needed to maintain that network, and the security solutions used to protect that network. (Cross-listed with ISQA 8230)

Prerequisite(s)/Corequisite(s): Acceptance into the Graduate program of CSCI or MIS or by permission of the instructor. Not open to non-degree graduate students

CSCI 8256  HUMAN COMPUTER INTERACTION (3 credits)

Human computer interaction is concerned with the joint performance of tasks by humans and machines; human capabilities to use machines (including learnability of interfaces); algorithms and programming of the interface; engineering concerns that arise in designing and building interfaces; the process of specification, design, and implementation of interfaces; and design trade-offs. (Cross-listed with CSCI 4250).

CSCI 8266  USER INTERFACE DESIGN AND DEVELOPMENT (3 credits)

Graphical user interface (GUI) design is concerned with the application of user-centered design principles to graphical computer interfaces. Topics include user-centered design, establishing usability criteria and measures, usability testing, psychology of the user, rapid prototyping, iterative design and design tools. This course is an extension and application of its prerequisite, Human Computer Interaction. (Cross-listed with CSCI 4260).

CSCI 8300  IMAGE PROCESSING AND COMPUTER VISION (3 credits)

This course introduces the computer system structures and programming methodologies for digital image processing and computer vision. The course will cover the mathematical models of digital image formation, image representation, image enhancement and image understanding. Techniques for edge detection, region growing, segmentation, two-dimensional and three-dimensional description of object shapes will be discussed. The course will concentrate on the study of knowledge-based approaches for computer interpretation and classification of natural and man-made scenes and objects.

Prerequisite(s)/Corequisite(s): CSCI 1620 and CSCI 3220. Not open to non-degree graduate students.

CSCI 8305  NUMERICAL METHODS (3 credits)

This course involves solving nonlinear algebraic equations and systems of equations, interpolation and polynomial approximation, numerical differentiation and integration, numerical solutions to ordinary differential equations, analysis of algorithms and errors, and computational efficiency. (Cross-listed with CSCI 3300, MATH 3300, MATH 8305).

Prerequisite(s)/Corequisite(s): MATH 1960 with a C- or better or permission of instructor

CSCI 8306  DETERMINISTIC OPERATIONS RESEARCH MODELS (3 credits)

This is a survey course of deterministic operations research models and algorithms. Topics include linear programming, network programming, and integer programming. (Cross-listed with CSCI 4300, MATH 4300, MATH 8306).

Prerequisite(s)/Corequisite(s): MATH 2050 with a C- or better or permission of instructor.

CSCI 8316  PROBABILISTIC OPERATIONS RESEARCH MODELS (3 credits)

This is a survey course of probabilistic operations, research models and algorithms. Topics include Markov chains, queueing theory, inventory models, forecasting, and simulation. (Cross-listed with CSCI 4310, MATH 4310, MATH 8316).

Prerequisite(s)/Corequisite(s): MATH 2050 and either MATH 4740 or MATH 8746 or STAT 3800 or STAT 8805 all with a C- or better or permission of instructor.

CSCI 8325  DATA STRUCTURES (3 credits)

This is a core that will cover a number of data structures such as tree, hashing, priority queues and graphs as well as different algorithm design methods by examining common problem-solving techniques. (Cross-listed with CSCI 3320)

CSCI 8340  DATABASE MANAGEMENT SYSTEMS II (3 credits)

A continuation of the study of Data Base Management Systems. Extended discussion of logical data base design, normalization theory, query optimization, concurrent issues. Advanced topics including distributed data bases, deductive data bases, data base machine, and others.

Prerequisite(s)/Corequisite(s): CSCI 8856 or equivalent. Not open to non-degree graduate students.

CSCI 8350  DATA WAREHOUSING AND DATA MINING (3 credits)

Covers topics related to decision support queries. In particular, topics covered include building data warehouses, On-Line Analysis Processing (OLAP), maintenance of materialized views, indexing, various data mining techniques, and integration of OLAP and data mining.

Prerequisite(s)/Corequisite(s): CSCI 8856; bachelors degree and permission from Graduate Committee. Not open to non-degree graduate students.

CSCI 8360  INFORMATION STORAGE AND RETRIEVAL (3 credits)

The course presents basic techniques for analyzing, indexing, representing, storing, searching, retrieving, and presenting desired information in information storage and retrieval systems. Models, document processing, thesauri, evaluation of system effectiveness, as well as special hardware will be discussed. Selected advanced topics will also be covered.

Prerequisite(s)/Corequisite(s): CSCI 4850 or CSCI 8856; bachelors degree and permission from Graduate Program Committee. Not open to non-degree graduate students.

CSCI 8366  FOUNDATIONS OF INFORMATION ASSURANCE (3 credits)

Contemporary issues in computer security, including sources for computer security threats and appropriate reactions; basic encryption and decryption; secure encryption systems; program security, trusted operating systems; database security, network and distributed systems security, administering security; legal and ethical issues. (Cross-listed with CYBR 4360, CYBR 8366)

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 OR ISQA 3400 OR By instructor permission

CSCI 8390  ADVANCED TOPICS IN DATA BASE MANAGEMENT (3 credits)

An in-depth study of one or more topics in the field of Data Base Management Systems, such as logical and/or physical data base design, query optimization, distributed data bases, intelligent knowledge-based systems, emerging technologies and applications. May be repeated with different topics with permission of adviser.

Prerequisite(s)/Corequisite(s): CSCI 4850 or CSCI 8856 or equivalent. Not open to non-degree graduate students.

CSCI 8400  ADVANCED COMPUTER GRAPHICS (3 credits)

This course covers advanced rending and modeling techniques. Topics covered include: Three-dimensional viewing, visible-surface detection methods, illumination models and surface rendering methods, color models and color applications, and computer animation.

Prerequisite(s)/Corequisite(s): Bachelors degree and permission from the Graduate Program Committee; CSCI 4620 or CSCI 8626. Not open to non-degree graduate students.

CSCI 8410  DISTRIBUTED SYSTEMS AND NETWORK SECURITY (3 credits)

The course aims at understanding the issues surrounding data security, integrity, confidentiality and availability in distributed systems. Further, we will discuss various network security issues, threats that exist and strategies to mitigate them. This course will cover topics in cryptography, public key infrastructure, authentication, hashing, digital signatures, ARP protection, IP and IPSEC, IP Tables, SSL/TLS, firewalls, etc. (Cross-listed with CYBR 8410)

Prerequisite(s)/Corequisite(s): CSCI 8366 or equivalent(s). Not open to non-degree graduate students.

CSCI 8420  SOFTWARE ASSURANCE (3 credits)

Software assurance is a reasoned, auditable argument created to support the belief that the software will operate as expected. This course is an intersection of knowledge areas necessary to perform engineering activities or aspects of activities relevant for promoting software assurance. This course takes on a software development lifecycle perspective for the prevention of flaws. (Cross-listed with CYBR 8420)

Prerequisite(s)/Corequisite(s): CSCI 4830 or CSCI 8836 OR by permission of the Instructor. Not open to non-degree graduate students.

CSCI 8430  TRUSTED SYSTEM DESIGN, ANALYSIS AND DEVELOPMENT (3 credits)

This course examines in detail: the principles of a security architecture, access control, policy and the threat of malicious code; the considerations of trusted system implementation to include hardware security mechanisms, security models, security kernels, and architectural alternatives; the related assurance measures associated with trusted systems to include documentation, formal specification and verification, and testing, and approaches that extend the trusted system, into applications and databases and into networks and distributed systems.

Prerequisite(s)/Corequisite(s): CSCI 8366 or equivalents, or instructor permission. Not open to non-degree graduate students.

CSCI 8440  SECURE SYSTEMS ENGINEERING (3 credits)

This course takes a global risk-based view of the process of defining, verifying, validating and continuously monitoring secure information systems. The course will investigate a number of secure system solutions, starting with the definition of the system security needs, and tracing through methods of verification and validation of security controls, as well as ways to continuously monitor the corresponding assurances. (Cross-listed with CYBR 8440)

Prerequisite(s)/Corequisite(s): CSCI 8366 or IASC 8366

CSCI 8446  INTRODUCTION TO PARALLEL COMPUTING (3 credits)

Need for higher-performance computers. Topics discussed include: classification of parallel computers; shared-memory versus message passing matchings; for ms of parallelism, measure of performance; designing parallel algorithms; parallel programming and parallel languages; synchorization constructs; and operating systems for parallel computers. (Cross-listed with CSCI 4440)

Prerequisite(s)/Corequisite(s): CSCI 4500 or CSCI 8506 (May be taken concurrently). Not open to non-degree graduate students.

CSCI 8450  ADVANCED TOPICS IN NATURAL LANGUAGE UNDERSTANDING (3 credits)

The course will provide in depth study of the topics in natural language processing and understanding, such as syntax, lexical and computational semantics, natural language ambiguities and their disambiguation, logical form construction and inference. The course will survey state-of-the-art natural language processing toolkits and knowledge bases that boost the development of modern language processing and understanding applications.

Prerequisite(s)/Corequisite(s): CSCI 3320 OR CSCI 3660 OR CSCI 4450. Not open to non-degree graduate students.

CSCI 8456  INTRODUCTION TO ARTIFICIAL INTELLIGENCE (3 credits)

An introduction to artificial intelligence. The course will cover topics such as machine problem solving, uninformed and informed searching, propositional logic, first order logic, approximate reasoning using Bayesian networks, temporal reasoning, planning under uncertainty and machine learning. (Cross-listed with CSCI 4450).

CSCI 8476  PATTERN RECOGNITION (3 credits)

Structures and problems of pattern recognition. Mathematics model of statistical pattern recognition, multivariate probability, Bay's decision theory, maximum likelihood estimation, whitening transformations. Parametric and non-parametric techniques, linear discriminant function, gradient-descent procedure, clustering and unsupervised learning, and feature selection algorithms. (Cross-listed with CSCI 4470)

Prerequisite(s)/Corequisite(s): CSCI 1620 with C- or better, and MATH 2050. Recommended: MATH 4740/8746 or STAT 3800/8805.

CSCI 8480  MULTI-AGENT SYSTEMS AND GAME THEORY (3 credits)

This course covers advanced topics in the area of coordination of distributed agent-based systems with a focus on computational aspects of game theory. The main topics covered in this course include distributed constraint satisfaction, distributed constraint optimization, and competitive and cooperative game theory. (Cross-listed with MATH 8480)

Prerequisite(s)/Corequisite(s): CSCI 4450 or CSCI 8456. Suggested background courses: CSCI 4480 or CSCI 8486; CSCI 8080. Not open to non-degree graduate students.

CSCI 8486  ALGORITHMS FOR ROBOTICS (3 credits)

This course provides an introduction to software techniques and algorithms for autonomously controlling robots using software programs called controllers. Students will be taught how to program and use software controllers on simulated as well as physical robots. (Cross-listed with CSCI 4480).

Prerequisite(s)/Corequisite(s): CSCI 3320 with C- or better. CSCI 4450/8456 is a recommended but not essential pre-requisite.

CSCI 8500  NUMERICAL ANALYSIS I (3 credits)

Topics covered in this course include error propagation, solutions of nonlinear equations, solutions of linear and nonlinear systems by various schemes, matrix norms and conditioning, and computation of eigenvalues and eigenvectors. (Cross-listed with MATH 8500).

Prerequisite(s)/Corequisite(s): MATH 1960 and MATH 2050, or permission of instructor. Familiarity with computer programming is assumed.

CSCI 8506  OPERATING SYSTEMS (3 credits)

Operating system principles. The operating system as a resource manager; I/O programming, interrupt programming and machine architecture as it relates to resource management; memory management techniques for uni-multiprogrammed systems; process description and implementation; processor management (scheduling); I/O device, controller, and channel management; file systems. Operating system implementation for large and small machines. (Cross-listed with CSCI 4500).

Prerequisite(s)/Corequisite(s): CSCI 3710, CSCI 3320/8325, MATH 1950, and CSCI 4350/8356 with C- or better.

CSCI 8510  NUMERICAL ANALYSIS II (3 credits)

Topics covered in this course include interpolation and approximations, numerical differentiation, numerical integration, and numerical solutions of ordinary and partial differential equations.. (Cross-listed with MATH 8510)

Prerequisite(s)/Corequisite(s): MATH 1970, MATH 2350, or permission of instructor. Familiarity with computer programming is assumed.

CSCI 8520  ADVANCED TOPICS IN OPERATIONS RESEARCH (3 credits)

Advanced treatment of a specific topic in the area of operations research not available in the regular curriculum. Topics, developed by individual faculty members, will reflect their special interests and expertise. The course may be repeated for credit as topics differ. (Cross-listed with MATH 8520).

Prerequisite(s)/Corequisite(s): MATH 4300 or MATH 8306 or CSCI 4300 CSCI 8306 or permission of the instructor.

CSCI 8530  ADVANCED OPERATING SYSTEMS (3 credits)

State of the art techniques for operating system structuring and implementation. Special purpose operating systems. Pragmatic aspects of operating system design, implementation, and use. (Cross-listed with CSCI 4510)

Prerequisite(s)/Corequisite(s): CSCI 4500/8506. Not open to nondegree students.

CSCI 8536  FILE STRUCTURES (3 credits)

File structures is an introduction to the principles behind the design and manipulation of file structures. This course gives special emphasis to the complexity analysis of algorithms used to implement the storage and retrieval of data to/from bulk storage devices and programming techniques for large data manipulation.

Prerequisite(s)/Corequisite(s): CSCI 3320 and CSCI 1840. Not open to non-degree graduate students.

CSCI 8540  ADVANCED DATA STRUCTURES (3 credits)

A theoretical study of the design and analysis of data structures and efficient algorithms for manipulating them. Emphasis is placed on developing the fundamental principles underlying efficient algorithms and their analysis.

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8326 or equivalent. Not open to non-degree graduate students.

CSCI 8550  ADVANCED OPERATING SYSTEM THEORY (3 credits)

An advanced study of modern operating systems. Intended for graduate students who have mastered the fundamental material in an undergraduate course. Emphasis on advanced theoretical material on topics introduced in undergraduate courses, and material not generally covered in undergraduate courses. Advanced material on process synchronization, deadlock, virtual memory, and new material on parallel processing, security, distributed systems and control, object- oriented programming, and modeling and analysis.

Prerequisite(s)/Corequisite(s): CSCI 4500 or CSCI 8506. Recommended: CSCI 4510 or CSCI 8516. Not open to non-degree graduate students.

CSCI 8555  COMMUNICATION NETWORKS (3 credits)

This course is designed to bring students up to the state of the art in networking technologies with a focus on Internet. It will cover the principles of networking with an emphasis on protocols, implementations and design issues. (Cross-listed with CSCI 3550)

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 with C- or better. Data structures and algorithms. C or C++ programming.

CSCI 8566  NUMBER THEORY & CRYPTOGRAPHY (3 credits)

An overview of one of the many beautiful areas of mathematics and its modern application to secure communication. The course is ideal for any student who wants a taste of mathematics outside of, or in addition to, the calculus sequence. Topics to be covered include: prime numbers, congruences, perfect numbers, primitive roots, quadratic reciprocity, sums of squares, and Diophantine equations. Applications include error-correcting codes, symmetric and public key cryptography, secret sharing, and zero knowledge proofs. (Cross-listed with CSCI 4560, MATH 4560, MATH 8566).

Prerequisite(s)/Corequisite(s): MATH 2230 with a C- or better or MATH 2030 with a C- or better or CSCI 2030 with a C- or better or permission of instructor

CSCI 8610  FAULT TOLERANT DISTRIBUTED SYSTEMS (3 credits)

This course is to study the theory and practice of designing computer systems in the presence of faulty components. Emphasizes the basics of how faults can affect systems and what is required to mask or compensate for their efforts.

Prerequisite(s)/Corequisite(s): CSCI 4500 and CSCI 4350. Not open to non-degree graduate students.

CSCI 8620  MOBILE COMPUTING AND WIRELESS NETWORKS (3 credits)

Contemporary issues in mobile computing and wireless networks, including the differences between mobile computing and the traditional distributed computing paradigm, impediments of the mobile and wireless environments, problems and limitations due to such impediments, using the spectrum, wireless data networks, various network layers solutions, location management techniques, mobile IP, wireless LANs, wireless TCP, ad hoc networks, performance issues, security issues.

Prerequisite(s)/Corequisite(s): CSCI 3550 or CSCI 8555. Not open to non-degree graduate students.

CSCI 8626  COMPUTER GRAPHICS (3 credits)

An introduction to the acquisition, manipulation and display of graphical information using digital techniques. Topics include discussion of the various hardware devices used for input and output, the classical algorithms and data structures used in manipulation of graphical objects, the user interface to the graphics system, and applicable standards. (Cross-listed with CSCI 4620).

Prerequisite(s)/Corequisite(s): ISQA 3300 or CSCI 3320.

CSCI 8666  AUTOMATA, COMPUTABILITY, AND FORMAL LANGUAGES (3 credits)

This course presents a sampling of several important areas of theoretical computer science. Definition of formal models of computation and important properties of such models, including finite automata and Turing machines. Definition and important properties of formal grammars and their languages. Introduction to the formal theories of computability and complexity. (Cross-listed with CSCI 4660, MATH 4660, MATH 8666).

Prerequisite(s)/Corequisite(s): MATH 2030. Recommended: CSCI 3320/CSCI 8325.

CSCI 8690  ADVANCED TOPICS IN PARALLEL AND DISTRIBUTED COMPUTING (3 credits)

This course offers advanced study of parallel computing at the graduate level. It covers several parallel programming paradigms such as: shared-memory programming, distributed-memory programming, object oriented programming, data parallel programming, functional dataflow programming. The course also covers other advanced topics such as: scheduling parallel programs, parallel troops, parallelizing sequential programs, parallel programming support environments, and design and analysis of parallel algorithms. The course gives the students the opportunity to re-think programming from an entirely fresh perspective.

Prerequisite(s)/Corequisite(s): CSCI 4500 or CSCI 8506 or equivalent. Not open to non-degree graduate students.

CSCI 8700  SOFTWARE SPECIFICATIONS AND DESIGN (3 credits)

A continuation of the study of software engineering with an emphasis on early phases of software development, namely requirements engineering/specification and design. Fundamentals of quality software design. In-depth study of various software requirements specification and design techniques. Related topics such as metrics and CASE tools.

Prerequisite(s)/Corequisite(s): CSCI 4830 or CSCI 8836. Not open to non-degree graduate students.

CSCI 8706  COMPILER CONSTRUCTION (3 credits)

Assemblers, interpreters and compilers. Compilation of simple expressions and statements. Analysis of regular expressions. Organization of a compiler, including compile-time and run-time symbol tables, lexical scan, syntax scan, object code generation and error diagnostics. (Cross-listed with CSCI 4700).

CSCI 8710  MODERN SOFTWARE DEVELOPMENT METHODOLOGIES (3 credits)

Designed to introduce students to advanced object technology and other modern methodologies for developing software systems. Intended for graduate students who have mastered the basic concepts and issues of software engineering. Course covers advanced object-oriented software development. The course also covers several offshoots of object technology, including: component-based software engineering, aspect-oriented software development, software product line engineering, service-oriented computing, etc.

Prerequisite(s)/Corequisite(s): CSCI 4830 or CSCI 8836.

CSCI 8760  FORMAL METHODS IN SOFTWARE ENGINEERING (3 credits)

In the high consequence system domain, a primary objective of any construction technique employed is to provide sufficiently convincing evidence that the system, if put into operation, will not experience a high consequence failure or that the likelihood of such a failure falls within acceptable probabilistically defined limits. Systems for which such evidence can be provided are called high assurance systems. The objective of this course is to examine software-engineering techniques across the development life cycle that are appropriate for high assurance systems. The course will analyze the nature of the evidence provided by various techniques (e.g., does a given technique provide sufficiently strong evidence in a given setting).

Prerequisite(s)/Corequisite(s): CSCI 8000 and CSCI 8836 or CSCI 4830

CSCI 8766  TOPICS IN MODELING (3 credits)

Selection of such topics as formulation and analysis of various models involving Markov chains, Markov processes (including birth and death processes), queues, cellular automata, difference and differential equations, chaotic systems and fractal geometries. (Cross-listed with CSCI 4760, MATH 4760, MATH 8766).

Prerequisite(s)/Corequisite(s): MATH 2350 and MATH 4740 or MATH 8746.

CSCI 8790  ADVANCED TOPICS IN SOFTWARE ENGINEERING (3 credits)

An in-depth study of one or more topics in the field of software engineering such as human factors in software engineering, software specifications and modeling, reuse and design recovery, software valuations, software management, emerging technology and applications.

Prerequisite(s)/Corequisite(s): CSCI 4830 or CSCI 8836. Not open to non-degree graduate students.

CSCI 8836  INTRODUCTION SOFTWARE ENGINEERING (3 credits)

Basic concepts and major issues of software engineering, current tools and techniques providing a basis for analyzing, designing, developing, maintaining and evaluating the system. Technical, administrative and operating issues. Privacy, security and legal issues. (Cross-listed with CSCI 4830).

CSCI 8850  ADVANCED AUTOMATA AND FORMAL LANGUAGES (3 credits)

A continuation of MATH 4660/MATH 8666/CSCI 4660/CSCI 8666. The course will be an introduction to Computational Complexity. Topics that will be covered include space and time complexities of Turing Machines, deterministic versus non-deterministic machines, NP-Complete problems, alternating Turing machines, and concepts of reducibility. (Cross-listed with MATH 8850).

Prerequisite(s)/Corequisite(s): Not open to non-degree graduate students.

CSCI 8856  DATABASE MANAGEMENT SYSTEMS (3 credits)

Basic concepts of data base management systems (DBMSs). The relational, hierarchical and network models and DBMSs which use them. Introduction to data base design. (Cross-listed with CSCI 4850).

CSCI 8876  DATABASE SEARCH AND PATTERN DISCOVERY IN BIOINFORMATICS (3 credits)

The course provides students basic knowledge on database aspects related to bioinformatics. In order to make this course self-contained, it starts with a brief introduction on key concepts in computational molecular biology, as well as a review of database management systems, artificial intelligence and related aspects in computer science. The major part of this course will cover various issues related to biodatabase search and pattern discovery. (Cross-listed with BIOI 4870)

Prerequisite(s)/Corequisite(s): CSCI 3320. Not open to non-degree graduate students.

CSCI 8910  MASTER OF SCIENCE CAPSTONE (3 credits)

The capstone course is to integrate coursework, knowledge, skills and experimental learning to enable the student to demonstrate a broad mastery of knowledge, skills, and techniques across the Master degree curriculum of Computer Science for a promise of initial employability and further career advancement. The course is designed to be in a student-centered and student-directed manner which requires the command, analysis and synthesis of knowledge and skills. Students may apply their knowledge and skill to a project which serves as an instrument of evaluation. Students are encouraged to foster an interdisciplinary research and cultivate industry alliances and cooperation in this course. This capstone course should be taken only after students have completed at least 3/4 of course requirements for the major.

Prerequisite(s)/Corequisite(s): Master's degree of Computer Science with course-only option (program III). Not open to nondegree students.

CSCI 8915  DATA STRUCTURES AND ALGORITHMS (3 credits)

The purpose of this course is to introduce the student to several basic and advanced data structures and their use in modeling and solving practical problems. The course also introduces basic techniques in algorithm design such as recursion, divide and conquer, and greedy techniques. Searching, sorting graph algorithms and the main concept of complexity theory are presented.

Prerequisite(s)/Corequisite(s): CSCI 1910 or knowledge of C++ and a baccalaureate degree and approval of the computer science graduate program committee. Not open to non-degree graduate students.

CSCI 8920  ADVANCED TOPICS COMPUTER SCIENCE (3 credits)

An in-depth study, at the graduate level, of one or more topics that are not treated in other courses. May be repeated with different topics with permission of adviser.

Prerequisite(s)/Corequisite(s): Permission of instructor; will vary with offering. Not open to non-degree graduate students.

CSCI 8950  GRADUATE INTERNSHIP IN COMPUTER SCIENCE (1-3 credits)

The purpose of this course is to provide students with opportunities to apply their academic studies in environments such as those found in business, industry, and other non-academic organizations. The student interns will sharpen their academic focus and develop better understanding of non-academic application areas.

Prerequisite(s)/Corequisite(s): Permission of the graduate program chairperson and a minimum grade point average of 3.0 (B), with at most one grade below B, but not lower than C+ for all CS graduate classes. Not open to non-degree graduate students.

CSCI 8960  THESIS EQUIVALENT PROJECT IN COMPUTER SCIENCE (1-6 credits)

This course allows a graduate student to conduct a research project in computer science or a related area. The project is expected to place an emphasis on applied, implementations-based, or experimental research. The process for development and approval of the project must include: appointment of supervisory committee (chaired by project adviser), a proposal approved by the supervisory committee, monitoring of the project by the supervisory committee, an oral examination over the completed written product conducted by the supervisory committee, & final approval by the supervisory committee. The approved written project will be submitted to the Office of Graduate Studies by the advertised deadlines.

Prerequisite(s)/Corequisite(s): Permission of Graduate Adviser. Not open to non-degree graduate students.

CSCI 8970  INDEPENDENT STUDY (1-3 credits)

Under this number a graduate student may pursue studies in an area that is not normally available in a formal course. The topics to be studied will be in a graduate area of computer science to be determined by the instructor.

Prerequisite(s)/Corequisite(s): Permission of the Graduate Program Committee. Not open to non-degree graduate students.

CSCI 8980  GRADUATE SEMINAR (1-3 credits)

This course offers an up-to-date coverage of the contemporary and emerging concepts, models, techniques and methodologies, and/or the current research results in the fundamental areas of computer science. Topics to be covered by the course will vary in different semesters.

Prerequisite(s)/Corequisite(s): Permission of the Instructor. Not open to non-degree graduate students.

CSCI 8986  TOPICS IN COMPUTER SCIENCE (1-3 credits)

A variable topic course in computer science at the senior/graduate level. Topics not normally covered in the computer science degree program, but suitable for senior/graduate-level students. (Cross-listed with CSCI 4980).

Prerequisite(s)/Corequisite(s): Permission of instructor. Additional prerequisites may be required for particular topic offerings.

CSCI 8990  THESIS (1-6 credits)

A research project, designed and executed under the supervision of the chair and approval by members of the graduate student's thesis advisory committee. In this project the student will develop and perfect a number of skills including the ability to design, conduct, analyze and report the results in writing (i.e., thesis) of an original, independent scientific investigation.

Prerequisite(s)/Corequisite(s): Permission of Graduate Adviser. Not open to non-degree graduate students.

CSCI 9210  TYPE SYSTEMS BEHIND PROGRAMMING LANGUAGES (3 credits)

Empirical evidence suggests that a large number of errors made when writing software can be detected by analyzing the behavior of the program from the perspective of type. This course provides an in-depth exploration of various type systems for programming languages.

Prerequisite(s)/Corequisite(s): CSCI 8000. Not open to non-degree graduate students.

CSCI 9220  REWRITING AND PROGRAM TRANSFORMATION (3 credits)

This course begins by exploring the foundations of term rewriting. Topics such as unification, confluence, completion and termination are covered. Then a strategic framework is considered in which the application of rewrite rules can be controlled.

Prerequisite(s)/Corequisite(s): CSCI 8000. Not open to non-degree graduate students.

CSCI 9340  COMPUTATIONAL INTELLIGENCE FOR DATA MANAGEMENT (3 credits)

The course provides students advanced knowledge on computational intelligence methods related to various aspects of data management. Rather than treating computational intelligence and database management systems separately, the course allows students to examine the integration of these two research disciplines. The emphasis is on how to apply computational intelligence methods to various data management problems.

Prerequisite(s)/Corequisite(s): CSCI 8456 and CSCI 8856 Not open to non-degree graduate students.

CSCI 9350  MATHEMATICAL AND LOGICAL FOUNDATIONS OF DATA MINING (3 credits)

With the maturity of data mining techniques, it is extremely important to examine the foundations of data mining. Instead of providing coverage of basic data mining methods, the course will focus on methodology employed in data mining, logical and mathematical foundations of data mining, as well as other issues related to the intrinsic nature of data mining.

Prerequisite(s)/Corequisite(s): CSCI 8456, CSCI 8856, and CSCI 8390. Not open to non-degree graduate students.

CSCI 9410  ADVANCED TOPICS IN LOGIC PROGRAMMING (3 credits)

This course will examine some advanced topics in logic programming, inductive logic programming, and their parallel and distributed implementation. Each advanced topic will be followed by how it has been applied in practice to software development research. Advanced applications such as program analysis and verification will be covered in detail.

Prerequisite(s)/Corequisite(s): CSCI 8000 and doctoral student standing in Information Technology or the permission of the instructor. Not open to non-degree graduate students.

CSCI 9420  INTELLIGENT AGENT SYSTEMS (3 credits)

This course covers the principles of interaction between agents in multi-agent systems using game theory. Relevant topics studied in this course include competitive games, statistical Bayesian games, cooperative games, and mechanism design. Students will have to implement projects related to the material studied in the course.

Prerequisite(s)/Corequisite(s): CSCI 3320 or CSCI 8325 and CSCI 4450 or CSCI 8456. Not open to non-degree graduate students.

CSCI 9710  FOUNDATIONS OF SOFTWARE ENGINEERING RESEARCH (3 credits)

This course provides guidelines on how to conduct research in the field of software engineering by presenting the research methods, classic readings, and development of theories and their application to real life problems. The main emphasis of the course is to provide opportunity for in-depth study of topics such as modern software engineering development methodologies and process.

Prerequisite(s)/Corequisite(s): CSCI 8836 or equivalent course and doctoral student standing in Information Technology or permission of the instructor. Not open to non-degree graduate students.

CSCI 9810  RESEARCH FOUNDATIONS IN THEORETICAL COMPUTING (3 credits)

This course offers an up-to-date coverage of the contemporary and emerging concepts, models, techniques, and methodologies, and/or the current research results in the fundamental areas of theoretic computing. The course will examine advanced research topics in computer science and engineering, including foundations of automata theory, computability, complexity analysis, computational logics and algorithmic analysis, hybrid dynamic systems theory, number theory, adaptation and learning theory, concepts and principles in computational geometry, stochastic processes, and random optimization. Each topic will be discussed with a perspective of research issues and directions. Active student participation in investigation of the research topics, survey of the current state-of-art, and identifying the future research insights is required. Students will take turn presenting their research results on specific topics. Topics to be covered by the course will vary in different semesters.

Prerequisite(s)/Corequisite(s): The prerequisites of this course vary depending on the areas to be covered in the semester the course is offered. Good standing in Ph.D. program is required. Permission of the instructor may be required. Not open to non-degree graduate students.