COMPSCI – Computer Science
Graduate Courses Offered
COMPSCI 510 DATABASES (3-0-3)(S). Foundations of database management systems. Database models: relational, object and other models. Database design: entity-relationship modeling, logical relational schema design, physical design, functional dependencies and normalization, and database tuning. Database application development using database interfaces embedded in host languages. PREREQ: COMPSCI 342 or PERM/INST.
COMPSCI 512 ADVANCED TOPICS IN DATABASES (3-0-3)(F/S). Parallel and distributed database system architectures, distributed database design, client/server database systems. Selected topics from new developments in: extended relational databases, multimedia databases, information retrieval systems, object-oriented databases, temporal databases. PREREQ: COMPSCI 410 or COMPSCI 510 or PERM/INST.
COMPSCI 521 DESIGN AND ANALYSIS OF ALGORITHMS (3-0-3)(F/S). Design techniques such as amortized analysis, dynamic programming, and greedy algorithms. Computational geometry, graph algorithms, primality and other number-theoretic algorithms, specialized data structure techniques such as augmenting data structures, combinatorial graph reduction and functional repetition. NP completeness and approximation algorithms. PREREQ: COMPSCI 342 or PERM/INST.
COMPSCI 525 COMPUTER NETWORKS (3-0-3)(F/S). OSI reference model. Performance analysis of protocols—mathematical modeling and simulation. Quality of Service, flow control, and scheduling. MAC and routing in wireless networks. PREREQ: COMPSCI 425 and MATH 361 or PERM/INST.
COMPSCI 530 PARALLEL COMPUTING (3-0-3)(F). Models of parallel computation. Fundamental design patterns used in parallel algorithms: embarrassingly parallel, partitioning, divide and conquer, software pipelining, synchronous computations and load balancing. Implementation on parallel clusters. Hardware and systems software design of parallel systems. PREREQ: COMPSCI 253 and COMPSCI 342 or PERM/INST.
COMPSCI 531 ADVANCED PROGRAMMING LANGUAGES (3-0-3)(F/S). Advanced topics in programming-language theory, design, and implementation. Topics include: data types; binding, scope, and extent; abstraction, extensibility, and control mechanisms; formal semantics and program verification. Emphasis on alternative programming-language paradigms. PREREQ: COMPSCI 354 or PERM/INST.
COMPSCI 541 (ECE 532) COMPUTER ARCHITECTURE (3-0-3)(S). Structure of computer systems using processors, memories, input/output (I/O) devices as building blocks. Computer system instruction set design and implementation, including memory hierarchies, microprogramming, pipelining and multiprocessors. Issues and tradeoffs involved in the design of computer system architectures with respect to the design of instruction sets. Applications of hardware description languages (HDL) in the design of computer systems. May be taken for COMPSCI or ECE credit, but not both. PREREQ: COMPSCI 117 or COMPSCI 125 and ECE 330 or PERM/INST.
COMPSCI 542 QUANTITATIVE COMPUTER ARCHITECTURE (3-0-3)(S). Quantitative analysis on computer architectures and software optimizations with static and dynamic simulation techniques. Design implications of memory latency and bandwidth limitations. Performance enhancement via within-processor and between-processor parallelism. In particular, the study of pipelining, instruction-level parallelism, memory hierarchy design, storage systems, and multiprocessors are emphasized. PREREQ: COMPSCI 441 or PERM/INST.
COMPSCI 546 COMPUTER SECURITY (3-0-3)(F/S). Computer and network security. Public-key and private-key cryptography, authentication, digital signatures, key exchange, key management, certification authorities, and distributed trust models. File system security, Mail system security, and Web security. Intruders, Trojan Horses, and viruses. Covert channels. Projects will involve using currently available security tools. PREREQ: COMPSCI 453 or PERM/INST.
COMPSCI 550 PROGRAMMING LANGUAGE TRANSLATION (4-0-4)(S). Theory and practice of formal language translation, experience with compiler construction tools under UNIX. Students work on significant projects. PREREQ: COMPSCI 253 and COMPSCI 342 and COMPSCI 354 or PERM/INST.
COMPSCI 551 ADVANCED TOPICS IN COMPILATION (3-0-3)(F/S). Code generation, analysis, and optimization. Projects will use a simple framework for performing analysis and optimizations at the assembly level. PREREQ: COMPSCI 450 or COMPSCI 550.
COMPSCI 552 OPERATING SYSTEMS (4-0-4)(F). Process management, concurrency, interprocess communication, synchronization, scheduling, memory management, file systems and security. Case studies of multiple operating systems. PREREQ: COMPSCI 253 and COMPSCI 342 and ECE 330 or PERM/INST.
COMPSCI 554 ADVANCED OPERATING SYSTEMS (3-0-3)(S). In-depth exploration of the various components of an actual operating system. Includes modifying operating system code to observe behavior, adding new functionality, understanding how various parts work as well as other experiments. Special emphasis on soft and hard real-time operating systems. PREREQ: COMPSCI 453 or COMPSCI 552 or PERM/INST.
COMPSCI 555 DISTRIBUTED SYSTEMS (3-0-3)(S). Principles and paradigms of distributed systems. Communication, processes, naming, synchronization, consistency and replication, fault tolerance and security. In-depth coverage of Remote Procedure Call (RPC), Remote Method Invocation (RMI) and socket programming. Survey of major distributed systems. Several software projects. PREREQ: COMPSCI 453 or COMPSCI 552 or PERM/INST.
COMPSCI 557 ARTIFICIAL INTELLIGENCE (3-0-3)(F/S). Course will include a survey of some of the following topics, plus a project: Principles of knowledge-based search techniques; automatic deduction; knowledge representation using predicate logic, semantic networks, connectionist networks, frames, rules; applications in problem solving, expert systems, game playing, vision, natural language understanding, learning, robotics; LISP programming. PREREQ: COMPSCI 342 and COMPSCI 354 or PERM/INST.
COMPSCI 561 INTRODUCTION TO THE THEORY OF COMPUTATION (3-0-3)(F). Grammars, automata, Turing machines, decidability and complexity, language hierarchies, normal forms, NP-completeness, and reducibilities. Applications will be drawn from various areas of computer science. PREREQ: COMPSCI 342 or PERM/INST.
COMPSCI 562 COMPLEXITY THEORY (3-0-3)(S). Abstract machines, relativizations, upper and lower bounds on complexity, recursive hierarchies and alternation, time-space interaction, parallel and randomized complexity classes, approximation algorithms. PREREQ: COMPSCI 361 or COMPSCI 561
COMPSCI 564 VISUALIZATION TECHNIQUES (3-0-3)(S)(Even years). Fundamentals of visualization including data sources, representations, and graphical integrity. Visualization of scalars, vectors, tensors, flows and high-dimensional data. Visual perception and color theory. Applications from medical imaging, social media, sports, security and surveillance domains. COMPSCI 464 or MATH 275 or MATH 301 recommended. PREREQ: COMPSCI 342.
COMPSCI 567 CRYPTOLOGY I (4-0-4)(F). Introduction to modular arithmetic. The study of: the RSA, El-Gamal, Diffie-Hellman, and Blum-Blum-Shub public key cryptosystems, authentication and digital signatures, anonymity protocols. Protocol failures for these systems. Crosslisted with MATH 307 and COMPSCI 367; credit may be received for only one of these three courses. PREREQ: MATH 170 and MATH 187.
COMPSCI 568 CRYPTOLOGY II (4-0-4)(S). Introduction to groups, fields, polynomial rings and Lucas numbers. The study of: the Elliptic Curve, LUC, and NTRU public key cryptosystems, authentication and digital signatures, anonymity protocols. Crosslisted with MATH 308 and COMPSCI 368; credit may be received for only one of these three courses. PREREQ: MATH 170 and MATH 187.
COMPSCI 571 SOFTWARE ENGINEERING (3-0-3)(F). A formal study of the software development process. Topics include: lifecycle models, requirements definition, specification, design, implementation, validation, verification, maintenance, and reuse. Students work in small teams on significant projects. PREREQ: COMPSCI 342 or PERM/INST.
COMPSCI 572 OBJECT-ORIENTED DESIGN PATTERNS (3-0-3)(S). Reviews object-oriented design principles, explains the goals and form of design patterns, and examines several well-known patterns. PREREQ: COMPSCI 342 or PERM/INST.
COMPSCI 573 ADVANCED SOFTWARE ENGINEERING (3-0-3)(S). A study of selected aspects of contemporary software development methodology. Topics are taken from recent research articles. These topics include: definition of user requirements, formal specification of solutions, design and implementation techniques, validation and testing, verification, maintenance, and reuse. PREREQ: COMPSCI 471 or PERM/INST.
SELECTED TOPICS (1-4 Variable). In depth study of current trends and advanced topics in targeted areas of computer science.
- COMPSCI 580 PARALLEL COMPUTING
- COMPSCI 581 ALGORITHMS
- COMPSCI 583 COMPUTER SECURITY
- COMPSCI 584 NETWORKS
- COMPSCI 585 OBJECT-ORIENTED DESIGN
- COMPSCI 586 DATABASES
- COMPSCI 587 SOFTWARE ENGINEERING
Refer to University-wide Graduate Courses for additional course offerings.