Previous Next Up Catalog Contents _________________________________________________________________ Computer Science Courses Lower Division Courses 1. Principles of Computer Science. Lecture, four hours; laboratory, two hours; other, six hours. Not open for credit to computer science majors. Introduction to fundamental scientific principles of computation. Programming in LISP. Systems software, including interpreters, and operating systems. Computer hardware design and implementation. Theory of computation, including computability and complexity. Applications, including artificial intelligence and scientific computing. P/NP or letter grading. 2. Great Ideas in Computer Science. (Formerly numbered 98.) Lecture, four hours; outside study, eight hours. Broad coverage for liberal arts and social sciences students of computer science theory, technology, and implications, including artificial and neural machine intelligence, computability limits, virtual reality, cellular automata, artificial life, programming languages survey, and philosophical and societal implications. P/NP or letter grading. 10C. Introduction to Programming. Lecture, four hours; discussion, four hours; outside study, four hours. Exposure to computer organization and capabilities. Basic principles of programming: algorithmic, procedural problem solving. Program design and development. Control structures and data structures. Character strings and word processing. 10F. Introduction to Programming/FORTRAN. Lecture, four hours; discussion, two hours. Open to mathematics and computer science majors; open to graduate students on S/U grading basis only. Description and use of FORTRAN programming language. Selected topics in programming techniques. Programming and running of several problems. 11. Introduction to PASCAL. Lecture, four hours; discussion, two hours; other, six hours. Limited to majors in computer science and engineering and computer science majors. Open to graduate students on S/U grading basis only. Not open to students with credit for course 10C, 10F, or Program in Computing 10A. Human factors in programming and program design. Exposure to computer organization and capabilities, data representation, professional ethics. Principles of programming (using PASCAL as example language): algorithm design and procedural abstraction. Program design and development. Control structures and data structures. 23. Introduction to Computer Science III. Lecture, four hours; recitation, two hours. Prerequisites: courses 21, 22. Design and specification of algorithmic solutions. Design and specification of data structures, complexity analysis of algorithms and data structures. Implementation of algorithms and data structures in C programming language. Performance analysis of computer programs. 31. Introduction to Computer Science I. Lecture, four hours; discussion, two hours; outside study, six hours. Limited to majors in computer science and engineering and computer science majors. Introduction to computer science via theory, applications, and programming. Operators and control structures. Functions, parameters, scope rules. Recursion. Arrays, strings, pointers. Object-oriented programming, classes, data abstraction. Input/output. Examples and exercises from computer science theory and applications. 32. Introduction to Computer Science II. Lecture, four hours; discussion, two hours; outside study, six hours. Prerequisite: course 31. Limited to majors in computer science and engineering and computer science majors. Not open to students with credit for course 23. Object-oriented programming, overloading, inheritance, polymorphism. Object-oriented view of data structures: lists, stacks, queues. Memory management. Sorting and searching algorithms and their performance. Trees, graphs, and associated algorithms. Case studies and exercises from computer science applications. 33. Systems Programming (5 units). (Formerly numbered 24.) Lecture, four hours; discussion, two hours; outside study, nine hours. Prerequisite: course 32. Limited to majors in computer science and engineering and computer science majors. Not open to students with credit for former course 24. Introductory course on assembly language and operating systems fundamentals. Number systems, machine language, and assembly language. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Operating systems concepts: processes and process management, I/O programming, memory management, file systems. 51A. Logic Design of Digital Systems. Lecture, four hours; recitation, two hours; outside study, six hours. Prerequisite: Physics 8C. Introduction to digital systems. Specification and implementation of combinational and sequential systems. Standard logic modules and programmable logic arrays. Specification and implementation of algorithmic systems: data and control sections. Number systems and arithmetic algorithms. Error control codes for digital information. Upper Division Courses 111. Operating Systems Principles. Lecture, four hours; laboratory, two hours; outside study, six hours. Prerequisites: courses 32 or equivalent, 33. Introduction to design and performance evaluations of modern operating systems. Mapping and binding of addresses. Organization of multiprogramming and multiprocessing systems; interrupts, process model, and interlocks. Resource allocation models and problem of deadlocks. Scheduling, synchronization. Memory management, virtual memory. I/O control, file systems. 112. Computer System Modeling Fundamentals. Lecture, four hours; outside study, eight hours. Prerequisites: upper division standing or Statistics 154A, consent of instructor. Basic tools necessary for performance evaluation and design of distributed computer systems, including such topics as combinatorics, generating functions, probability theory, transforms, Markov chains, baby queueing theory. Presentation of this set of tools in a fashion that is rich with examples from computer systems field. 118. Computer Network Fundamentals. Lecture, four hours; discussion, two hours. Prerequisite: upper division standing. Investigation of functions required to operate computer communications networks. Development of methodology for implementing these functions in procedures called protocols. Organization around ISO-OSI seven-layer architecture, with review of each layer. Specific functions defined and available alternatives studied. Presentation of several applications and case studies based on existing public and private networks. 130. Software Engineering. Lecture, four hours; laboratory, two hours; outside study, six hours. Prerequisite: course 32. Structured programming, program specification, program proving, modularity, abstract data types, composite design, software tools, software control systems, program testing, team programming. 131. Programming Languages. Lecture, four hours; laboratory, two hours; outside study, six hours. Prerequisites: courses 32, 33. Study, comparison, and evaluation of alternative strategies for language specification, data description, data control, program modularity, instruction sequencing, and language implementations. Use of a few languages selected from FORTRAN 77, ADA, SNOBOL 14, LISP, MODULA 2, and PROLOG to illustrate particular implementations of some of above features. 132. Compiler Construction. Lecture, four hours; discussion, two hours; outside study, six hours. Prerequisites: courses 32, 131, 181. Compiler structure; lexical and syntactic analysis; semantic analysis and code generation; theory of parsing. 133. Parallel and Distributed Computing. Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 111 (may be taken concurrently), 131. Distributed memory and shared memory parallel architectures; asynchronous parallel languages: MPI, Maisie; primitives for parallel computation: specification of parallelism, interprocess communication and synchronization; design of parallel programs for scientific computation and distributed systems. 141. Basic Methods of Data Organization. Lecture, four hours; laboratory, two hours; outside study, six hours. Prerequisite: course 32 or consent of instructor. Fundamental techniques for organizing and manipulating data, stressing relationships to performance, time/storage trade-offs. Sequential and linked storage allocation for linear lists, multilinked structures. Trees: implementation, traversals, mathematical properties. Graphs and networks: memory representation, algorithms. Dynamic storage allocation. External storage devices. Database concepts and architectures. Topics include sorting-searching, algorithmic analysis, graph theory, concepts underlying file management. 143. Introduction to Database Systems. Lecture, four hours; discussion, two hours; laboratory, two hours; outside study, four hours. Prerequisite: course 32 or consent of instructor. Information systems and database systems in enterprises. File organization and secondary storage structures. Relational model and relational database systems. CODASYL and other data management approaches. Database design principles. Transactions, concurrency, and recovery. Integrity and authorization. 151B. Computer Systems Architecture. Lecture, four hours; discussion, two hours; outside study, six hours. Prerequisite: course 51A. Recommended: courses 33, 152A. Machine organization and design, formal descriptions, comparative study of machine instruction sets and formats, data representation and floating point, addressing structures, mechanization of procedure calls, memory organization and management, microprogramming, I/O processing and interrupts, and reliability aspects. 151C. Design of Digital Systems. Lecture, four hours; discussion, two hours. Prerequisites: courses 51A, 151B, 152A. Design of complex digital systems using hierarchial approaches and regular structures. Combinational, sequential, and algorithmic systems. Microprogramming and firmware engineering. Cost/performance measures and technology constraints. Use of design tools. Design project. 152A. Introductory Digital Design Laboratory (2 units). Laboratory, four hours. Prerequisite: course 51A. Hands-on design, implementation, and debugging of digital logic circuits, use of computer-aided design tools for schematic capture and simulation, implementation of complex circuits using programmed array logic, design projects. 152B. Computer Design and Interfacing Laboratory. Laboratory, eight hours; outside study, four hours. Requisite: course 151B. Design and implementation of computer I/O interfaces and device controllers, implementation of microprogrammed machines. 161. Fundamentals of Artificial Intelligence. Lecture, four hours; laboratory, two hours; outside study, six hours. Requisite: course 23. Introduction to fundamental problem solving and knowledge representation paradigms of artificial intelligence. Introduction to LISP with regular programming assignments. State-space and problem reduction methods, brute-force and heuristic search, planning techniques, two-player games. Knowledge structures including predicate logic, production systems, semantic nets and primitives, frames, scripts. Special topics in natural language processing, expert systems, vision, and parallel architectures. 163. Introduction to Natural Language Processing. Lecture, four hours; laboratory, two hours. Prerequisite: course 130 or 131 or consent of instructor. Role of syntax, semantics, and pragmatics in human language processing by computers. Natural language generators and parsers, inference, and conceptual analysis. Modeling conceptual processes and representing semantic knowledge by means of computer problems. 170A. Introduction to Scientific Computing. Lecture, four hours; laboratory, two hours; outside study, six hours. Prerequisite: senior standing in computer science or consent of instructor. Introduction to scientific modeling and simulation, using the very high-level computer languages MATHEMATICA and MAPLE. Extensive coverage of programming in MATHEMATICA, with applications involving engineering modeling; simulation term project required. 171. Real-Time Computer Systems. Prerequisite: senior standing or consent of instructor. Survey of fundamentals, with emphasis on hardware and systems concepts. Adapting digital computers to interfaces, including multiprogramming, bus structure, interrupt, and time-sharing considerations. Digital communication, remote consoles, sampling, quantizing, multiplexing, analog-digital conversion, and data reconstruction. 171L. Real-Time Systems Laboratory (2 to 4 units). Laboratory, four to eight hours. Prerequisites: senior standing, consent of instructor. Recommended: courses 152A, 171 (may be taken concurrently). Tests and measurements of digital and analog signals and systems as encountered in data acquisition, on-line computing, telecommunication facilities, terminals, modems, interfaces, and standards (e.g., RS 232, IEEE488). May be repeated for credit with consent of instructor. 174. Elements of Computer Graphics. Lecture, two hours; laboratory, two hours; outside study, eight hours. Requisite: course 32. Hardware and software elements of computer graphics systems. Graphics languages. Graphic workstations and specialized I/O devices. Design and development of interactive graphics programs. 180. Introduction to Algorithms and Complexity. Lecture, four hours; discussion, two hours; outside study, six hours. Prerequisites: course 32, Mathematics 61, junior standing in computer science. Introduction to design and analysis of algorithms. Design techniques: divide-and-conquer, greedy method, dynamic programming; selection of prototypical algorithms; choice of data structures and representations; complexity measures: time, space, upper, lower bounds, asymptotic complexity; NP-completeness. 181. Introduction to Formal Languages and Automata Theory. Lecture, four hours; discussion, two hours; outside study, six hours. Prerequisites: Mathematics 61 and junior standing in computer science, or consent of instructor. Grammars, automata, and languages. Finite-state languages and finite-state automata. Context-free languages and pushdown story automata. Unrestricted rewriting systems, recursively enumerable and recursive languages, and Turing machines. Closure properties, pumping lemmas, and decision algorithms. Introduction to computability. 190. Computer Science Design Project. Lecture, four hours; outside study, eight hours. Prerequisite: senior standing with adequate background in hardware, software, and computer applications. Limited to majors in computer science and engineering and computer science majors. Basic concepts of design of projects in computer science, including interpretation of specifications, subtasking, design of experiments, data analysis and performance evaluation, cost engineering, reliability, and societal and safety considerations. 196A. Introduction to Bioengineering and Cybernetics (2 units). Prerequisite: calculus. Strongly recommended for students with potential interest in bioengineering or cybernetics as a major. Introductory survey of topics in bioengineering and cybernetics disciplines. Lectures presented by faculty currently performing research in one of the areas; some sessions include laboratory tours. P/NP grading. M196B. Modeling and Simulation of Biological Systems (5 units). (Same as Medicine M196B.) Lecture, four hours; discussion, one hour; laboratory, two hours; outside study, eight hours. Prerequisite: Electrical Engineering 102 or Mathematics 115A. Introduction to dynamic system modeling, compartmental modeling, and computer simulation methods for studying biomedical systems. Basics of numerical simulation algorithms, translating biomodeling goals and data into mathematic models and implementing them for simulation and analysis. Modeling software exploited for class assignments in PC laboratory. CM196L. Biomedical Systems/Biocybernetics Research Laboratory. (Formerly numbered C196L.) (Same as Neuroscience M174.) Lecture, one hour; laboratory, three hours; outside study, eight hours. Requisite: course M196B. Special laboratory techniques and experience in biocybernetics research. Laboratory instruments, their use, design, and/or modification for research in life sciences. Special research hardware, firmware, software. Use of simulation in experimental laboratory. Laboratory automation and safety. Comprehensive experiment design. Radioactive isotopes and kinetic studies. Experimental animals, controls. Concurrently scheduled with course C296L. 199. Special Studies (2 to 8 units). Prerequisites: upper division standing, consent of instructor. Individual investigation of selected topic to be arranged with a faculty member. Enrollment request forms available in department office. Occasional field trips may be arranged. May be repeated for credit. Graduate Courses 201. Computer Science Seminar (2 units). (Formerly numbered 201A-201B-201C.) Seminar, four hours; outside study, two hours. Designed for graduate computer science students. Seminars on current research topics in computer science. May be repeated for credit. S/U grading. 202. Advanced Computer Science Seminar. Prerequisite: completion of major field examination in computer science or consent of instructor. Current computer science research into theory of, analysis and synthesis of, and applications of information processing systems. Each member completes one tutorial and one or more original pieces of work in the specialized area. May be repeated for credit. 212A. Queueing Systems Theory. Prerequisites: course 112 and Electrical Engineering 131A, or consent of instructor. Resource sharing issues and theory of queueing (waiting-line) systems. Review of Markov chains and baby queueing theory. Method of stages. M/Er/1. Er/M/1. Bulk arrival and bulk service systems. Series-parallel stages. Fundamentals of open and closed queueing networks. Intermediate queueing theory: M/G/1; G/M/m. Collective marks. Advanced queueing theory: G/G/1; Lindley integral equation; spectral solution. Inequalities, bounds, approximations. 212B. Queueing Applications: Scheduling Algorithms and Queueing Networks. Prerequisite: course 212A. Priority queueing. Applications to time-sharing scheduling algorithms: FB, Round Robin, Conservation Law, Bounds. Queueing networks: definitions; job flow balance; product form solutions -- local balance, MÆM; computational algorithms for performance measures; asymptotic behavior and bounds; approximation techniques -- diffusion -- iterative techniques; applications. 214. Data Transmission in Computer Communications. Prerequisites: course 112, graduate standing in computer science. Discrete data streams, formats, rates, transductions; digitial data transmissions via analog signaling in computer communication; media characteristics, systems methodologies, performance analysis; modem designs; physical interfaces in computer communication links; national/international standards; tests and measurements. 215. Computer Communications and Networks. Prerequisite: course 112. Resource sharing; computer traffic characterizations; multiplexing; network structure; packet switching and other switching techniques; ARPANET and other computer network examples; network delay and analysis; network design and optimization; network protocols; routing and flow control; satellite and ground radio packet switching; local networks; commercial network services and architectures. Optional topics include extended error control techniques; modems; SDLC, HDLC, X.25, etc.; protocol verification; network simulation and measurement; integrated networks; communication processors. 216. Distributed Multiaccess Control in Networks. Prerequisites: courses 212A, 215. Topics from the field of distributed control and access in computer networks, including terrestrial distributed computer networks; satellite packet switching; ground radio packet switching; local network architecture and control. 218. Advanced Computer Networks. Lecture, four hours; outside study, eight hours. Prerequisites: courses 112 and 118, or consent of instructor. Review of seven-layer ISO-OSI model. High-speed networks: LANs, MANs, ATM. Flow and congestion control; bandwidth allocation. Internetting. 219. Current Topics in Computer System Modeling Analysis (2 to 12 units). Prerequisite: consent of instructor. Review of current literature in an area of computer system modeling analysis in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. May be repeated for credit with consent of instructor. 221. Economics of Computers. Prerequisite: consent of instructor. Basic economic factors in data processing. Buyers and sellers; products; applications; major cost factors. Selection and operation of a data processing system. M222. Control and Coordination in Economics. (Same as Economics M222A.) Lecture, three hours. Prerequisite: graduate standing in economics or engineering or consent of instructor. Recommended: appropriate mathematics course. Stabilization policies, short- and long-run dynamics and stability analysis; decentralization, coordination in teams; certainty equivalence and separation theorems; stochastic and learning models. Bayesian approach to price and output rate adjustment. S/U or letter grading. 231A. Advanced Topics in Programming Languages. Prerequisite: course 131. Presentation, analysis, and discussion of specialized programming languages, new higher-level languages, and new and/or advanced features of programming languages. 232A. Operational Semantics of Programming Languages. Lecture, four hours; outside study, eight hours. Prerequisites: courses 131, 181, or equivalent. Introduction to formal semantics. Interpreter-based operational definitions. Induction and structural operational semantics. Proving equivalence between structural and interpreter-based operational definitions. Static and dynamic semantics. Example operational definitions of functional, imperative, concurrent, logic, and object-oriented programming languages. 232B. Semantics of Programming Languages. Prerequisites: courses 131 and 181, or consent of instructor. Denotational semantics of programming languages. Notation and foundations. Expressions, commands, declarations, and other constructs. Environments, stores, and continuations. Examples. Relations between semantic definitions of programming languages. Applications of current research interest. 233A. Parallel Programming. Lecture, four hours; other, eight hours. Prerequisites: courses 111, 131. Mutual exclusion and resource allocation in distributed systems; primitives for parallel computation: specification of parallelism, interprocess communication and synchronization, atomic actions, binary and multiway rendezvous; synchronous and asynchronous languages: CSP, ADA, LINDA, MAISIE, UC, and others; introduction to parallel program verification. 233B. Verification of Concurrent Programs. Lecture, four hours; other, eight hours. Prerequisite: course 233A. Formal techniques for verification of concurrent programs. Topics include safety, liveness, program and state assertion-based techniques, weakest precondition semantics, Hoare logic, temporal logic, UNITY, and axiomatic semantics for selected parallel languages. 234A. Correctness Proofs. Prerequisite: consent of instructor. Theoretical and practical aspects of correctness proofs. Partial correctness, total correctness, and termination. Axiomatic semantics and proof systems. Abstraction and correctness of implementations. Formulation, execution, and assessment of correctness proofs. Topics of current research interest. 235A. Logic Programming and PROLOG. Lecture, four hours; outside study, eight hours. Prerequisite: graduate standing in computer science. Logic programming; PROLOG as an approximation thereof; PROLOG programming techniques; translation and definite clause grammars; rewriting and interpreters; implementation of PROLOG; constraint logic programming and other proposed extensions to PROLOG; parallel logic programming systems. 239. Current Topics in Computer Science: Programming Languages and Systems (2 to 12 units). Lecture, four hours. Prerequisite: consent of instructor. Review of current literature in an area of computer science programming languages and systems in which instructor has developed special proficiency as a consequence of research interests. May be repeated for credit with topic change. 240A. Databases and Knowledge Bases. Lecture, four hours; outside study, eight hours. Prerequisite: course 143. Theoretical and technological foundation of Intelligent Database Systems, which merge database technology, knowledge-based systems, and advanced programming environments. Rule-based knowledge representation, spatio-temporal reasoning, and logic-based declarative querying/programming are salient features of this technology. 241A. Object-Oriented and Semantic Database Systems. Lecture, three and one-half hours; recitation, 30 minutes; laboratory, one hour; outside study, eight hours. Prerequisite: course 143 or equivalent. Object and database principles. Data models and accessing. Database systems architecture and functional components. Extended relational systems. Object and semantic systems. Systems comparison. Database design, organization, indexing, and performance. Other topics at discretion of instructor. 241B. Pictorial and Multimedia Database Systems. Lecture, three and one-half hours; recitation, 30 minutes; outside study, nine hours. Prerequisites: courses 143, 241A. Pictorial and multimedia information system requirements. Data models and accessing; alternatives. Database systems. Visual languages and communication. Hypertext. Database design and organization, logical and physical. Database heterogeneity and distribution. Other topics at discretion of instructor. 243B. Abstract Data Types and Program Specification. Lecture, four hours; outside study, eight hours. Prerequisites: courses 32 or equivalent, 181. Notions of abstract data type and abstract program specification permit one to understand how programs manipulate data, independently of their implementations. These notions also give powerful techniques for program structuring and verification. Programming exercises. 244A. Distributed Database Systems. Lecture, four hours; outside study, eight hours. Prerequisites: courses 215 and/or 241A. File allocation, intelligent directory design, transaction management, deadlock, strong and weak concurrency control, commit protocols, semantic query answering, multidatabase systems, fault recovery techniques, network partitioning, examples, trade-offs, and design experiences. 245A. Intelligent Information Systems. Lecture, four hours; outside study, eight hours. Prerequisites: courses 241A and 255A, or consent of instructor. Knowledge discovery in database, knowledge-base maintenance, knowledge-base and database integration architectures, and scale-up issues and applications to cooperative database systems, intelligent decision support systems, and intelligent planning and scheduling systems; computer architecture for processing large-scale knowledge-base/database systems. 249. Current Topics in Data Structures (2 to 12 units). Prerequisite: consent of instructor. Review of current literature in an area of data structures in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. May be repeated for credit with consent of instructor. 251A. Advanced Computer Architecture. Lecture, four hours; other, eight hours. Prerequisites: courses 51A, 111, and 151B, or consent of instructor. Functional and structural models of computer systems. Architecture and organization at microprogramming, machine language, and operating system level. Processor organization and system control. Arithmetic processors: algorithms and implementation. Storage system organization: hierarchy and management. Communication organization and control. 251B. Parallel Computer Architectures. Prerequisite: course 251A. Parallel algorithmic structures and computer organizations. Effect of sequencing mechanisms, granularity, coupling, and locality. Organizations of control, memory, interconnection, and processing elements. Performance evaluation measures. Detailed discussion of system organization and performance of vector computers, array computers, loop-level multiprocessors, process-level multiprocessors, and dataflow computers. 252A. Arithmetic Algorithms and Processors. Lecture, four hours; outside study, eight hours. Prerequisite: course 251A or consent of instructor. Number systems: conventional, redundant, signed-digit, and residue. Types of algorithms and implementations. Complexity measures. Fast algorithms and implementations for two-operand addition, multioperand addition, multiplication, division, and square root. On-line arithmetic. Evaluation of transcendental functions. Floating-point arithmetic and numerical error control. Arithmetic error codes. Residue arithmetic. Examples of contemporary arithmetic ICs and processors. 253A. Design of Fault-Tolerant Systems. Lecture, four hours; outside study, eight hours. Prerequisite or corequisite: course 251A or consent of instructor. Fundamental concepts of dependable computing. Design methodology for fault-tolerant systems. Analytic models and measures, modeling tools. Design for critical applications: long-life, real-time, and high-availability systems. Tolerance of design faults: design diversity and fault-tolerant software. 253B. Advanced Topics in Fault-Tolerant Computing. Lecture, four hours; outside study, eight hours. Prerequisite: course 253A. Fault tolerance in distributed systems: protocols and network redundancy. Design of fault-tolerant software: N-version programming and recovery blocks. Relationship between fault tolerance and system security. Case studies of contemporary fault-tolerant systems. Review of recent research results. 253C. Testing and Testable Design of VLSI Systems. Lecture, four hours; outside study, eight hours. Prerequisite: course 51A or consent of instructor. Detailed study of various problems in testing and testable designs of VLSI systems, including fault modeling, fault simulation, testing for single stuck faults and multiple stuck faults, functional testing, design for testability, compression techniques, and built-in self-test. 254A. Computer Memories and Memory Systems. Prerequisite: course 251A or consent of instructor. Generic types of memory systems; control, access modes, hierarchies, and allocation algorithms. Characteristics, system organization, and device considerations of ferrite memories, thin film memories, and semiconductor memories. 255A. Distributed Processing Systems. Lecture, four hours; outside study, eight hours. Prerequisites: courses 215 and/or 251A. Task partitioning and allocation, interprocess communications, task response time model, process scheduling, message passing protocols, replicated file systems, interface, cache memory, actor model, fine grain multicomputers, distributed operating system kernel, error recovery strategy, performance monitoring and measurement, scalability and maintainability, prototypes and commercial distributed systems. 256A. Advanced Scalable Architectures: Systems, Building Blocks, and Technology. Lecture, four hours; outside study, eight hours. Prerequisite: course 251A or consent of instructor. State-of-the-art scalable multiprocessors and multicomputers. High-performance VLSI building blocks. Capabilities and limitations of VLSI technology. Interdependency among implementation technology, packaging, chip microarchitecture, and system architecture. Mechanisms for exploiting parallelism. Current research areas. Examples of chips and systems. M258A. LSI in Computer System Design. (Same as Electrical Engineering M216A.) Lecture, four hours; laboratory, four hours. Prerequisites: graduate standing in computer science or electrical engineering, consent of instructor. LSI/VLSI design and application in computer systems. Fundamental design techniques that can be used to implement complex integrated systems on a chip. M258B-M258C. LSI in Computer System Design. (Same as Electrical Engineering M216B-M216C.) Lecture, four hours; laboratory, four hours. Prerequisite: course M258A. LSI/VLSI design and application in computer systems. In-depth studies of VLSI architectures and VLSI design tools. In Progress grading. 258D. VLSI CAD Techniques. Prerequisite: graduate standing in computer science or electrical engineering or consent of instructor. In-depth study of latest advances in computer-aided VLSI design techniques, including building block layout, placement and routing algorithms, simulation, design verification and timing, analog/digital synthesis techniques, testing, silicon compilation, expert system applications, and automatic performance optimization. 258E. Foundations of VLSI CAD Algorithms. Lecture, four hours; other, eight hours. Prerequisites: one course in analysis and design of algorithms, consent of instructor. Basic theory of combinatorial optimization for VLSI physical layout, including mathematical programming, network flows, matching, greedy and heuristic algorithms, and stochastic methods. Emphasis on practical application to computer-aided physical design of VLSI circuits at high-level phases of layout: partitioning, placement, graph folding, floorplanning, and global routing. 258F. Physical Design Automation of VLSI Systems. Lecture, four hours; other, eight hours. Prerequisite: consent of instructor. Detailed study of various physical design automation problems of VLSI circuits, including logic partitioning, floorplanning, placement, global routing, channel and switchbox routing, planar routing and via minimization, compaction and performance-driven layout. Discussion of applications of a number of important optimization techniques, such as network flows, Steiner trees, simulated annealing, and generic algorithms. 258G. Logic Synthesis of Digital Systems. Lecture, four hours; outside study, eight hours. Prerequisites: courses 51A and 180, or consent of instructor. Detailed study of various problems in logic-level synthesis of VLSI digital systems, including two-level Boolean network optimization; multilevel Boolean network optimization; technology mapping for standard cell designs and field-programmable gate-array (FPGA) designs; retiming for sequential circuits; and applications of binary decision diagrams (BDDS). 258H. Analysis and Design of High-Speed VLSI Interconnects. Lecture, four hours; outside study, eight hours. Prerequisites: courses M258A and 258F, or consent of instructor. Detailed study of various problems in analysis and design of high-speed VLSI interconnects at both IC and packing levels, including interconnect capacitance and resistance, lossless and lossy transmission lines, cross-talk and power distribution noise, delay models and power dissipation models, interconnect topology and geometry optimization, and clocking for high-speed systems. 259. Current Topics in Computer Science: System Design/Architecture (2 to 12 units). Lecture, four hours. Prerequisite: consent of instructor. Review of current literature in an area of computer science system design in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. May be repeated for credit with topic change. 261A. Problem Solving and Search. Lecture, four hours; outside study, eight hours. Prerequisite: course 23 or equivalent. Examination in depth of that part of artificial intelligence concerned with problem-solving behavior, including problem spaces, brute-force search, heuristic search, two-player game searches, planning, subgoaling, GPS, macro-operators, and abstraction. Emphasis on mathematical rigor and complexity analyses of search algorithms. 262A. Reasoning with Partial Beliefs. Prerequisite: course 112 or Electrical Engineering 131A or equivalent. Review of several formalisms for representing and managing uncertainty in reasoning systems; presentation of comprehensive description of Bayesian inference using belief networks representation. 262B. Knowledge-Based Systems. Prerequisite: course 262A. Machine representation of judgmental knowledge and uncertain relationships. Inference on inexact knowledge bases. Rule-based systems -- principles, advantages, and limitations. Signal understanding. Automated planning systems. Knowledge acquisition and explanation producing techniques. 262C. Computer Methods of Data Analysis and Model Formation. Prerequisite: course 112 or equivalent or consent of instructor. Techniques of using computers to interpret, summarize, and form theories of empirical observations. Mathematical analysis of trade-offs between computational complexity, storage requirements, and precision of computerized models. 262Z. Current Topics in Cognitive Systems. Prerequisites: course 262A, consent of instructor, additional prerequisites for each offering as announced in advance by department. Theory and implementation of systems which emulate or support human reasoning. Current literature and individual studies in artificial intelligence, knowledge-based systems, decision support systems, computational psychology, and heuristic programming theory. May be repeated for credit with topic change. 263A. Language and Thought. Prerequisite: consent of instructor. Recommended: understanding of LISP. Introduction to natural language processing. Representation and manipulation of conceptualizations underlying processes of thought for natural language comprehension and generation. Process models of story comprehension, question answering, paraphrasing, machine translation. Conceptual dependency theory, scripts, plans, goals, expectation-based parsing. 263B. Language and Memory. Prerequisites: course 263A, knowledge of LISP or PROLOG. Recommended: course 264A. Advanced natural language processing. Emphasis on organization of human memory for language comprehension. Episodic and semantic memory. Subjective understanding and modeling ideologies. Language acquisition, processes of generalization during comprehension. Cross-contextual remindings and thematic abstraction. 264A. Artificial Intelligence Programming I. Prerequisite: consent of instructor. Recommended: knowledge of LISP or PROLOG. Introduction to tools, techniques, and issues in artificial intelligence programming. Functional programming for artificial intelligence applications. Review of LISP and introduction to lexically scoped LISPs (e.g., T, SCHEME). Lambda calculus, closures, data-driven and object-oriented programming, flavors, d-nets, resolution-based deductive systems. 264B. Artificial Intelligence Programming II. Prerequisite: course 264A or consent of instructor. Techniques of logic programming. Artificial intelligence programming languages (e.g., PROLOG, AMORD, DUCK, CONNIVER, PLANNER, QA4, KRL, ACTORS, etc.) and artificial intelligence features (e.g., nonmonotonic logics, data-dependencies for truth maintenance, meta-rules, semantic networks, frame-based systems). 265A. Machine Learning. Prerequisites: courses 263A, 264A, consent of instructor. Introduction to machine learning. Learning by analogy, inductive learning, modeling creativity, learning by experience, role of episodic memory organization in learning. Examination of BACON, AM, EURISKO, HACKER, teachable production systems. Failure-driven learning. 267A. Neural Models. Prerequisites: graduate standing, consent of instructor. Review of major neurophysiological milestones in understanding brain architecture and processes. Focus on brain theories that are important for modern computer science and, in particular, on models of sensory perception, sensory-motor coordination, and cerebellar and cerebral structure and function. Students required to prepare a paper analyzing research in one area of interest. 267B. Artificial Neural Systems and Connectionist Computing. Prerequisites: graduate standing, consent of instructor. Analysis of major connectionist computing paradigms and underlying models of biological and physical processes. Examination of past and current implementations of artificial neural networks along with their applications to associative knowledge processing, general multisensor pattern recognition including speed and vision, and adaptive robot control. Students required to prepare a paper analyzing research in one area of interest. 268. Machine Perception. Prerequisites: graduate standing, consent of instructor. Course 168 may be taken concurrently. Computational aspects of processing visual and other sensory information. Unified treatment of early vision in man and machine. Integration of symbolic and iconic representations in process of image segmentation. Computing multimodal sensory information by "neural-net" architectures. 268CN. Computational Neuroscience. Lecture, four hours; discussion, two hours; outside study, eight hours. Prerequisite: consent of instructor. Computational neuroscience as a paradigm of formal analysis and demonstrations of how to correctly interpret sensory data by discovering constraints from the natural world. Neural networks and connectionist models as a paradigm for parallel and concurrent computation and application to problem of vision, multimodel sensory interpretation, and learning. 268S. Seminar: Computational Neuroscience (2 units). Prerequisite: consent of instructor. Intended for students undertaking thesis research. Discussion of advanced topics and current research in computational neuroscience. Neural networks and connectionism as a paradigm for parallel and concurrent computation in application to problems of perception, vision, multimodal sensory integration, and robotics. May be repeated for credit. S/U grading. 269. Seminar: Current Topics in Artificial Intelligence (2 to 4 units). Prerequisite: consent of instructor. Review of current literature and research practicum in an area of artificial intelligence in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. May be repeated for credit with topic change. 270A. Computer Methodology: Advanced Numerical Methods. Prerequisites: graduate standing in computer science or engineering, Electrical Engineering 103 or Mathematics 141B or comparable experience with numerical computing. Principles of computer treatment of selected numerical problems in algebraic and differential systems, transforms and spectra, data acquisition and reduction; emphasis on concepts pertinent to modeling and simulation and the applicability of contemporary developments in numerical software. Computer exercises. 271A. Modeling and Simulation of Lumped Parameter Systems. Lecture, eight hours. Recommended (but not prerequisite): course 270A or equivalent. Characterization of electrical, electromechanical, and other engineering problems by systems of nonlinear ordinary differential equations. Survey of integration algorithms. Digital simulation languages for continuous systems. Real-time simulation using array processor and multiprocessor computer systems. 271B. Modeling and Simulation of Distributed Parameter Systems. Lecture, eight hours. Recommended (but not prerequisite): course 270A or equivalent. Mathematical formulation of engineering field problems governed by partial differential equations. Finite difference and finite element approximations. Principal algorithms for solving elliptic, parabolic, and hyperbolic partial differential equations. Supercomputers, vector processors, multiprocessors, and array processors. 271C. Seminar: Advanced Simulation Methods (2 units). Prerequisite: course 271A or equivalent. Discussion of advanced topics in simulation of systems characterized by ordinary and partial differential equations. Topics include (among others) simulation languages, dataflow machines, array processors, and advanced mathematical modeling techniques. Topics vary each term. May be repeated for credit. S/U grading. 272. Advanced Discrete Event Simulation and Modeling Techniques. Lecture, four hours; outside study, eight hours. Prerequisite: course 172 or consent of instructor. In-depth study in discrete event simulation and modeling techniques, including building valid and credible simulation models, output analysis of systems, comparisons of alternative system configurations. Variance reduction techniques, simulation models of computer systems and manufacturing systems. 273A. Digital Processing of Engineering and Statistical Data. Prerequisite: course 173. Computer methods for processing engineering and statistical data. Algorithms to evaluate recursive filter functions, Fourier series, power spectral, analysis correlation computations, and statistical testing. 276A. Pattern Analysis and Machine Intelligence. Prerequisites: graduate standing, consent of instructor. Fundamentals of pattern recognition, feature extraction and selection, autonomous learning, clustering, and machine intelligence. 276B. Structured Computer Vision. Prerequisites: graduate standing, consent of instructor. Methods for computer processing of image data. Systems, concepts, and algorithms for image analysis, radiologic and robotic applications. 276C. Speech and Language Communication in Artificial Intelligence. Prerequisite: course 276A or 276B or consent of instructor. Topics in human-computer communication: interaction with pictorial information systems, sound and symbol generation by humans and machines, semantics of data, systems for speech recognition and understanding. Use of speech and text for computer input and output in applications. 279. Current Topics in Computer Science: Methodology (2 to 12 units). Lecture, four hours. Prerequisite: consent of instructor. Review of current literature in an area of computer science methodology in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. May be repeated for credit with topic change. 280A-280ZZ. Algorithms. Lecture, four hours; outside study, eight hours. Prerequisites: course 180 or equivalent, consent of instructor, additional prerequisites for each offering as announced in advance by department. Selections from design, analysis, optimization, and implementation of algorithms; computational complexity and general theory of algorithms; algorithms for particular application areas. Subtitles of some current sections: Principles of Design and Analysis (280A); Distributed Algorithms (280D); Graphs and Networks (280G). May be repeated for credit with consent of instructor and with topic change. 281A. Computability and Complexity. Prerequisite: course 181 or compatible background. Concepts fundamental to study of discrete information systems and theory of computing, with emphasis on regular sets of strings, Turing-recognizable (recursively enumerable) sets, closure properties, machine characterizations, nondeterminisms, decidability, unsolvable problems, "easy" and "hard" problems, PTIME/NPTIME. 281D. Discrete State Systems. Prerequisite: consent of instructor. Recommended: course 181. Finite-state machines, transducers, and their generalizations; regular expressions, transduction expressions, realizability; decomposition, synthesis, and design considerations; topics in state and system identification and fault diagnosis, linear machines, probabilistic machines, applications in coding, communication, computing, system modeling, and simulation. 284A-284ZZ. Topics in Automata and Languages. Prerequisites: course 181, additional prerequisites for each offering as announced in advance by department. Selections from families of formal languages, grammars, machines, operators; pushdown automata, context-free languages and their generalizations, parsing; multidimensional grammars, developmental systems; machine-based complexity. Subtitles of some current and planned sections: Context-Free Languages (284A), Parsing Algorithms (284P). May be repeated for credit with consent of instructor and with topic change. 287A. Theory of Program Structure. Prerequisite: course 181. Models of computer programs and their syntax and semantics; emphasis on programs and recursion schemes; equivalence, optimization, correctness, and translatability of programs; expressive power of program constructs and data structures; selected current topics. 288S. Seminar: Theoretical Computer Science (2 units). Prerequisites: courses 280A, 281A, consent of instructor. Intended for students undertaking thesis research. Discussion of advanced topics and current research in such areas as algorithms and complexity models for parallel and concurrent computation, and formal language and automata theory. May be repeated for credit. S/U grading. 289A-289ZZ. Current Topics in Computer Theory (2 to 12 units each). Prerequisite: consent of instructor. Review of current literature in an area of computer theory in which instructor has developed special proficiency as a consequence of research interests. Students report on selected topics. M296A. Modeling Methodology for Biomedical Systems. (Same as Medicine M270C.) Lecture, four hours; outside study, eight hours. Recommended (but not requisite): course M196B, some intermediate knowledge of linear systems analysis or linear algebra (e.g., Mathematics 115A, Electrical Engineering 141, 142, Mechanical and Aerospace Engineering 171A, 171C). Development of dynamic systems modeling methodology for physiological, biomedical, pharmacological, chemical, and related systems, including dynamic system experiment/model development, multicompartmental, noncompartmental, and input/output models, linear and nonlinear. Emphasis on model applications, limitations, and relevance in biomedical sciences and other limited data environments. Problem solving in PC laboratory. M296B. Optimal Parameter Estimation and Experiment Design for Biomedical Systems. (Same as Biomathematics M270 and Medicine M270D.) Lecture, four hours; outside study, eight hours. Prerequisite: course M296A or consent of instructor. Estimation methodology and model parameter estimation algorithms for quantifying (fitting) dynamic system models to real-world data. Theory and algorithms for designing optimal experiments for developing and quantifying models, with special focus on data sampling schedule design. Exploration in PC laboratory of applications software for model building and optimal experiment design. M296C. Advanced Topics and Research in Biomedical Systems Modeling and Computing. (Same as Medicine M270E.) Lecture, four hours; outside study, eight hours. Prerequisite: course M296A or consent of instructor. Research techniques and experience on special topics involving models, modeling methods, and model/computing in biological and medical sciences. Review and critique of the literature. Research problem searching and formulation. Approaches to solutions. Individual M.S.- and Ph.D.-level project training. C296L. Biomedical Systems/Biocybernetics Research Laboratory. Lecture, one hour; laboratory, three hours; outside study, eight hours. Requisite: course M196B. Special laboratory techniques and experience in biocybernetics research. Laboratory instruments, their use, design, and/or modification for research in life sciences. Special research hardware, firmware, software. Use of simulation in experimental laboratory. Laboratory automation and safety. Comprehensive experiment design. Radioactive isotopes and kinetic studies. Experimental animals, controls. Concurrently scheduled with course CM196L. 298. Research Seminar: Computer Science (2 to 4 units). (Formerly numbered 209AA-209ZZ.) Seminar, two to four hours; outside study, four to eight hours. Designed for graduate computer science students. Discussion of advanced topics and current research in algorithmic processes that describe and transform information: theory, analysis, design, efficiency, implementation, and application. May be repeated for credit. S/U grading. 375. Teaching Apprentice Practicum (1 to 4 units). Preparation: apprentice personnel employment as a teaching assistant, associate, or fellow. Teaching apprenticeship under active guidance and supervision of a regular faculty member responsible for curriculum and instruction at the University. May be repeated for credit. S/U grading. 495. Teaching Assistant Training Seminar (2 units). Prerequisite: graduate standing in Computer Science Department. Seminar on communication of computer science materials in classroom: preparation, organization of material, presentation, use of visual aids, grading, advising, and rapport with students. S/U grading. 497D-497E. Field Projects in Computer Science. Prerequisite: consent of instructor. Students are divided into teams led by instructor; each team is assigned an external company or organization which they investigate as a candidate for possible computerization, submitting a team report of their findings and recommendations. In Progress grading. 596. Directed Individual or Tutorial Studies (2 to 8 units). Prerequisites: graduate standing in computer science, consent of instructor. Petition forms to request enrollment may be obtained from assistant dean, Graduate Studies. Supervised investigation of advanced technical problems. S/U grading. 597A. Preparation for M.S. Comprehensive Examination (2 to 12 units). Prerequisites: graduate standing in computer science, consent of instructor. Reading and preparation for M.S. comprehensive examination. S/U grading. 597B. Preparation for Ph.D. Preliminary Examinations (2 to 16 units). Prerequisites: graduate standing in computer science, consent of instructor. S/U grading. 597C. Preparation for Ph.D. Oral Qualifying Examination (2 to 16 units). Prerequisites: graduate standing in computer science, consent of instructor. Preparation for oral qualifying examination, including preliminary research on dissertation. S/U grading. 598. Research for and Preparation of M.S. Thesis (2 to 12 units). Prerequisites: graduate standing in computer science, consent of instructor. Supervised independent research for M.S. candidates, including thesis prospectus. S/U grading. 599. Research for and Preparation of Ph.D. Dissertation (2 to 16 units). Prerequisites: graduate standing in computer science, consent of instructor. Petition forms to request enrollment may be obtained from assistant dean, Graduate Studies. S/U grading. _________________________________________________________________ Previous Next Up Catalog Contents