CS 505. LIBRARY RESEARCH (2 credit hours)
Extensive library research techniques in a particular Computer Science area. Staff assigns a topic and supervises the project. A maximum of two credits of CS 505 may be counted toward a Master’s in Computer Science.
CS 510. ADVANCED OPERATING SYSTEMS (3 credit hours)
Advanced topics in operating systems, such as: multi-tasking, synchronization mechanisms, distributed system architecture, client-server models, distributed mutual exclusion and concurrency control, agreement protocols, load balancing, failure recovery, fault tolerance, cryptography, multiprocessor operating systems.
CS 515. THEORY OF COMPUTATION (3 credit hours)
Finite automata theory, including determinism vs. nondeterminism, regular expressions, non-regular languages, and algorithms for finite automata. Context free languages including grammars, parsing, and properties. Turing machines and their functions. Undecidability. Computational complexity, including the classes P and NP.
CS 530. ADVANCED DATABASE MANAGEMENT SYSTEMS (3 credit hours)
Transaction management; query processing and optimization; organization of database systems, advanced indexing, multi-dimensional data, similarity-based analysis, performance evaluation, new database applications.
CS 540. NETWORK PROGRAMMING (3 credit hours)
Socket and client-server programming, remote procedure calls, data compression standards and techniques, real-time protocols (e.g: chat, etc, web-related programming (CGI, Java/Javascript, HTTP, etc.,) network management (SNMP-based management, dynamic/CORBA-based management).
CS 597. INTERNSHIP (1-3 credit hours)
Participation in private corporations, public agencies, or non-profit institutions. Students will be required to have a faculty coordinator as well as a contact in the outside organization, to participate with them in regular consultations on the project, and to submit a final report to both. On completion of internship, the outside contact should provide the faculty coordinator with a letter evaluating student’s performance during the internship period. At most 3 credits can be accepted towards the M.S. degree.
CS 599. SPECIAL TOPICS (1-4 credit hours)
An in-depth study of special topics proposed by members of the Computer Science graduate faculty. Open to graduate students.
CS 605. ANALYSIS OF ALGORITHMS (3 credit hours)
Techniques for designing efficient algorithms, including choice of data structures, recursion, branch and bound, divide and conquer, and dynamic programming. Complexity analysis of searching, sorting, matrix multiplication, and graph algorithms. Standard NP-complete problems and polynomial transformation techniques.
CS 609. ADVANCED SOFTWARE ENGINEERING (3 credit hours)
Advanced design methods including formal methods, component-based design, design with patterns and frameworks, and architectural-based designs. Modern software processes such as Extreme Programming and Cleanroom software development. Issues and problems associated with large-scale software project failures and techniques for preventing them.
CS 610. ADVANCED COMPUTER ARCHITECTURE (3 credit hours)
Design methodology; processor design; computer arithmetic: algorithms for addition, multiplication, floating point arithmetic; microprogrammed control; memory organization; introduction to parallel architectures.
CS 611. COMPUTER SECURITY (3 credit hours)
Principles and practice of Computer Network Security. Cryptography, authentication protocols, public key infrastructures, IP/www/E-commerce security, firewalls, VPN, and intrusion detection.
CS 612. PARALLEL AND DISTRIBUTED COMPUTING (3 credit hours)
General concepts in the design and implementation of parallel and distributed systems, covering all the major branches such as Cloud Computing, Grid Computing, Cluster Computing, Supercomputing, and Many-core Computing.
CS 613. COMPUTER GRAPHICS (3 credit hours)
Graphics hardware; graphics primitives; two-dimensional and three-dimensional viewing; basic modeling, input and display devices, data structures, architectures, primitives, and geometrical transformations appropriate to computer graphics.
CS 615. MACHINE LEARNING AND DATA MINING (3 credit hours)
Fundamentals of machine learning including rote learning, learning from examples, learning from observations, and learning by analogy; knowledge acquisition for expert systems. Information processing techniques and mathematical tools to assemble, access, and analyze data for decision support and knowledge discovery.
CS 645. REAL-TIME EMBEDDED SYSTEMS (3 credit hours)
An overview of the unique concepts and techniques needed to design and implement computer systems having real-time response requirements in an embedded environment. It contrasts the concepts and techniques of real time and embedded systems with those of more traditional computer systems. Topics include: Basic concepts of real time and embedded systems, hardware features, programming languages, real time operating systems, synchronization techniques, performance optimization and current trends in real time and embedded systems such as incorporating internet connectivity.
CS 697. DIRECTED STUDENT RESEARCH (1-3 credit hours)
An independent research topic designed by the student with the assistance of a graduate faculty advisor who supervises the project. The topic should be acceptable to the advisor and the chair. Limited to specific problems in the Computer Science field. A maximum of three credits of CS 697 may be counted toward a Master’s in Computer Science. Variable contact hours.
CS 699. THESIS PREPARATION (1-9 credit hours)
An independent research project designed by the student with assistance from the Thesis advisor and acceptable to the Thesis committee. Variable contact hours. Course is graded pass/fail only.