# Course Offerings

## COURSE OFFERINGS IN COMPUTER SCIENCE AND ENGINEERING (CSE)

Effective Fall 2010, the designation for Computer Science and Engineering courses changes from CSCI to CSE.

### Upper Division

- 500. Introduction to Formal Languages and Automata
- Introduction to formal language theory. Finite state machines, regular grammars, context-free grammars, context-sensitive grammars, push-down automata, closure properties. Prerequisite: CSE 331 or consent of instructor. (4 units)
- 501. Introduction to Theory of Computation
- Theoretical foundations of computer science: deterministic and non-deterministic Turing machines, models of computation; recursive functions, Church's thesis and undecidable problems; complexity classes P, NP, CO-NP and PSPACE. Formerly CSE 546. Prerequisite: CSE 500 or consent of instructor. (4 units)
- 510. Advanced Computer Architecture
- High performance computer architectures and algorithms including pipeline, vector, array, multi-processor computer designs, applications, and programming. Also covered are data flow and systolic machines, interconnection networks, and graph and parallel graph algorithms. Formerly CSE 410. Three hours lecture and two hours laboratory. Prerequisite: CSE 401. (4 units)
- 511. Expert Systems
- Expert systems components, problems and applications. Knowledge bases, inference "engines," and their integration within expert systems. Tools for building expert systems, system algorithms as related to hardware, implementation languages and examples of systems in operation. Prerequisite: CSE 330. (4 units)
- 512. Introduction to Artificial Intelligence
- Problems and issues of artificial intelligence, current techniques and methods, and future prospects of machine intelligence. Three hours lecture and two hours activity laboratory. Formerly CSE 411. Prerequisite: CSE 330. (4 units)
- 513. Advanced Artificial Intelligence
- Advanced issues and techniques in artificial intelligence; intelligent agents for problem solving, reasoning and learning; advanced artificial intelligence programming in LISP. Three hours lecture and two hours activity laboratory. Prerequisite: CSE 512 or consent of instructor. (4 units)
- 515. Automated Reasoning
- Study of deduction algorithms for expert systems and the limitations thereof, propositional calculus, quantification theory, completeness and incompleteness theorems, Hebrand-Godel computability, resolution principle, equality and inequality relations. Prerequisite: CSE 431. (4 units)
- 520. Advanced Computer Graphics
- Advanced computer graphics concepts, theory and implementation techniques. Topics include shading models, parametric curves and surfaces, hidden edge and surface removal, and anti-aliasing. Prerequisite: CSE 420. (4 units)
- 521. Field Programmable Gate Array Design
- FPGA design rules, timing, latency, optimzations, ASIC conversion, state machines, implementing arithmetic, counters, memory, error detection and correction, simulation, and layout. Materials fee required. Three hours lecture and three hours laboratory. Prerequisite: CSE 401. (4 units)
- 524. Supercomputing and Visualization
- Design and implementation of scientific applications on high performance computers emphasizing graphics and visualization techniques. Topics include parallel algorithm development, multiprocessor and multicomputer programming, and real-time visualization programming of computationally intensive problems in the sciences. Prerequisite: CSE 330 or consent of instructor. (4 units)
- 525. Parallel Algorithms and Programming
- Topics include algorithm design, analysis, and programming of high performance computers. Also covered are control-parallel versus data-parallel approaches, PRAM algorithm design, and selected parallel programming languages. Four hours lecture. Prerequisite: CSE 401. (4 units)
- 530. Data Communications and Networks
- Topics include baseband and broadband signals and modulation schemes. Error detecting and correcting codes, ISO protocol standard, packet switching and various local network schemes. Three hours lecture and two hours activity laboratory. Formerly CSE 430. Prerequisites: CSE 313 or 498 and 330. (4 units)
- 531. High Performance Networks
- High performance network methodologies. Methods to develop network performance measures and models. Introduction to path cost estimation and service reliability issues. Three hours lecture and two hours laboratory. Formerly a topic under CSE 594. Prerequisite: CSE 530 or consent of instructor. (4 units)
- 535. Numerical Computation
- Introduction to scientific computing. Algorithms related to approximations, zero findings, numerical differentiation and integration, data fitting and interpolation, nonlinear equations. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: senior standing or consent of instructor. (4 units)
- 540. System Simulation
- Theory and implementation of computerized modeling. Examples will include administrative, physical and biological systems. Prerequisite: CSE 330 or consent of instructor. (4 units)
- 541. Robotics and Control
- Theory and practice of robotic modeling, control, programming, and construction. Three hours lecture and three hours laboratory. Materials fee required. Prerequisites: CSE 310 and 313. (4 units)
- 550. Advanced Bioinformatics I: Sequence Analysis
- Pairwise and multiple sequence alignment of strings and relations to biology. Building phylogenetic trees from sequences. Predicting and analyzing RNA secondary structure. Three hours discussion and two hours activity. Prerequisites: CSE 431 and senior standing or consent of instructor. (4 units)
- 551. Advanced Bioinformatics II: Numerical Modeling
- Numerical techniques for the modeling and simulation of biological and chemical systems using ordinary and partial differential equations, and stochastic variables. Three hours discussion and two hours activity. Prerequisite: CSE 535. (4 units)
- 555. Software Design and Architecture
- Common patterns of architectural design, tradeoff analysis at the architectural level, domain-specific architectures, automatic support for architectural design, and formal methods of software architecture. Three hours lecture and two hours laboratory. Prerequisite: CSE 330. (4 units)
- 556. Introduction to Formal Methods, Models and Languages
- Applications of logic and mathematics in documenting problems, requirements, specifications, designs, and software. Formal modeling languages. Diagrammatic, algebraic, and tabular models. Model checking. Students prepare, check, and present models using techniques in the literature. (Also offered as CSE 656. Students may not receive credit for both.) Three hours lecture and two hours activity laboratory. Prerequisites: CSE 320 and 330. (4 units)
- 557. Computer Systems in Organizations
- General system and information theory. Modeling organizations, activities, hardware, data, and software using current techniques with emphasis on human-computer interaction, systems engineering and project planning. Students will study parts of actual organizations. Formerly CSE 372. Prerequisites: CSE 330, MATH 262, or consent of instructor. (4 units)
- 565. Systems Programming
- Concepts of, and implementation techniques for systems software such as assemblers, editors, interpreters, linkers, loaders and operating systems. Prerequisite: CSE 460. (4 units)
- 570. Compilers
- Interpreter and compiler structures. Topics include symbol tables, lexical and syntactic scanners, and object code generation. Three hours lecture and two hours activity laboratory. Prerequisites: CSE 313, 320 and 330. (4 units)
- 572. Database Systems
- Basic concepts of database design and theory, including underlying storage structures and alternative approaches to database models (relational, object-relational, network and hierarchical). Hands-on applications with one or more commercial database management systems. Three hours lecture and two hours activity laboratory. Materials fee required. Formerly CSE 480. Prerequisite: CSE 330. (4 units)
- 575. Internship in Computer Science
- Supervised work and study in private or public organizations. Graded credit/no credit. Prerequisites: a minimum overall grade point average of 3.0, consent of instructor and departmental approval of a written proposal of a project submitted on a standard application filed in advance of the quarter in which the course is to be taken. (4 units)
- 580. Advanced Database Systems
- Advanced study of components of general database systems and other topics such as implementation methods, query language design, reliability, integrity, performance measures, distributed database systems and database machines. Three hours lecture and two hours activity laboratory. Prerequisite: CSE 572. (4 units)
- 594. Topics in Computer Science
- An in-depth consideration of selected areas of computer science. May be repeated for credit as topics change. Prerequisite: CSE 431 (or 331) or consent of instructor. (4 units)
- 595. Independent Study
- Laboratory and/or library research conducted under the direction of a faculty member. A total of four units in CSE 595 may be applied toward the computer science, computer systems, computer engineering, and bioinformatics majors. Prerequisites: a minimum overall grade point average of 3.0, consent of instructor and departmental approval of a written proposal of a project submitted on a standard application filed in advance of the quarter in which the course is to be taken. (1-4 units)
- 598. Foundations of Computer Architecture
- Boolean algebra and logic gates; combinational and sequential logic; processor design; data path design; control design; memory organization; and system organization. May not be counted as upper-division elective units for the B.S. in Computer Science, B.A. in Computer Systems, B.S. in Computer Engineering, or B.S. in Bioinformatics. Prerequisites: CSE 202, MATH 272, and consent of instructor. (4 units)
- 599. Foundations of Software Systems
- Software development process which includes software life-cycles, software techniques and technologies used to produce large software systems; operating systems including processes, input/ output, memory management, and file systems. May not be counted toward the B.S. in Computer Science, B.A. in Computer Systems, B.S. in Computer Engineering, or B.S. in Bioinformatics. Prerequisites: CSE 330 and consent of instructor. (4 units)

