A maximum of 4 units (one course) may be taken from approved 400-level courses in either Computer Science or Electrical Engineering; the remaining units for the degree must be approved courses at the 500 or 600 level. 400-level courses from other departments may be available subject to advisor approval.
CSCI 455x – Introduction to Programming Systems Design CANNOT but taken for degree credit in CS graduate programs. However, this course is a mandatory preparatory programming requirement for students admitted to the Master of Science in Computer Science for Scientists and Engineers.
List of Approved 400-Level CS Courses:
- CSCI 402 (4 UNITS): Operating Systems Concurrency, deadlock control, synchronization, process and thread scheduling, memory management, file systems, security and access control, communication and networking, distributed file systems, data management. The undergraduate prerequisites for this course are automatically waived for graduate students.
- CSCI 420 (4 UNITS): Computer Graphics Computer graphics, OpenGL, 2D and 3D transformations, Bezier splines, computer animation, rendering including ray tracing, shading and lighting, artistic rendering, virtual reality, visualization. Prerequisite: CSCI 104L and MATH 225. Duplicates credit in CSCI 480. The undergraduate prerequisites for this course are automatically waived for graduate students.
- CSCI 430 (4 UNITS): Introduction to Computer and Network Security A broad overview of security threats and defenses, security systems and functionalities, as well as current security practices. Includes homeworks and in-class exercises to provide practical experience working with such systems. Prerequisite: CSCI 201. The undergraduate prerequisites for this course are automatically waived for graduate students. Cannot be taken after CSCI 530 or 551.
- CSCI 445 (4 UNITS): Introduction to Robotics Designing, building and programming mobile robots; sensors, effectors, basic control theory, control architectures, some advanced topics, illustrations of state-of-the-art. Teamwork; final project tested in a robot contest. Junior standing or higher. Prerequisites: CSCI 103. The undergraduate prerequisites for this course are automatically waived for graduate students. Currently only eligible to Intelligent Robotics CS Graduate Students, enrollment is contingent on space available. Cannot be taken after CSCI 545. Priority for this course is for undergraduate students.
- CSCI 476 (4 UNITS): Cryptography: Secure Communication and Computation Introduction to modern Cryptography; Mathematical/algorithmic studies of methods for protecting information in computer and communication systems: Public-Key Cryptosystems, zero-knowledge proofs, data privacy. Prerequisites: CSCI 270. The undergraduate prerequisites for this course are automatically waived for graduate students. Cannot be taken after CSCI 530, 531, 551, or 556.
List of Approved 400-Level Non-CS Courses:
- EE 450 (3 UNITS): Introduction to Computer Networks Network architectures; layered protocols, network service interface; local networks; long-haul networks; internal protocols; link protocols; addressing; routing; flow control; higher level protocols. Prerequisite: junior standing.
- EE 451 (4 UNITS): Parallel and Distributed Computation Introduction to parallel programming techniques, models and optimization strategies; Application mapping to multi-core, accelerator, GPU and cloud platforms; High Performance Computing and Data Science applications. Prerequisite: EE 355 or CSCI 201. Recommended preparation: High-level programming.
- EE 454L (4 UNITS): Introduction to System-On-Chip Design flow, tools, and issues related to System/Network-on-Chip (S/Noc) design for real-time embedded systems with applications in mobile, cloud, aerospace, and medical electronics. Prerequisite: EE 354.
- EE 457 (4 UNITS): Computer Systems Organization Register Transfer level machine organization; performance; arithmetic; pipelined processors; exceptions, out-of-order and speculative execution, cache, virtual memory, multi-core multi-threaded processors, cache coherence. (Note: Credit for this course is given only if the course is taken in Fall 2009 or later.)
- EE 477L (4 UNITS): MOS VLSI Circuit Design Analysis and design of digital MOS VLSI circuits including area, delay and power minimization. Laboratory assignments including design, layout, extraction, simulation and automatic synthesis. Prerequisite: EE 338 or EE 354.
- CTIN 488 (4 UNITS): Game Design Workshop An introduction to making games. Students will explore the principles of game design through the entirely analog creation of card, board and tabletop games. This course can only be used for credit by students enrolled in the Game Development specialization.
- MATH 458 (4 UNITS): Numerical Methods Rounding errors in digital computation; solution of linear algebraic systems; Newton’s method for nonlinear systems; matrix eigenvalues; polynomial approximation; numerical integration; numerical solution of ordinary differential equations.
- MATH 467 (4 UNITS): Theory and Computational Methods for Optimization Methods for static, dynamic, unconstrained, constrained optimization. Gradient, conjugate gradient, penalty methods. Lagrange multipliers, least squares, linear, nonlinear dynamic programming. Application to control and estimation.