Graduate Level Coures
CS 512 Design and Analysis of Algorithms (4)
Prerequisite: CS 312.
Design of complex algorithms. Algorithms for solving frequently occurring problems in computer applications. Computationally intractable problems, heuristics and partial solutions. Optimization techniques. Analysis of algorithms for specific problems of interest.
CS 520 Web Programming (4)
Prerequisite: CS 320.
Current issues in web programming. Topics include: semantic networks; architectures for web-based applications; dynamic and evolutionary system deployment.
CS 522 Advanced Database Systems (4)
Prerequisites: CS 390, 422.
Current topics in database systems: distributed databases, transactions, and concurrency control; nested and long-running transactions; semantic and object-oriented data models; engineering design databases; temporal, multi-media, and real-time databases.
CS 537 Advanced Software Engineering (4)
Prerequisites: CS 390, 437.
Managing software development projects; the capability maturity models and personal performance processes; software cost estimation; risk management; extreme programming. Engineering systems for survivability. Estimating system performance.
CS 540 Advanced Topics in Operating Systems (4)
Prerequisite: CS 440.
Asynchronous concurrent processes; mutual exclusion and deadlocks; virtual storage organization and management; multiprocessing; auxiliary storage management; distributed operating systems; performance measurement; operating systems security.
CS 550 Advanced Computer Graphics (4)
Prerequisite: CS 450.
Advance topics in computer graphics. Surfaces, curves, and textures; illumination, shading, shadows and transparency effects; ray tracing and other rendering techniques; color models; animation; compression techniques: fractals, JPEG, and MPEG.
CS 560 Advanced Topics in Artificial Intelligence (4)
Prerequisite: CS 460.
Examination of a sub field within artificial intelligence such as natural language processing, expert systems, robotics, data mining, computer vision, speech recognition, intelligent agents or others.
CS 565 Reliable Computing (4)
Prerequisites: CS 312 and 386.
Errors, faults, and failures. Software and system safety. Reliability metrics: mean time between failures. Techniques for fault tolerance: redundancy and robustness. Fault detection, isolation, correction, and recovery.
CS 570 Networks and Distributed Processing (4)
Prerequisites: CS 470
Study of computer network architecture and protocols. Routing, congestion and flow control. Distributed algorithms, client-server models, remote procedure calls, load balancing, and security. Interprocess communication and protocols. Distributed transaction processing.
CS 575 Human Issues in Computing (4)
Prerequisites: CS 386, 491AB.
Methods and techniques for maximizing the usability of computer systems and practices User centered design, designing for diverse users, physiological, psychological, and sociological issues. Human factors in software development.
CS 580 Computer Systems Security (4)
Prerequisites: CS 470 and 480.
Security in computer systems and networks. Encryption algorithms. Authentication and key exchange protocols. Virus detection, database security, and secure internet communication. Security policies, trusted systems, and computer systems certification.
CS 581 Computer and Network Security (4)
Prerequisite: CS 447 or CS 470
This course exposes students to various techniques related to defending your computers and networks. Topics covered include Denial-Of-Service attacks, packet analyzers, host-based intrusion detection and honeypots etc.
CS 586 Theory of Computing (4)
Prerequisite: CS 486.
Mathematical models of computation. Recursive function theory and primitive recursion. Computability and logic. Church's Thesis, Wegner's interaction machines, and quantum computation.
CS 588 Languages and Translators (4)
Prerequisite: CS 488.
Advanced programming language and translator concepts. Language runtime systems such as the Java virtual machine. Term rewriting systems and XSL, Programming language semantics.
CS 590 Advanced Software Architecture (4)
Prerequisite: CS491AB.
Design and development of large-scale, typically distributed, often multi-language, software systems. Integration of existing (legacy) systems. Multiple architectural views and their representation and documentation. Integrative and connective platforms, standards, and technologies.
CS 594 Graduate Seminar (4)
Prerequisite: instructor consent.
Special course offering on topics of current interest in computer science. May be repeated to a maximum of 8 units on different topics.
CS 596 Comprehensive Examination (0)
Prerequisite: instructor consent.
Examination of student's ability to demonstrate mastery of the subject matter. Students should take the comprehensive exam during the quarter, in which they complete all Course work or shortly thereafter. Graded CR/NC.
CS 598 Graduate Directed Study (1-4)
Prerequisite: instructor consent.
Independent investigation and study of an advanced topic in computer science under direct supervision of an instructor. May be repeated to maximum of 4 units.
CS 599A Thesis or Project (3)
Prerequisites: Completion of at least 20 units of 500 level CS courses and instructor consent to act as sponsor, department approval of topic prior to registration.
Research project conducted in an area of advanced topics in computer science under direct supervision of an instructor. This research project shall be continued in CS 599B. Graded CR/NC.
CS 599B Thesis or Project (2)
Prerequisites: CS 599A, Instructor consent to act as sponsor, completion of all other requirements for an MS degree in Computer Science.
Continuation of research project conducted in CS 599A. Each student shall orally present his/hers research result in a public forum. Graded CR/NC.