## Graduate/Postbaccalaureate

May not be taken by undergraduate students.

- 602. Computation and Complexity Theory
- Theoretical foundations of computer science: deterministic and non-deterministic Turing machines, models of computation; recursive functions, Church's thesis and undecidable problems; complexity classes P, NP, CO-NP and PSPACE. May not be taken for credit by students who have received credit for CSE 501, 546, 646. Formerly CSE 600. Prerequisite: CSE 500 or consent of instructor. (4 units)
- 603. Advanced Computation and Complexity Theory
- Advanced topics in theoretical foundations of computer science: models of computation; recursive functions; Church's thesis and undecidable problems; complexity classes P, NP, CO-NP and PSPACE. Formerly CSE 601 and 646. Prerequisite: CSE 602 or consent of instructor. (4 units)
- 610. Modern Computer Architecture
- Study of the elements and construction of advanced computer systems, including parallel systems, vector processors, network scheduling, pipelining, array processors, and systolic arrays. May not be taken for credit by students who have received credit for CSE 510. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: CSE 401 or consent of instructor. (4 units)
- 611. VLSI Circuit Design
- Fundamental design techniques for Very Large Scale Integrated (VLSI) circuits; physics of semi-conductor devices; design rules and circuit layouts; use of computer-aided design tools for design, layout and testing. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 620. Programming Languages Theory
- Theory of programming languages, including implementation details, the required machine and data structures needed for user interfaces, coded parallelism, distributed processing facilities, functional and object oriented programming languages. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 621. Contemporary Computer Graphics
- Theory and practice of modern graphics techniques. Topics include 3-D modeling, interaction, ray tracing, object representation, visualization, and animation techniques. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 624. Distributed Computer Systems
- Open Systems Interconnection (OSI) transport, presentation and application layers; distributed control; access methods; reliability; heterogeneity; resilience; applications in network operating systems, distributed operating systems and distributed database systems. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 625. Multiprocessor and Parallel Processing
- Tightly and loosely coupled multiprocessors; interconnection network; parallel programming languages; scheduling; problem decomposition; operating systems; performance; synchronization and communication; user-interface and programming environment; multiprocessor machine programming. May not be taken for credit by students who have received credit for CSE 525. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 630. Theory of Algorithms and Their Analysis
- Algorithmic techniques, construction, time and space complexities, properties of taxonomic classes; survey of processing algorithms for graphs, trees, sets, and sequences; algebraic, numeric and geometric analysis techniques; dynamic programming, randomized algorithms, parallel algorithms; NP. Prerequisite: CSE 431 or consent of instructor. (4 units)
- 631. Advanced Data Communications
- Topics include high bandwidth networks, formal models of network performance, traffic and congestion control, formal routing theory, quality of service, and internet protocol suite adaptations to high bandwidth networks. May not be taken for credit by students who have received credit for CSE 531. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: CSE 530 or consent of instructor. (4 units)
- 634. Neural Networks
- Theory and applications of neural networks; current developments; perceptrons; Hopfield networks; self-organizing mappings and content-addressable memories; multi-layer networks. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 635. Numerical Algorithms and Simulation
- Scientific computing and simulation. Systems of liner equations, linear least squares, backward error analysis and numerical stability, stiff equations, simulation, sparse matrices. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: CSE 535 or equivalent. (4 units)
- 640. Artificial Intelligence
- Knowledge representations; heuristics; theory of problem solving; adaptive systems; natural language understanding; automatic theorem proving; learning and robotics systems. Three hours lecture and two hours laboratory. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 655. Software Engineering Concepts
- Analyses of software requirements definitions, software systems design, implementation issues, verification and validation, and software maintenance techniques; rapid prototyping procedures; operational and transformational paradigms of software development; software engineering models and CASE tools including reverse engineering and module reusability concepts; applications in object-oriented programming languages. Three hours lecture and three hours laboratory. Materials fee required. Prerequisite: CSE 455, 555, or 556 or consent of instructor. (4 units)
- 656. Formal Methods, Models and Languages
- Applications of logic and mathematics in documenting problems, requirements, specifications, designs, and software. Formal modeling languages. Diagrammatic, algebraic, and tabular models. Model checking. Students prepare, check, and present models using techniques in the literature for a research paper. Students may not receive credit for both CSE 556 and 656. Three hours lecture and two hours activity laboratory. Materials fee required. Prerequisite: classified status. (4 units)
- 660. Operating Systems Concepts and Theory
- Operating system concepts and scheduling practices, including security, real time, multiprocessing, resource sharing, distributed file systems and peripherals access scheduling; distributed processing environments and parallel processing facilities. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: CSE 460 or consent of instructor. (4 units)
- 670. Compiler Design Theory
- Compiler design for block structures, general purpose programming languages; automatic generation of lexical analyzers and parsers; error detection and correction; code optimization. Three hours lecture and two hours laboratory. Materials fee required. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 671. Advanced Compilers
- Intermediate code generation, optimization, object code generation and architecture and optimized compiler co-design. Prerequisite: graduate standing in computer science or consent of instructor. An introductory course in compilers is recommended. (4 units)
- 680. Distributed Database Management Systems
- Distributed database issues including methods of data distribution, types of remote database access, concurrency management, extensions to Structured Query Language (SQL) for remote databases, cooperative processing, database machines and intelligent databases. May not be taken for credit by students who have received credit for CSE 580. Three hours lecture and two hours activity laboratory. Materials fee required. Prerequisite: graduate standing in computer science or consent of instructor. (4 units)
- 689. Comprehensive Examination
- Unsupervised study in preparation of the comprehensive examination. Topics include the material covered in the core courses: formal language and automata theory, computer architecture, algorithms, software engineering, and operating systems. May be repeated only once. Graded credit/no credit. Prerequisites: CSE 602, 610, 630, 655, 660 and consent of graduate coordinator. (1 unit)
- 690. Master's Project
- Independent graduate project conducted under the guidance of a major advisor; total of at least five units of CSE 690 must be taken in contiguous quarters. Prerequisites: advancement to candidacy and consent of department major advisor. (2-5 units)
- 695. Graduate Independent Study
- Independent graduate research in computer science. A total of four units in this course may be applied toward the M.S. degree. Prerequisites: graduate standing in computer science, consent of instructor, and approval of a written proposal of the research by the department graduate program coordinator. (2-4 units)
- 698. Continuous Enrollment for Graduate Candidacy Standing
- Independent study leading to completion of requirements (other than course work) for the master's degree. To retain classified standing in the master's program, a student must enroll in 698 each quarter until the project or thesis is accepted or the comprehensive examination passed. Cannot be used to satisfy degree requirements. Students who enroll in 698 through the university have full use of all university facilities. See Page 370, Culminating Experience: Exam, Thesis, or Project. Prerequisites: advancement to candidacy and approval of program graduate coordinator or, if an interdisciplinary studies major, consent of the Dean of Graduate Studies. 698 is a variable unit course, see Page 43 for fee schedule. Earned units are not degree-applicable nor will they qualify for financial aid. (0-6 units)
- 699. Thesis
- Independent graduate research conducted under the guidance of a major advisor; total of at least nine units for CSE 699 must be taken in contiguous quarters. Prerequisites: advancement to candidacy and consent of department major advisor. (2-6 units)

For more information please visit our website. The School of Computer Science and Engineering

*For official information please refer to the university catalog.*