General Catalog
University of California, Berkeley


 Home> Courses/Curricula by Dept.> Electrical Engineering and Computer Sciences >



 Electrical Engineering and Computer Sciences Courses



Electrical Engineering

Lower Division Courses

16A.  Designing Information Devices and Systems I. (4)   Students will receive no credit for Electrical Engineering 16A after completing Electrical Engineering 20 or 40. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. This course and its follow-on, Electrical Engineering 16B, focus on the fundamentals of designing and building modern information devices and systems that interface with the real world. The course sequence provides a comprehensive introduction to core EECS topics in circuit design, signals, and systems in an application-driven context. The courses are delivered assuming only minimal prior exposure to math and physics, and are aimed at entering students as well as non-majors seeking a broad introduction to the field. (F) Alon, Ayazifar, Lustig, Maharbiz, Subramanian, Tomlin

16B.  Designing Information Devices and Systems II. (4)   Students will receive no credit for Electrical Engineering 16B after completing Electrical Engineering 20 or 40. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Electrical Engineering 16A, Designing Information Devices and Systems I. This course is a follow-on to Electrical Engineering 16A, and focuses on the fundamentals of designing and building modern information devices and systems that interface with the real world. The course sequence provides a comprehensive introduction to core EECS topics in circuit design, signals, and systems in an application-driven context. The courses are delivered assuming only minimal prior exposure to math and physics, and are aimed at entering students as well as non-majors seeking a broad introduction to the field. (F) Alon, Ayazifar, Lustig, Maharbiz, Subramanian, Tomlin

20.  Structure and Interpretation of Systems and Signals. (4)   Three hours of lecture and three hours of laboratory per week. Prerequisites: Mathematics 1B. Formerly Electrical Engineering 20N. Mathematical modeling of signals and systems. Continous and discrete signals, with applications to audio, images, video, communications, and control. State-based models, beginning with automata and evolving to LTI systems. Frequency domain models for signals and frequency response for systems, and sampling of continuous-time signals. A Matlab-based laboratory is an integral part of the course. (F,SP) Ayazifar

24.  Freshman Seminar. (1)   One hour of seminar per week. Sections 1-2 to be graded on a letter-grade basis. Sections 3-4 to be graded on a passed/not passed basis. The Freshman Seminar Program has been designed to provide new students with the opportunity to explore an intellectual topic with a faculty member in a small seminar setting. Freshman seminars are offered in all campus departments, and topics may vary from department to department and semester to semester. (F,SP)

25.  What Electrical Engineers Do--Feedback from Recent Graduates. (1)   One hour of lecture per week. Must be taken on a passed/not passed basis. A Berkeley Electrical Engineering and Computer Sciences degree opens the door to many opportunities, but what exactly are they? Graduation is only a few years away and it's not too early to find out. In this seminar students will hear from practicing engineers who recently graduated. What are they working on? Are they working in a team? What do they wish they had learned better? How did they find their jobs? (F,SP) Boser

40.  Introduction to Microelectronic Circuits. (4)   Students will receive one unit of credit for 40 taking 42 and no credit after taking 100. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Mathematics 1B. Fundamental circuit concepts and analysis techniques in the context of digital electronic circuits. Transient analysis of CMOS logic gates; basic integrated-circuit technology and layout. (F,SP) Staff

42.  Introduction to Digital Electronics. (3)   Students will receive no credit for 42 after taking 40 or 100. Three hours of lecture and one hour of discussion per week. Prerequisites: Mathematics 1B. This course serves as an introduction to the principles of electrical engineering, starting from the basic concepts of voltage and current and circuit elements of resistors, capacitors, and inductors. Circuit analysis is taught using Kirchhoff's voltage and current laws with Thevenin and Norton equivalents. Operational amplifiers with feedback are introduced as basic building blocks for amplication and filtering. Semiconductor devices including diodes and MOSFETS and their IV characteristics are covered. Applications of diodes for rectification, and design of MOSFETs in common source amplifiers are taught. Digital logic gates and design using CMOS as well as simple flip-flops are introduced. Speed and scaling issues for CMOS are considered. The course includes as motivating examples designs of high level applications including logic circuits, amplifiers, power supplies, and communication links. (F,SP) Staff

43.  Introductory Electronics Laboratory. (1)   Three hours of laboratory per week. Must be taken on a passed/not passed basis. Prerequisites: 42 (may be taken concurrently) or equivalent or consent of instructor. Using and understanding electronics laboratory equipment such as oscilloscope, power supplies, function generator, multimeter, curve-tracer, and RLC-meter. Includes a term project of constructing and testing a robot or other appropriate electromechanical device. (F,SP) Staff

84.  Sophomore Seminar. (1,2)   Course may be repeated for credit as topic varies. One hour of seminar per week per unit for fifteen weeks. One and one half hours of seminar per week per unit for 10 weeks. Two hours of seminar per week per unit for eight weeks. Three hours of seminar per week per unit for five weeks. Sections 1-2 to be graded on a passed/not passed basis. Sections 3-4 to be graded on a letter-grade basis. Prerequisites: At discretion of instructor. Sophomore seminars are small interactive courses offered by faculty members in departments all across the campus. Sophomore seminars offer opportunity for close, regular intellectual contact between faculty members and students in the crucial second year. The topics vary from department to department and semester to semester. Enrollment limited to 15 sophomores. (F,SP)

97.  Field Study. (1-4)   Course may be repeated for credit. One to four hours of fieldwork per week. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor (see department adviser). Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. (F,SP) Staff

98.  Directed Group Study for Undergraduates. (1-4)   Course may be repeated for credit. Course format varies. Must be taken on a passed/not passed basis. Group study of selected topics in electrical engineering, usually relating to new developments. (F,SP) Staff

99.  Individual Study and Research for Undergraduates. (1-4)   Course may be repeated for credit. Enrollment is restricted; see the Introduction to Courses and Curricula section of this catalog. Must be taken on a passed/not passed basis. Prerequisites: Freshman or sophomore standing and consent of instructor. Minimum GPA of 3.4 required. Supervised independent study and research for students with fewer than 60 units completed. (F,SP) Staff

Upper Division Courses

100.  Electronic Techniques for Engineering. (4)   Students will receive one unit of credit for 100 after taking 42 and no credit after taking 40. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Mathematics 1B. This course serves as an introduction to the principles of electrical engineering, starting from the basic concepts of voltage and current and circuit elements of resistors, capacitors, and inductors. Circuit analysis is taught using Kirchhoff's voltage and current laws with Thevenin and Norton equivalents. Operational amplifiers with feedback are introduced as basic building blocks for amplification and filtering. Semiconductor devices including diodes and MOSFETS and their IV characteristics are covered. Applications of diodes for rectification, and design of MOSFETs in common source amplifiers are taught. Digital logic gates and design using CMOS as well as simple flip-flops are introduced. Speed and scaling issues for CMOS are considered. The course includes as motivating examples designs of high level applications including logic circuits, amplifiers, power supplies, and communication links. (F,SP) Staff

105.  Microelectronic Devices and Circuits. (4)   Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: 40. This course covers the fundamental circuit and device concepts needed to understand analog integrated circuits. After an overview of the basic properties of semiconductors, the p-n junction and MOS capacitors are described and the MOSFET is modeled as a large-signal device. Two port small-signal amplifiers and their realization using single stage and multistage CMOS building blocks are discussed. Sinusoidal steady-state signals are introduced and the techniques of phasor analysis are developed, including impedance and the magnitude and phase response of linear circuits. The frequency responses of single and multi-stage amplifiers are analyzed. Differential amplifiers are introduced. (F,SP) Staff

113.  Power Electronics. (4)   Three hours of lecture and three hours of laboratory per week. Prerequisites: 105 or consent of instructor. Power conversion circuits and techniques. Characterization and design of magnetic devices including transformers, reactors, and electromagnetic machinery. Characteristics of bipolar and MOS power semiconductor devices. Applications to motor control, switching power supplies, lighting, power systems, and other areas as appropriate. (SP) Staff

117.  Electromagnetic Fields and Waves. (4)   Three hours of lecture, one hour of discussion, and one and one-half hours of laboratory per week. Prerequisites: 40, Mathematics 53, 54, knowledge of phasor analysis (e.g. as taught in 105). Formerly 117A-117B. Review of static electric and magnetic fields and applications; Maxwell's equations; transmission lines; propagation and reflection of plane waves; introduction to guided waves, microwave networks, and radiation and antennas. Minilabs on statics, transmission lines, and waves. (F,SP) Staff

118.  Introduction to Optical Engineering. (3)   Students will receive no credit for Electrical Engineering 118 after taking Electrical Engineering 218A. A deficient grade in Electrical Engineering 119 may be removed by taking Electrical Engineering 118. Three hours of lecture and one hour of discussion per week. Formerly Electrical Engineering 119. Fundamental principles of optical systems. Geometrical optics and aberration theory. Stops and apertures, prisms, and mirrors. Diffraction and interference. Optical materials and coatings. Radiometry and photometry. Basic optical devices and the human eye. The design of optical systems. Lasers, fiber optics, and holography. (F,SP) Waller

120.  Signals and Systems. (4)   Four hours of lecture and one hour of recitation per week. Prerequisites: 20N, Mathematics 53, 54. Continuous and discrete-time transform analysis techniques with illustrative applications. Linear and time-invariant systems, transfer functions. Fourier series, Fourier transform, Laplace and Z-transforms. Sampling and reconstruction. Solution of differential and difference equations using transforms. Frequency response, Bode plots, stability analysis. Illustrated by analysis of communication systems and feedback control systems. (F,SP) Staff

121.  Introduction to Digital Communication Systems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 120, 126. Introduction to the basic principles of the design and analysis of modern digital communication systems. Topics include source coding, channel coding, baseband and passband modulation techniques, receiver design, and channel equalization. Applications to design of digital telephone modems, compact disks, and digital wireless communication systems. Concepts illustrated by a sequence of MATLAB exercises. (SP) Staff

122.  Introduction to Communication Networks. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 70. Computer Science 70. This course focuses on the fundamentals of the wired and wireless communication networks. The course covers both the architectural principles for making these networks scalable and robust, as well as the key techniques essential for analyzing and designing them. The topics include graph theory, Markov chains, queuing, optimization techniques, the physical and link layers, switching, transport, cellular networks and Wi-Fi. (F,SP) Staff

123.  Digital Signal Processing. (4)   Three hours of lecture, one hour of discussion, and one hour of laboratory per week. Prerequisites: 120. Discrete time signals and systems: Fourier and Z transforms, DFT, 2-dimensional versions. Digital signal processing topics: flow graphs, realizations, FFT, chirp-Z algorithms, Hilbert transform relations, quantization effects, linear prediction. Digital filter design methods: windowing, frequency sampling, S-to-Z methods, frequency-transformation methods, optimization methods, 2-dimensional filter design. (SP) Staff

C125.  Introduction to Robotics. (4)   Students will receive no credit for C125/Bioengineering C125 after taking 215A. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: Electrical Engineering 120 or equivalent or consent of instructor. An introduction to the kinematics, dynamics, and control of robot manipulators, robotic vision, and sensing. The course covers forward and inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics, and control. It presents elementary principles on proximity, tactile, and force sensing, vision sensors, camera calibration, stereo construction, and motion detection. The course concludes with current applications of robotics in active perception, medical robotics, and other areas. Also listed as Bioengineering C125. (F) Bajcsy

126.  Probability and Random Processes. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 20. This course covers the fundamentals of probability and random processes useful in fields such as networks, communication, signal processing, and control. Sample space, events, probability law. Conditional probability. Independence. Random variables. Distribution, density functions. Random vectors. Law of large numbers. Central limit theorem. Estimation and detection. Markov chains. (F,SP) Staff

127.  Optimization Models in Engineering. (4)   Students will receive no credit for Electrical Engineering 127 after taking Electrical Engineering 227A. Three hours of lecture and one hour of discussion per week. Prerequisites: Math 54 or equivalent or consent of instructor. This course offers an introduction to optimization models and their applications, ranging from machine learning and statistics to decision-making and control, with emphasis on numerically tractable problems, such as linear or constrained least-squares optimization. (F,SP) Staff

C128.  Feedback Control Systems. (4)   Three hours of lecture and one hour of discussion per week. Analysis and synthesis of linear feedback control systems in transform and time domains. Control system design by root locus, frequency response, and state space methods. Applications to electro-mechanical and mechatronics systems. Also listed as Mechanical Engineering C134. (F) Staff

129.  Neural and Nonlinear Information Processing. (3)   Three hours of lecture per week. Prerequisites: 120 or consent of instructor. Principles of massively parallel real-time computation, optimization, and information processing via nonlinear dynamics and analog VLSI neural networks, applications selected from image processing, pattern recognition, feature extraction, motion detection, data compression, secure communication, bionic eye, auto waves, and Turing patterns. (SP) Chua

130.  Integrated-Circuit Devices. (4)   Students will receive no credit for El Eng 130 after taking El Eng 230A. Three hours of lecture and one hour of discussion per week. Prerequisites: 40 or 100. Overview of electronic properties of semiconductor. Metal-semiconductor contacts, pn junctions, bipolar transistors, and MOS field-effect transistors. Properties that are significant to device operation for integrated circuits. Silicon device fabrication technology. (F,SP) Staff

134.  Fundamentals of Photovoltaic Devices. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 40 or 100 or Engineering 45. This course is designed to give an introduction to, and overview of, the fundamentals of photovoltaic devices. Students will learn how solar cells work, understand the concepts and models of solar cell device physics, and formulate and solve relevant physical problems related to photovoltaic devices. Monocrystalline, thin film and third generation solar cells will be discussed and analyzed. Light management and economic considerations in a solar cell system will also be covered. (F,SP) Arias

137A.  Introduction to Electric Power Systems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Physics 7B; Electrical Engineering 40, 100, or Engineering 45; or consent of instructor. Overview of conventional electric power conversion and delivery, emphasizing a systemic understanding of the electric grid with primary focus at the transmission level, aimed toward recognizing needs and opportunities for technological innovation. Topics include aspects of a.c. system design, electric generators, components of transmission and distribution systems, power flow analysis, system planning and operation, performance measures, and limitations of legacy technologies. (F,SP) von Meier

137B.  Introduction to Electric Power Systems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Electrical Engineering 137A and 194 or consent of instructor. Overview of recent and potential future evolution of electric power systems with focus on new and emerging technologies for power conversion and delivery, primarily at the distribution level. Topics include power electronics applications, solar and wind generation, distribution system design and operation, electric energy storage, information management and communications, demand response, and microgrids. (SP) von Meier

140.  Linear Integrated Circuits. (4)   Students will receive no credit for El Eng 140 after taking El Eng 240A. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: Electrical Engineering 105. Single and multiple stage transistor amplifiers. Operational amplifiers. Feedback amplifiers, 2-port formulation, source, load, and feedback network loading. Frequency response of cascaded amplifiers, gain-bandwidth exchange, compensation, dominant pole techniques, root locus. Supply and temperature independent biasing and references. Selected applications of analog circuits such as analog-to-digital converters, switched capacitor filters, and comparators. Hardware laboratory and design project. (F,SP) Alon, Sanders

141.  Introduction to Digital Integrated Circuits. (4)   Students will receive no credit for Electrical Engineering 141 after taking Electrical Engineering 241A. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: Electrical Engineering 40; Electrical Engineering 105 and Computer Science 150 recommended. CMOS devices and deep sub-micron manufacturing technology. CMOS inverters and complex gates. Modeling of interconnect wires. Optimization of designs with respect to a number of metrics: cost, reliability, performance, and power dissipation. Sequential circuits, timing considerations, and clocking approaches. Design of large system blocks, including arithmetic, interconnect, memories, and programmable logic arrays. Introduction to design methodologies, including hands-on experience. (F,SP) Alon, Rabaey

142.  Integrated Circuits for Communications. (4)   Students will receive no credit for El Eng 142 after taking El Eng 242A. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: El Eng 20 and El Eng 140. Analysis and design of electronic circuits for communication systems, with an emphasis on integrated circuits for wireless communication systems. Analysis of noise and distortion in amplifiers with application to radio receiver design. Power amplifier design with application to wireless radio transmitters. Radio-frequency mixers, oscillators, phase-locked loops, modulators, and demodulators. (F,SP) Staff

143.  Microfabrication Technology. (4)   Three hours of lecture and three hours of laboratory per week. Prerequisites: 40 and Physics 7B. Integrated circuit device fabrication and surface micromachining technology. Thermal oxidation, ion implantation, impurity diffusion, film deposition, expitaxy, lithography, etching, contacts and interconnections, and process integration issues. Device design and mask layout, relation between physical structure and electrical/mechanical performance. MOS transistors and poly-Si surface microstructures will be fabricated in the laboratory and evaluated. (F,SP) Staff

144.  Fundamental Algorithms for Systems Modeling, Analysis, and Optimization. (4)   Four hours of lecture per week. Prerequisites: 20; Computer Science 70 or consent of instructor. The modeling, analysis, and optimization of complex systems requires a range of algorithms and design software. This course reviews the fundamental techniques underlying the design methodology for complex systems, using integrated circuit design as example. Topics include design flows, discrete and continuous models and algorithms, and strategies for implementing algorithms efficiently and correctly in software. Laboratory assignments and a class project will expose students to state-of-the-art tools. (F,SP) Keutzer, Lee, Roychowdhury, Seshia

C145B.  Medical Imaging Signals and Systems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Electrical Engineering 20N and Engineering 7, or equivalent. Electrical Engineering 120 recommended. Knowledge of Matlab or linear algebra assumed. Biomedical imaging is a clinically important application of engineering, applied mathematics, physics, and medicine. In this course, we apply linear systems theory and basic physics to analyze X-ray imaging, computerized tomography, nuclear medicine, and MRI. We cover the basic physics and instrumentation that characterizes medical image as an ideal perfect-resolution image blurred by an impulse response. This material could prepare the student for a career in designing new medical imaging systems that reliably detect small tumors or infarcts. Also listed as Bioengineering C165. (F) Conolly

C145L.  Introductory Electronic Transducers Laboratory. (3)   Two hours of lecture and three hours of laboratory per week. Prerequisites: Electrical Engineering 40. Laboratory exercises exploring a variety of electronic transducers for measuring physical quantities such as temperature, force, displacement, sound, light, ionic potential; the use of circuits for low-level differential amplification and analog signal processing; and the use of microcomputers for digital sampling and display. Lectures cover principles explored in the laboratory exercises; construction, response and signal to noise of electronic transducers and actuators; and design of circuits for sensing and controlling physical quantities. Also listed as Bioengineering C145L. (F) Derenzo

C145M.  Introductory Microcomputer Interfacing Laboratory. (3)   Two hours of lecture and three hours of laboratory per week. Prerequisites: Electrical Engineering 40, Computer Science 61B or a working knowledge of ANSI C programming or consent of instructor. Laboratory exercises constructing basic interfacing circuits and writing 20-100 line C programs for data acquisition, storage, analysis, display, and control. Use of the IBM PC with microprogrammable digital counter/timer, parallel I/O port. Circuit components include anti-aliasing filters, the S/H amplifier, A/D and D/A converters. Exercises include effects of aliasing in periodic sampling, fast Fourier transforms of basic waveforms, the use of the Hanning filter for leakage reduction, Fourier analysis of the human voice, digital filters, and control using Fourier deconvolution. Lectures cover principles explored in the lab exercises and design of microcomputer-based systems for data acquisitions, analysis and control. Also listed as Bioengineering C145M. (SP) Derenzo

C145O.  Laboratory in the Mechanics of Organisms. (3)   Students will receive no credit for Integrative Biology C135L, Bioengineering C136L or Electrical Engineering C145O after taking Integrative Biology 135L. Six hours of laboratory and one hour of discussion per week, plus one field trip. Prerequisites: Integrative Biology 135 or consent of instructor; Electrical Engineering 105, 120 or Computer Science 184 recommended. Introduction to laboratory and field study of the biomechanics of animals and plants using fundamental biomechanical techniques and equipment. Course has a series of rotations involving students in experiments demonstrating how solid and fluid mechanics can be used to discover the way in which diverse organisms move and interact with their physical environment. The laboratories emphasize sampling methodology, experimental design, and statistical interpretation of results. Latter third of course devoted to independent research projects. Written reports and class presentation of project results are required. Also listed as Integrative Biology C135L and Bioengineering C136L. (SP) Staff

147.  Introduction to Microelectromechanical Systems (MEMS). (3)   Students will receive no credit for El Eng 147 after taking El Eng 247A. Three hours of lecture and one hour of discussion per week. Prerequisites: Electrical Engineering 40 or 100 or consent of instructor. This course will teach fundamentals of micromachining and microfabrication techniques, including planar thin-film process technologies, photolithographic techniques, deposition and etching techniques, and the other technologies that are central to MEMS fabrication. It will pay special attention to teaching of fundamentals necessary for the design and analysis of devices and systems in mechanical, electrical, fluidic, and thermal energy/signal domains, and will teach basic techniques for multi-domain analysis. Fundamentals of sensing and transduction mechanisms including capacitive and piezoresistive techniques, and design and analysis of micmicromachined miniature sensors and actuators using these techniques will be covered. (F,SP) Maharbiz, Nguyen, Pister

C149.  Introduction to Embedded Systems. (4)   Students will receive no credit for Electrical Engineering C149/Computer Science C149 after taking Electrical Engineering C249M/Computer Science C249M. Students may remove a deficient grade in Electrical Engineering C149/Computer Science C149 after taking Electrical Engineering 124. Three hours of lecture and three hours of laboratory per week. Prerequisites: 20N; Computer Science 61C; Computer Science 70 or Math 55. This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component, with emphasis on a semester-long sequence of projects. Also listed as Computer Science C149. (F,SP) Lee, Seshia

192.  Mechatronic Design Laboratory. (4)   One and one-half hours of lecture and ten hours of laboratory per week. Prerequisites: 120, Computer Science 61B or 61C, 150 or equivalent. Design project course, focusing on application of theoretical principles in electrical engineering to control of a small-scale system, such as a mobile robot. Small teams of students will design and construct a mechatronic system incorporating sensors, actuators, and intelligence. (SP) Fearing

194.  Special Topics. (1-4)   Course may be repeated for credit as topic varies. One to four hours of lecture/discussion per week. Prerequisites: Consent of instructor. Topics will vary semester to semester. See the Electrical Engineering announcements. (F,SP) Staff

H196A-H196B.  Senior Honors Thesis Research. (1-4;1-4)   Individual research. Prerequisites: Open only to students in the Electrical Engineering and Computer Science honors program. Thesis work under the supervision of a faculty member. A minimum of four units must be taken; the units may be distributed between one and two semesters in any way. To obtain credit a satisfactory thesis must be submitted at the end of the two semesters to the Electrical and Engineering and Computer Science Department archive. Students who complete four units and a thesis in one semester receive a letter grade at the end of H196A. Students who do not, receive an IP in H196A and must enroll in H196B. (F,SP) Staff

197.  Field Study. (1-4)   Course may be repeated for credit. One to four hours of fieldwork per week. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor (see department adviser). Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. (F,SP) Staff

198.  Directed Group Study for Advanced Undergraduates. (1-4)   Course may be repeated for credit. To vary with section. Must be taken on a passed/not passed basis. Prerequisites: 2.0 GPA or better; 60 units completed. Group study of selected topics in electrical engineering, usually relating to new developments. (F,SP) Staff

199.  Supervised Independent Study. (1-4)   Enrollment is restricted; see the Introduction to Courses and Curricula section of this catalog. Individual conferences. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor and major adviser. Supervised independent study. Enrollment restrictions apply. (F,SP) Staff

Graduate Courses

210.  Applied Electromagnetic Theory. (3)   Three hours of lecture per week. Prerequisites: 117, or Physics 110A, 110B. Formerly 210A-210B. Advanced treatment of classical electromagnetic theory with engineering applications. Boundary value problems in electrostatics. Applications of Maxwell's Equations to the study of waveguides, resonant cavities, optical fiber guides, Gaussian optics, diffraction, scattering, and antennas. (F) Staff

C213.  Soft X-rays and Extreme Ultraviolet Radiation. (3)   Three hours of lecture per week. Prerequisites: Physics 110, 137, and Mathematics 53, 54 or equivalent. Formerly El Engineering 290G. This course will explore modern developments in the physics and applications of soft x-rays. It begins with a review of electromagnetic radiation at short wavelengths including dipole radiation, scattering and refractive index, using a semi-classical atomic model. Subject matter will include the generation of x-rays with laboratory tubes, synchrotron radiation, laser-plasma sources, x-ray lasers, and black body radiation. Concepts of spatial and temporal coherence will be discussed. Also listed as Applied Science and Technology C210. (SP) Staff

215A.  Introduction to Robotics. (4)   Students will receive no credit for 215A after taking C125/Bioengineering C125. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: 120 or equivalent, or consent of instructor. An introduction to the kinematics, dynamics, and control of robot manipulators, robotic vision, and sensing. The course will cover forward and inverse kinematics of serial chain manipulators, the manipulator Jacobian, force relations, dynamics and control-position, and force control. Proximity, tactile, and force sensing. Network modeling, stability, and fidelity in teleoperation and medical applications of robotics. (F) Bajcsy

218A.  Introduction to Optical Engineering. (3)   Students will receive no credit for Electrical Engineering 218A after taking Electrical Engineering 118 or 119. Three hours of lecture and one hour of discussion per week. Fundamental principles of optical systems. Geometrical optics and aberration theory. Stops and apertures, prisms, and mirrors. Diffraction and interference. Optical materials and coatings. Radiometry and photometry. Basic optical devices and the human eye. The design of optical systems. Lasers, fiber optics, and holography. (F,SP) Waller

219A.  Numerical Simulation and Modeling. (4)   Four hours of lecture per week. Prerequisites: Consent of instructor; a course in linear algebra and on circuits is very useful. Numerical simulation and modeling are enabling technologies that pervade science and engineering. This course provides a detailed introduction to the fundamental principles of these technologies and their translation to engineering practice. The course emphasizes hands-on programming in MATLAB and application to several domains, including circuits, nanotechnology, and biology. (F,SP) Roychowdhury

219B.  Logic Synthesis. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Consent of instructor. The course covers the fundamental techniques for the design and analysis of digital circuits. The goal is to provide a detailed understanding of basic logic synthesis and analysis algorithms, and to enable students to apply this knowledge in the design of digital systems and EDA tools. The course will present combinational circuit optimization (two-level and multi-level synthesis), sequential circuit optimization (state encoding, retiming), timing analysis, testing, and logic verification. (F,SP) Staff

219C.  Computer-Aided Verification. (3)   Three hours of lecture per week. Prerequisites: Consent of instructor; Computer Science 170 is recommended. Introduction to the theory and practice of formal methods for the design and analysis of systems, with a focus on automated algorithmic techniques. Covers selected topics in computational logic and automata theory including formal models of reactive systems, temporal logic, model checking, and automated theorem proving. Applications in hardware and software verification, analysis of embedded, real-time, and hybrid systems, computer security, synthesis, planning, constraint solving, and other areas will be explored as time permits. Offered alternate years. (F,SP) Seshia

C219D.  Concurrent Models of Computation. (3)   Course may be repeated for credit with consent of instructor. Three hours of lecture per week. Prerequisites: Graduate standing. Theory and practice of concurrent models of computation (MoCs) with applications to software systems, embedded systems, and cyber-physical systems. Analysis for boundedness, deadlock, and determinacy; formal semantics (fixed point semantics and metric-space models); composition; heterogeneity; and model-based design. MoCs covered may include process networks, threads, message passing, synchronous/reactive, dataflow, rendezvous, time-triggered, discrete events, and continuous time. Also listed as Computer Science C219D. (F,SP) Lee

C220A.  Advanced Control Systems I. (3)   Students will receive no credit for Electrical Engineering C220A after taking Mechanical Engineering 232. Three hours of lecture and one hour of discussion per week. Prerequisites: An undergraduate course in control systems (e.g., Mechanical Engineering 132 or Mechanical Engineering C134/Electrical Engineering C128) and linear algebra background (e.g., Engineering 231) is recommended. Input-output and state space representation of linear continuous and discrete time dynamic systems. Controllability, observability, and stability. Modeling and identification. Design and analysis of single and multi-variable feedback control systems in transform and time domain. State observer. Feedforward/preview control. Application to engineering systems. Also listed as Mechanical Engineering C232. (F,SP) Borrelli, Horowitz, Tomizuka, Tomlin

C220B.  Experiential Advanced Control Design I. (3)   Three hours of lecture and two hours of laboratory per week. Prerequisites: Mechanical Engineering 132, or Mechanical Engineering C134/Electrical Engineering C128, or equivalent. Experience-based learning in the design of SISO and MIMO feedback controllers for linear systems. The student will master skills needed to apply linear control design and analysis tools to classical and modern control problems. In particular, the participant will be exposed to and develop expertise in two key control design technologies: frequency-domain control synthesis and time-domain optimization-based approach. Also listed as Mechanical Engineering C231A. (F) Staff

C220C.  Experiential Advanced Control Design II. (3)   Three hours of lecture and two hours of laboratory per week. Prerequisites: Mechanical Engineering 231A and either Mechanical Engineering C232/Electrical Engineering C220A or Electrical Engineering 221A. Experience-based learning in the design, analysis, and verification of automatic control systems. The course emphasizes the use of computer-aided design techniques through case studies and design tasks. The student will master skills needed to apply advanced model-based control analysis, design, and estimation to a variety of industrial applications. The role of these specific design methodologies within the larger endeavor of control design is also addressed. Also listed as Mechanical Engineering C231B. (SP) Staff

221A.  Linear System Theory. (4)   Three hours of lecture and two hours of recitation per week. Prerequisites: 120; Mathematics 110 recommended. Basic system concepts; state-space and I/O representation. Properties of linear systems. Controllability, observability, minimality, state and output-feedback. Stability. Observers. Characteristic polynomial. Nyquist test. (F,SP) Staff

222.  Nonlinear Systems--Analysis, Stability and Control. (3)   Three hours of lecture per week. Prerequisites: 221A (may be taken concurrently). Basic graduate course in non-linear systems. Second Order systems. Numerical solution methods, the describing function method, linearization. Stability - direct and indirect methods of Lyapunov. Applications to the Lure problem - Popov, circle criterion. Input-Output stability. Additional topics include: bifurcations of dynamical systems, introduction to the "geometric" theory of control for nonlinear systems, passivity concepts and dissipative dynamical systems. (SP) Staff

223.  Stochastic Systems: Estimation and Control. (3)   Three hours of lecture per week. Prerequisites: 226A (which students are encouraged to take concurrently). Parameter and state estimation. System identification. Nonlinear filtering. Stochastic control. Adaptive control. (SP) Staff

224A.  Digital Communications. (4)   Four hours of lecture and one hour of discussion per week. Prerequisites: 120 and 126, or equivalent. Formerly 224. Introduction to the basic principles of the design and analysis of modern digital communication systems. Topics include source coding; channel coding; baseband and passband modulation techniques; receiver design; channel equalization; information theoretic techniques; block, convolutional, and trellis coding techniques; multiuser communications and spread spectrum; multi-carrier techniques and FDM; carrier and symbol synchronization. Applications to design of digital telephone modems, compact disks, and digital wireless communication systems are illustrated. The concepts are illustrated by a sequence of MATLAB exercises. (F,SP) Staff

224B.  Fundamentals of Wireless Communication. (3)   Three hours of lecture per week. Prerequisites: 121, 226A, or equivalent. Introduction of the fundamentals of wireless communication. Modeling of the wireless multipath fading channel and its basic physical parameters. Coherent and noncoherent reception. Diversity techniques over time, frequency, and space. Spread spectrum communication. Multiple access and interference management in wireless networks. Frequency re-use, sectorization. Multiple access techniques: TDMA, CDMA, OFDM. Capacity of wireless channels. Opportunistic communication. Multiple antenna systems: spatial multiplexing, space-time codes. Examples from existing wireless standards. (SP) Tse

225A.  Digital Signal Processing. (3)   Three hours of lecture per week. Prerequisites: 123 and 126 or solid background in stochastic processes. Advanced techniques in signal processing. Stochastic signal processing, parametric statistical signal models, and adaptive filterings. Application to spectral estimation, speech and audio coding, adaptive equalization, noise cancellation, echo cancellation, and linear prediction. (SP) Gastpar, Bahai

225B.  Digital Image Processing. (3)   Three hours of lecture per week. Prerequisites: 123. 2-D sequences and systems, separable systems, projection slice thm, reconstruction from projections and partial Fourier information, Z transform, different equations, recursive computability, 2D DFT and FFT, 2D FIR filter design; human eye, perception, psychophysical vision properties, photometry and colorimetry, optics and image systems; image enhancement, image restoration, geometrical image modification, morphological image processing, halftoning, edge detection, image compression: scalar quantization, lossless coding, huffman coding, arithmetic coding dictionary techniques, waveform and transform coding DCT, KLT, Hadammard, multiresolution coding pyramid, subband coding, Fractal coding, vector quantization, motion estimation and compensation, standards: JPEG, MPEG, H.xxx, pre- and post-processing, scalable image and video coding, image and video communication over noisy channels. (F,SP) Zakhor

225D.  Audio Signal Processing in Humans and Machines. (3)   Three hours of lecture per week. Prerequisites: 123 or equivalent; Statistics 200A or equivalent; or graduate standing and consent of instructor. Introduction to relevant signal processing and basics of pattern recognition. Introduction to coding, synthesis, and recognition. Models of speech and music production and perception. Signal processing for speech analysis. Pitch perception and auditory spectral analysis with applications to speech and music. Vocoders and music synthesizers. Statistical speech recognition, including introduction to Hidden Markov Model and Neural Network approaches. (SP) Morgan

C225E.  Principles of Magnetic Resonance Imaging. (4)   Students will receive no credit for Bioengineering C265/El Engineering C225E after taking El Engineering 265. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Either Electrical Engineering 120 or Bioengineering C165/Electrical Engineering C145B or consent of instructor. Fundamentals of MRI including signal-to-noise ratio, resolution, and contrast as dictated by physics, pulse sequences, and instrumentation. Image reconstruction via 2D FFT methods. Fast imaging reconstruction via convolution-back projection and gridding methods and FFTs. Hardware for modern MRI scanners including main field, gradient fields, RF coils, and shim supplies. Software for MRI including imaging methods such as 2D FT, RARE, SSFP, spiral and echo planar imaging methods. Also listed as Bioengineering C265. (F,SP) Lustig, Conolly

226A.  Random Processes in Systems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 120 and Statistics 200A or equivalent. Formerly 226. Probability, random variables and their convergence, random processes. Filtering of wide sense stationary processes, spectral density, Wiener and Kalman filters. Markov processes and Markov chains. Gaussian, birth and death, poisson and shot noise processes. Elementary queueing analysis. Detection of signals in Gaussian and shot noise, elementary parameter estimation. (F) Anantharam

226B.  Applications of Stochastic Process Theory. (2)   Course may be repeated for credit. Prerequisites: 226A. Advanced topics such as: Martingale theory, stochastic calculus, random fields, queueing networks, stochastic control. (SP) Anantharam, Varaiya

227AT.  Optimization Models in Engineering. (4)   Students will receive no credit for Electrical Engineering 227AT after taking Electrical Engineering 127. Three hours of lecture and one hour of discussion per week. Prerequisites: Mathematics 54 or equivalent or consent of instructor. This course offers an introduction to optimization models and their applications, ranging from machine learning and statistics to decision-making and control, with emphasis on numerically tractable problems, such as linear or constrained least-squares optimization. (SP) El Ghaoui

227B.  Convex Optimization and Approximation. (3)   Three hours of lecture per week. Prerequisites: 227A or consent of instructor. Convex optimization as a systematic approximation tool for hard decision problems. Approximations of combinatorial optimization problems, of stochastic programming problems, of robust optimization problems (i.e., with optimization problems with unknown but bounded data), of optimal control problems. Quality estimates of the resulting approximation. Applications in robust engineering design, statistics, control, finance, data mining, operations research. (F) El-Ghaoui

227BT.  Convex Optimization. (4)   Three hours of lecture, two hours of laboratory, and one hour of discussion per week. Prerequisites: Mathematics 54 and Statistics 2 or equivalents. Formerly Electrical Engineering 227A. Convex optimization is a class of nonlinear optimization problems where the objective to be minimized, and the constraints, are both convex. The course covers some convex optimization theory and algorithms, and describes various applications arising in engineering design, machine learning and statistics, finance, and operations research. The course includes laboratory assignments, which consist of hands-on experiments with the optimization software CVX, and a discussion section. (F,SP) El Ghaoui, Wainwright

C227C.  Convex Optimization and Approximation. (3)   Three hours of lecture per week. Prerequisites: 227A or consent of instructor. Convex optimization as a systematic approximation tool for hard decision problems. Approximations of combinatorial optimization problems, of stochastic programming problems, of robust optimization problems (i.e., with optimization problems with unknown but bounded data), of optimal control problems. Quality estimates of the resulting approximation. Applications in robust engineering design, statistics, control, finance, data mining, operations research. Also listed as Industrial Engin and Oper Research C227B. (F,SP) El Ghaoui

C227T.  Introduction to Convex Optimization. (4)   Three hours of lecture, two hours of laboratory, and one hour of discussion per week. Formerly Electrical Engineering C227A/Industrial Engin and Oper Research C227A. The course covers some convex optimization theory and algorithms, and describes various applications arising in engineering design, machine learning and statistics, finance, and operations research. The course includes laboratory assignments, which consist of hands-on experience. Also listed as Industrial Engin and Oper Research C227A. (F,SP) El Ghaoui, Wainwright

228A.  High Speed Communications Networks. (3)   Three hours of lecture per week. Prerequisites: 122, 226A (may be taken concurrently). Descriptions, models, and approaches to the design and management of networks. Optical transmission and switching technologies are described and analyzed using deterministic, stochastic, and simulation models. FDDI, DQDB, SMDS, Frame Relay, ATM, networks, and SONET. Applications demanding high-speed communication. (F) Staff

229A.  Information Theory and Coding. (3)   Three hours of lecture per week. Prerequisites: 226 recommended, Statistics 200A or equivalent. Formerly 229. Fundamental bounds of Shannon theory and their application. Source and channel coding theorems. Galois field theory, algebraic error-correction codes. Private and public-key cryptographic systems. Offered alternate years. (SP) Anantharam, Tse

229B.  Error Control Coding. (3)   Three hours of lecture per week. Prerequisites: 126 or equivalent (some familiarity with basic probability). Prior exposure to information theory not necessary. Error control codes are an integral part of most communication and recording systems where they are primarily used to provide resiliency to noise. In this course, we will cover the basics of error control coding for reliable digital transmission and storage. We will discuss the major classes of codes that are important in practice, including Reed Muller codes, cyclic codes, Reed Solomon codes, convolutional codes, concatenated codes, turbo codes, and low density parity check codes. The relevant background material from finite field and polynomial algebra will be developed as part of the course. Overview of topics: binary linear block codes; Reed Muller codes; Galois fields; linear block codes over a finite field; cyclic codes; BCH and Reed Solomon codes; convolutional codes and trellis based decoding, message passing decoding algorithms; trellis based soft decision decoding of block codes; turbo codes; low density parity check codes. (SP) Anatharam

230A.  Integrated-Circuit Devices. (4)   Students will receive no credit for Electrical Engineering 230A after taking Electrical Engineering 130. Three hours of lecture and one hour of discussion per week. Prerequisites: 40 or 100. Formerly Electrical Engineering 230M. Overview of electronic properties of semiconductors. Metal-semiconductor contacts, pn junctions, bipolar transistors, and MOS field-effect transistors. Properties that are significant to device operation for integrated circuits. Silicon device fabrication technology. (F,SP) Staff

W230A.  Integrated-Circuit Devices. (4)   Students will receive no credit for Electrical Engineering W230A after taking Electrical Engineering 130, Electrical Engineering W130 or Electrical Engineering 230A. Three hours of web-based lecture and one hour of web-based discussion per week. Prerequisites: MAS-IC students only. Formerly Electrical Engineering W130. Overview of electronic properties of semiconductors. Metal-semiconductor contacts, pn junctions, bipolar transistors, and MOS field-effect transistors. Properties that are significant to device operation for integrated circuits. Silicon device fabrication technology. (F,SP) Javey, Subramanian, King Liu

230B.  Solid State Devices. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 130 or equivalent. Formerly Electrical Engineering 231. Physical principles and operational characteristics of semiconductor devices. Emphasis is on MOS field-effect transistors and their behaviors dictated by present and probable future technologies. Metal-oxide-semiconductor systems, short-channel and high field effects, device modeling, and impact on analog, digital circuits. (SP) Subramanian, King Liu, Salahuddin

W230B.  Solid State Devices. (4)   Students will receive no credit for EE W230B after taking EE 230B. Three hours of web-based lecture and one hour of web-based discussion per week. Prerequisites: EE W230A or equivalent; MAS-IC students only. Formerly Electrical Engineering W231. Physical principles and operational characteristics of semiconductor devices. Emphasis is on MOS field-effect transistors and their behaviors dictated by present and probable future technologies. Metal-oxide-semiconductor systems, short-channel and high field effects, device modeling, and impact on analog, digital circuits. (F,SP) Subramanian, King Liu, Salahuddin

230C.  Solid State Electronics. (3)   Three hours of lecture per week. Prerequisites: 131; Physics 137B. Formerly Electrical Engineering 230. Crystal structure and symmetries. Energy-band theory. Cyclotron resonance. Tensor effective mass. Statistics of electronic state population. Recombination theory. Carrier transport theory. Interface properties. Optical processes and properties. (F,SP) Bokor, Salahuddin

232.  Lightwave Devices. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Electrical Engineering 130 or equivalent; Physics 137A and Electrical Engineering 117 recommended. This course is designed to give an introduction and overview of the fundamentals of optoelectronic devices. Topics such as optical gain and absorption spectra, quantization effects, strained quantum wells, optical waveguiding and coupling, and hetero p-n junction will be covered. This course will focus on basic physics and design principles of semiconductor diode lasers, light emitting diodes, photodetectors and integrated optics. Practical applications of the devices will be also discussed. (F,SP) Wu

C235.  Nanoscale Fabrication. (4)   Three hours of lecture and one hour of discussion per week. This course discusses various top-down and bottom-up approaches to synthesizing and processing nanostructured materials. The topics include fundamentals of self assembly, nano-imprint lithography, electron beam lithography, nanowire and nanotube synthesis, quantum dot synthesis (strain patterned and colloidal), postsynthesis modification (oxidation, doping, diffusion, surface interactions, and etching techniques). In addition, techniques to bridging length scales such as heterogeneous integration will be discussed. We will discuss new electronic, optical, thermal, mechanical, and chemical properties brought forth by the very small sizes. Also listed as Nanoscale Science and Engineering C203. (F) Chang-Hasnain

236A.  Quantum and Optical Electronics. (3)   Three hours of lecture per week. Prerequisites: 117A, Physics 137A or equivalent. Interaction of radiation with atomic and semiconductor systems, density matrix treatment, semiclassical laser theory (Lamb's), laser resonators, specific laser systems, laser dynamics, Q-switching and mode-locking, noise in lasers and optical amplifiers. Nonlinear optics, phase-conjugation, electrooptics, acoustooptics and magnetooptics, coherent optics, stimulated Raman and Brillouin scattering. Offered alternate years. (F,SP) Staff

C239.  Partially Ionized Plasmas. (3)   Three hours of lecture per week. Prerequisites: Upper division course in electromagnetics or fluid dynamics. Formerly 239. Introduction to partially ionized, chemically reactive plasmas, including collisional processes, diffusion, sources, sheaths, boundaries, and diagnostics. DC, RF, and microwave discharges. Applications to plasma-assisted materials processing and to plasma wall interactions. Also listed as Applied Science and Technology C239. Offered alternate years. (SP) Staff

240A.  Analog Integrated Circuits. (4)   Students will receive no credit for Electrical Engineering 240A after taking El ectrical Engineering 140. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: Electrical Engineering 105. Single and multiple stage transistor amplifiers. Operational amplifiers. Feedback amplifiers, 2-port formulation, source, load, and feedback network loading. Frequency response of cascaded amplifiers, gain-bandwidth exchange, compensation, dominant pole techniques, root locus. Supply and temperature independent biasing and references. Selected applications of analog circuits such as analog-to-digital converters, switched capacitor filters, and comparators. Hardware laboratory and design project. (F,SP) Sanders, Nguyen

W240A.  Analog Integrated Circuits. (4)   Students will receive no credit for EE W240A after taking EE 140 or EE 240A. Three hours of web-based lecture and one hour of web-based discussion per week. Prerequisites: MAS-IC students only. Single and multiple stage transistor amplifiers. Operational amplifiers. Feedback amplifiers, 2-port formulation, source, load, and feedback network loading. Frequency response of cascaded amplifiers, gain-bandwidth exchange, compensation, dominant pole techniques, root locus. Supply and temperature independent biasing and references. Selected applications of analog circuits such as analog-to-digital converters, switched capacitor filters, and comparators. (F,SP) Alon, Sanders, Nguyen

240B.  Advanced Analog Integrated Circuits. (3)   Three hours of lecture per week. Prerequisites: 140. Formerly Electrical Engineering 240. Analysis and optimized design of monolithic operational amplifiers and wide-band amplifiers; methods of achieving wide-band amplification, gain-bandwidth considerations; analysis of noise in integrated circuits and low noise design. Precision passive elements, analog switches, amplifiers and comparators, voltage reference in NMOS and CMOS circuits, Serial, successive-approximation, and parallel analog-to-digital converters. Switched-capacitor and CCD filters. Applications to codecs, modems. (F,SP) Staff

W240B.  Advanced Analog Integrated Circuits. (3)   Students will receive no credit for EE W240B after taking EE 240B. Three hours of web-based lecture per week. Prerequisites: EE W240A; MAS-IC students only. Formerly Electrical Engineering W240. Analysis and optimized design of monolithic operational amplifiers and wide-band amplifiers; methods of achieving wide-band amplification, gain-bandwidth considerations; analysis of noise in integrated circuits and low noise design. Precision passive elements, analog switches, amplifiers and comparators, voltage reference in NMOS and CMOS circuits, Serial, successive-approximation, and parallel analog-to-digital converts. Switched-capacitor and CCD filters. Applications to codecs, modems. (F,SP) Staff

240C.  Analysis and Design of VLSI Analog-Digital Interface Integrated Circuits. (3)   Three hours of lecture per week. Prerequisites: Electrical Engineering 140. Formerly Electrical Engineering 247. Architectural and circuit level design and analysis of integrated analog-to-digital and digital-to-analog interfaces in CMOS and BiCMOS VLSI technology. Analog-digital converters, digital-analog converters, sample/hold amplifiers, continuous and switched-capacitor filters. RF integrated electronics including synthesizers, LNA's, and baseband processing. Low power mixed signal design. Data communications functions including clock recovery. CAD tools for analog design including simulation and synthesis. (F,SP) Boser

W240C.  Analysis and Design of VLSI Analog-Digital Interface Integrated Circuits. (3)   Students will receive no credit for EE W240C after taking EE 240C. Three hours of web-based lecture per week. Prerequisites: EE W240A; MAS-IC students only. Formerly Electrical Engineering W247. Architectural and circuit level design and analysis of integrated analog-to-digital and digital-to-analog interfaces in modern CMOS and BiCMOS VLSI technology. Analog-digital converters, digital-analog converters, sample/hold amplifiers, continuous and switched-capacitor filters. Low power mixed signal design techniques. Data communications systems including interface circuity. CAD tools for analog design for simulation and synthesis. (F,SP) Boser

241A.  Introduction to Digital Integrated Circuits. (4)   Students will receive no credit for Electrical Engineering 241A after taking Electrical Engineering 141. Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Electrical Engineering 40; Electrical Engineering 105 and Computer Science 150 recommended. CMOS devices and deep sub-micron manufacturing technology. CMOS inverters and complex gates. Modeling of interconnect wires. Optimization of designs with respect to a number of metrics: cost, reliability, performance, and power dissipation. Sequential circuits, timing considerations, and clocking approaches. Design of large system blocks, including arithmetic, interconnect, memories, and programmable logic arrays. Introduction to design methodologies, including hands-on laboratory experience. (F,SP) Alon, Rabaey, Nikolic

W241A.  Introduction to Digital Integrated Circuits. (4)   Students will receive no credit for W241A after taking EE 141 or EE 241A. F/Sp: Three hours of web-based lecture, one hour of web-based discussion, and three hours of web-based laboratory per week. Su: Four and one-half hours of web-based lecture, one and one-half hours of web-based discussion, and four and one-half hours of web-based laboratory per week for ten weeks. Prerequisites: MAS-IC students only. CMOS devices and deep sub-micron manufacturing technology. CMOS inverters and complex gates. Modeling of interconnect wires. Optimization of designs with respect to a number of metrics: cost, reliability, performance, and power dissipation. Sequential circuits, timing considerations, and clocking approaches. Design of large system blocks, including arithmetic, interconnect, memories, and programmable logic arrays. Introduction to design methodologies, including laboratory experience. (F,SP) Alon, Rabaey, Nikolic

241B.  Advanced Digital Integrated Circuits. (3)   Three hours of lecture per week. Prerequisites: 141. Formerly Electrical Engineering 241. Analysis and design of MOS and bipolar large-scale integrated circuits at the circuit level. Fabrication processes, device characteristics, parasitic effects static and dynamic digital circuits for logic and memory functions. Calculation of speed and power consumption from layout and fabrication parameters. ROM, RAM, EEPROM circuit design. Use of SPICE and other computer aids. (SP) Nikolic, Rabaey

W241B.  Advanced Digital Integrated Circuits. (3)   Students will receive no credit for EE W241B after taking EE 241B. Three hours of web-based lecture per week. Prerequisites: EE W241A; MAS-IC students only. Formerly Electrical Engineering W241. Analysis and design of MOS and bipolar large-scale integrated circuits at the circuit level. Fabrication processes, device characteristics, parasitic effects static and dynamic digital circuits for logic and memory functions. Calculation of speed and power consumption from layout and fabrication parameters. ROM, RAM, EEPROM circuit design. Use of SPICE and other computer aids. (F,SP) Nikolic, Rabaey

242A.  Integrated Circuits for Communications. (4)   Students will receive no credit for Electrical Engineering 242A after taking Electrical Engineering 142. Three hours of lecture, one hour of discussion, and three hours of laboratory per week. Prerequisites: 20N and 140 or equivalent. Formerly Electrical Engineering 242M. Analysis and design of electronic circuits for communication systems, with an emphasis on integrated circuits for wireless communication systems. Analysis of noise and distortion in amplifiers with application to radio receiver design. Power amplifier design with application to wireless radio transmitters. Radio-frequency mixers, oscillators, phase-locked loops, modulators, and demodulators. (F,SP) Staff

W242A.  Integrated Circuits for Communications. (4)   Students will receive no credit for EE W242A after taking EE 142, EE 242A, or EE 242B. Three hours of web-based lecture and one hour of web-based discussion per week. Prerequisites: EE W240A; MAS-IC students only. Formerly Electrical Engineering W142. Analysis and design of electronic circuits for communication systems, with an emphasis on integrated circuits for wireless communication systems. Analysis of noise and distortion in amplifiers with application to radio receiver design. Power amplifier design with application to wireless radio transmitters. Radio-frequency mixers, oscillators, phase-locked loops, modulators, and demodulators. (F,SP) Niknejad

242B.  Advanced Integrated Circuits for Communications. (3)   Three hours of lecture per week. Prerequisites: 142, 240. Formerly Electrical Engineering 242. Analysis, evaluation and design of present-day integrated circuits for communications application, particularly those for which nonlinear response must be included. MOS, bipolar and BICMOS circuits, audio and video power amplifiers, optimum performance of near-sinusoidal oscillators and frequency-translation circuits. Phase-locked loop ICs, analog multipliers and voltage-controlled oscillators; advanced components for telecommunication circuits. Use of new CAD tools and systems. (F,SP) Niknejad

W242B.  Advanced Integrated Circuits for Communications. (3)   Students will receive no credit for EE W242B after taking EE 242B. Three hours of web-based lecture per week. Prerequisites: EE W240A, EE W242A; MAS-IC students only. Formerly Electrical Engineering W242. Analysis, evaluation, and design of present-day integrated circuits for communications application, particularly those for which nonlinear response must be included. MOS, bipolar and BICMOS circuits, audio and video power amplifiers, optimum performance of near-sinusoidal oscillators and frequency-translation circuits. Phase-locked loop ICs, analog multipliers and voltage-controlled oscillators; advanced components for telecommunication circuits. Use of new CAD tools and systems. (F,SP) Niknejad

243.  Advanced IC Processing and Layout. (3)   Three hours of lecture per week. Prerequisites: 143 and either 140 or 141. The key processes for the fabrication of integrated circuits. Optical, X-ray, and e-beam lithography, ion implantation, oxidation and diffusion. Thin film deposition. Wet and dry etching and ion milling. Effect of phase and defect equilibria on process control. (SP) Staff

244.  Fundamental Algorithms for Systems Modeling, Analysis, and Optimization. (4)   Four hours of lecture per week. Prerequisites: Graduate standing. The modeling, analysis, and optimization of complex systems requires a range of algorithms and design software. This course reviews the fundamental techniques underlying the design methodology for complex systems, using integrated circuit design as example. Topics include design flows, discrete and continuous models and algorithms, and strategies for implementing algorithms efficiently and correctly in software. Laboratory assignments and a class project will expose students to state-of-the-art. (F,SP) Keutzer, Lee, Roychowdhury, Seshia

W244.  Fundamental Algorithms for System Modeling, Analysis, and Optimization. (4)   Students will receive no credit for W244 after taking 144 and 244. Three hours of web-based lecture per week. Prerequisites: MAS-IC students only. The modeling, analysis, and optimization of complex systems require a range of algorithms and design tools. This course reviews the fundamental techniques underlying the design methodology for complex systems, using integrated circuit design as an example. Topics include design flows, discrete and continuous models and algorithms, and strategies for implementing algorithms efficiently and correctly in software. (F,SP) Keutzer, Lee, Roychowdhury, Seshia

C246.  Parametric and Optimal Design of MEMS. (3)   Three hours of lecture per week. Prerequisites: Mechanical Engineering 119 and Mechanical Engineering C218/Electrical Engineering C245 are highly recommended but not mandatory. Parametric design and optimal design of MEMS. Emphasis on design, not fabrication. Analytic solution of MEMS design problems to determine the dimensions of MEMS structures for specified function. Trade-off of various performance requirements despite conflicting design requirements. Structures include flexure systems, accelerometers, and rate sensors. Also listed as Mechanical Engineering C219. (SP) Lin, Pisano

247A.  Introduction to Microelectromechanical Systems (MEMS). (3)   Students will receive no credit for EE 247A after taking EE 147. Three hours of lecture and one hour of discussion per week. Prerequisites: Electrical Engineering 40 or 100 or consent of instructor required. This course will teach fundamentals of micromachining and microfabrication techniques, including planar thin-film process technologies, photolithographic techniques, deposition and etching techniques, and the other technologies that are central to MEMS fabrication. It will pay special attention to teaching of fundamentals necessary for the design and analysis of devices and systems in mechanical, electrical, fluidic, and thermal energy/signal domains, and will teach basic techniques for multi-domain analysis. Fundamentals of sensing and transduction mechanisms including capacitive and piezoresistive techniques, and design and analysis of micmicromachined miniature sensors and actuators using these techniques will be covered. (F,SP) Maharbiz, Nguyen, Pister

C247B.  Introduction to MEMS Design. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Graduate standing in engineering or science; undergraduates with consent of instructor. Physics, fabrication, and design of micro-electromechanical systems (MEMS). Micro and nanofabrication processes, including silicon surface and bulk micromachining and non-silicon micromachining. Integration strategies and assembly processes. Microsensor and microactuator devices: electrostatic, piezoresistive, piezoelectric, thermal, magnetic transduction. Electronic position-sensing circuits and electrical and mechanical noise. CAD for MEMS. Design project is required. Also listed as Mechanical Engineering C218. (F,SP) Nguyen, Pister

W247B.  Introduction to MEMS Design. (4)   Students will receive no credit for EE W247B after taking EE C247B or Mechanical Engineering C218. Three hours of web-based lecture and one hour of web-based discussion per week. Prerequisites: MAS-IC students only. Formerly Electrical Engineering W245. Physics, fabrication and design of micro electromechanical systems (MEMS). Micro and nano-fabrication processes, including silicon surface and bulk micromachining and non-silicon micromachining. Integration strategies and assembly processes. Microsensor and microactuator devices: electrostatic, piezoresistive, piezoelectric, thermal, and magnetic transduction. Electronic position-sensing circuits and electrical and mechanical noise. CAD for MEMS. Design project is required. (F,SP) Nguyen, Pister

249.  Embedded System Design: Models, Validation, and Synthesis. (4)   Four hours of lecture and two hours of laboratory/discussion per week. Prerequisites: Background in SoC design, operating systems and compilers, or consent of instructor. Principles of embedded system design. Focus on design methodologies and foundations. Platform-based design and communication-based design and their relationship with design time, re-use, and performance. Models of computation and their use in design capture, manipulation, verification, and synthesis. Mapping into architecture and system platforms. Performance estimation. Scheduling and real-time requirements. Synchronous languages and time-triggered protocols to simplify the design process. Simulation techniques for highly programmable platforms. Synthesis and successive refinement: meta-model of computation. Use of design tools and analysis of their capabilities and limitations: Ptolemy, POLIS, Metropolis, VCC, Co-ware. (F,SP) Sangiovanni-Vincentelli

C249.  Embedded System Design: Modeling, Analysis, and Synthesis. (4)   Students will receive no credit for Electrical Engineering C249/Civil and Environmental Engineering C289 after taking Electrical Engineering 249. Three hours of lecture, one hour of discussion, and two hours of laboratory per week. Prerequisites: Background in system design, mathematical modeling, and software, or consent of instructor. Principles of embedded system design. Focus on design methodologies and foundations. Platform-based design and communication-based design and their relationship with design time, re-use, and performance. Models of computation and their use in design capture, manipulation, verification, and synthesis. Mapping into architecture and systems platforms. Performance estimation. Scheduling and real-time requirements. Synchronous languages and time-triggered protocols to simplify the design process. Also listed as Civil and Environmental Engineering C289. (F,SP) Sangiovanni-Vincentelli

C249A.  Introduction to Embedded Systems. (4)   Students will receive no credit for El Eng/Comp Sci C249A after taking El Eng/Comp Sci C149. Three hours of lecture and three hours of laboratory per week. Formerly Electrical Engineering C249M/Computer Science C249M. This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component, with emphasis on a semester-long sequence of projects. Also listed as Computer Science C249A. (F,SP) Lee, Seshia

290.  Advanced Topics in Electrical Engineering.   Course may be repeated for credit. One to three hours of lecture per week. Prerequisites: Consent of instructor. The 290 courses cover current topics of research interest in electrical engineering. The course content may vary from semester to semester.

290A.  Advanced Topics in Computer-Aided Design. (1-3)  

290B.  Advanced Topics in Solid State Devices. (1-3)  

290C.  Advanced Topics in Circuit Design. (1-3)  

W290C.  Advanced Topics in Circuit Design. (3)   Course may be repeated for credit. Students will receive no credit for W290C after taking 290C. Three hours of web-based lecture per week. Prerequisites: MAS-IC students only. Seminar-style course presenting an in-depth perspective on one specific domain of integrated circuit design. Most often, this will address an application space that has become particularly relevant in recent times. Examples are serial links, ultra low-power design, wireless transceiver design, etc. (F,SP) Staff

290D.  Advanced Topics in Semiconductor Technology. (1-3)  

290E.  Advanced Topics in Electromagnetics and Plasmas. (1-3)  

290F.  Advanced Topics in Photonics. (1-3)  

290N.  Advanced Topics in System Theory. (1-3)  

290O.  Advanced Topics in Control. (1-3)  

290P.  Advanced Topics in Bioelectronics. (1-3)  

290Q.  Advanced Topics in Communication Networks. (1-3)  

290S.  Advanced Topics in Communications and Information Theory. (1-3)  

290T.  Advanced Topics in Signal Processing. (1-3)  

290Y.  Organic Materials in Electronics. (3)   Prerequisites: 130; undergraduate general chemistry. Organic materials are seeing increasing application in electronics applications. This course will provide an overview of the properties of the major classes of organic materials with relevance to electronics. Students will study the technology, physics, and chemistry of their use in the three most rapidly growing major applications--energy conversion/generation devices (fuel cells and photovoltaics), organic light-emitting diodes, and organic transistors. (F,SP) Subramanian

C291.  Control and Optimization of Distributed Parameters Systems. (3)   Three hours of lecture per week. Distributed systems and PDE models of physical phenomena (propagation of waves, network traffic, water distribution, fluid mechanics, electromagnetism, blood vessels, beams, road pavement, structures, etc.). Fundamental solution methods for PDEs: separation of variables, self-similar solutions, characteristics, numerical methods, spectral methods. Stability analysis. Adjoint-based optimization. Lyapunov stabilization. Differential flatness. Viability control. Hamilton-Jacobi-based control. Also listed as Civil and Environmental Engineering C291F and Mechanical Engineering C236. (SP) Staff

C291E.  Hybrid Systems and Intelligent Control. (3)   Three hours of lecture per week. Formerly 291E. Analysis of hybrid systems formed by the interaction of continuous time dynamics and discrete-event controllers. Discrete-event systems models and language descriptions. Finite-state machines and automata. Model verification and control of hybrid systems. Signal-to-symbol conversion and logic controllers. Adaptive, neural, and fuzzy-control systems. Applications to robotics and Intelligent Vehicle and Highway Systems (IVHS). Also listed as Mechanical Engineering C290S. Staff

298.  Group Studies, Seminars, or Group Research. (1-4)   Course may be repeated for credit. One to four hours of lectures per unit. Section 1-40 to be graded on a satisfactory/unsatisfactory basis. Sections 41-49 to be graded on a letter-grade basis. Advanced study in various subjects through special seminars on topics to be selected each year, informal group studies of special problems, group participation in comprehensive design problems, or group research on complete problems for analysis and experimentation. (F,SP) Staff

299.  Individual Research. (1-12)   Course may be repeated for credit. Must be taken on a satisfactory/unsatisfactory basis. Investigation of problems in electrical engineering. (F,SP) Staff

602.  Individual Study for Doctoral Students. (1-8)   Course may be repeated for credit. Course does not satisfy unit or residence requirements for doctoral degree. Independent study, in consultation with faculty member. Must be taken on a satisfactory/unsatisfactory basis. Individual study in consultation with the major field adviser, intended to provide an opportunity for qualified students to prepare themselves for the various examinations required of candidates for the Ph.D. (and other doctoral degrees). (F,SP) Staff

Professional Courses

375.  Teaching Techniques for Electrical Engineering. (1)   One and one-half hours of seminar per week. Must be taken on a satisfactory/unsatisfactory basis. Prerequisites: Graduate standing. Formerly Electrical Engineering 301. Weekly seminars and discussions of effective teaching techniques. Use of educational objectives, alternative forms of instruction, and special techniques for teaching key concepts and techniques in electrical engineering. Student and self-evaluation. Course is intended to orient new graduate student instructors to teaching in the Electrical Engineering Department at Berkeley. (F) Staff

Computer Science

Except for CS 2, 95, and 99 the lower division Computer Science courses are subject to the "computing service" course restriction. See the Computing Service Courses section preceding the Electrical Engineering course listings.

Lower Division Courses

3L.  Introduction to Symbolic Programming. (4)   Students may remove a deficiency in 3 by taking 3L. One hour of lecture and six hours of laboratory per week and approximately five hours of self-scheduled programming laboratory. Prerequisites: High school algebra. Introduction to computer programming, emphasizing symbolic computation and functional programming style. Students will write a project of at least 200 lines of code in Scheme (a dialect of the LISP programming language). (F,SP) Clancy

3S.  Introduction to Symbolic Programming (Self-Paced). (1-4)   Refer to computer science service course restrictions. Course may be repeated up to 4 units. One to four hours of discussion and three to nine hours of laboratory per week. Prerequisites: High school algebra. The same material as 3 but in a self-paced format; introduction to computer programming, emphasizing symbolic computation and functional programming style, using the Scheme programming language. Units assigned depend on amount of work completed. The first two units must be taken together. (F,SP) Garcia

9A.  Matlab for Programmers. (2)   Refer to computer science service course restrictions. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience equivalent to that gained in Computer Science 10; familiarity with applications of matrix processing. Introduction to the constructs in the Matlab programming language, aimed at students who already know how to program. Array and matrix operations, functions and function handles, control flow, plotting and image manipulation, cell arrays and structures, and the Symbolic Mathematics toolbox. (F,SP) Garcia

9C.  C for Programmers. (2)   Refer to computer science service course restrictions. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience with pointers (or addresses in assembly language) and linked data structures equivalent to that gained in Computer Science 9B or 61A, or Engineering 7. Self-paced course in the C programming language for students who already know how to program. Computation, input and output, flow of control, functions, arrays, and pointers, linked structures, use of dynamic storage, and implementation of abstract data types. (F,SP) Garcia

9D.  Scheme and Functional Programming for Programmers. (2)   Refer to computer science service course restrictions. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience similar to that gained in Computer Science 10 or Engineering 7. Self-paced course in functional programming, using the Scheme programming language, for students who already know how to program. Recursion; higher-order functions; list processing; implementation of rule-based querying. (F,SP) Garcia

9E.  Productive Use of the UNIX Environment. (2)   Refer to computer science service course restrictions. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience similar to that gained in Computer Science 61A or Engineering 7; DOS or UNIX experience. Use of UNIX utilities and scripting facilities for customizing the programming environment, organizing files (possibly in more than one computer account), implementing a personal database, reformatting text, and searching for online resources. (F,SP) Garcia

9F.  C++ for Programmers. (2)   Refer to computer science service course restrictions in the General Catalog. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience equivalent to that gained in Computer Science 9B or 61A, or Engineering 7. Self-paced introduction to the constructs provided in the C++ programming language for procedural and object-oriented programming, aimed at students who already know how to program. (F,SP) Garcia

9G.  JAVA for Programmers. (2)   Self-paced. Must be taken on a passed/not passed basis. Prerequisites: 9C or 9F or 61A plus experience with object-oriented programming or C-based language. Self-paced course in Java for students who already know how to program. Applets; variables and computation; events and flow of control; classes and objects; inheritance; GUI elements; applications; arrays, strings, files, and linked structures; exceptions; threads. (F,SP) Garcia

9H.  Python for Programmers. (2)   Refer to computer science service course restrictions. Self-paced. Must be taken on a passed/not passed basis. Prerequisites: Programming experience equivalent to that gained in Computer Science 10. Introduction to the constructs provided in the Python programming language, aimed at students who already know how to program. Flow of control; strings, tuples, lists, and dictionaries; CGI programming; file input and output; object-oriented programming; GUI elements. (F,SP) Garcia

10.  The Beauty and Joy of Computing. (4)   Two hours of lecture, four hours of laboratory, and one hour of discussion per week. An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. (F,SP) Garcia, Harvey

W10.  The Beauty and Joy of Computing. (4)   Students will receive no credit for W10 after taking 10. A deficient grade in 10 may be removed by taking W10. Two hours of web-based lecture, four hours of web-based laboratory, and one hour of web-based discussion per week. This course meets the programming prerequisite for 61A. An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests. (F,SP) Garcia, Harvey

24.  Freshman Seminars. (1)   Course may be repeated for credit as topic varies. One hour of seminar per week. Sections 1-2 to be graded on a letter-grade basis. Sections 3-4 to be graded on a passed/not passed basis. The Freshman Seminar Program has been designed to provide new students with the opportunity to explore an intellectual topic with a faculty member in a small-seminar setting. Freshman seminars are offered in all campus departments, and topics vary from department to department and semester to semester. Enrollment limited to 15 freshmen. (F,SP)

39.  Freshman/Sophomore Seminar.   Course may be repeated for credit as topic varies. One hour of seminar per week per unit. Sections 1-2 to be graded on a letter-grade basis. Sections 3-4 to be graded on a passed/not passed basis. Prerequisites: Priority given to freshmen and sophomores. Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25. (F,SP)

39J.  . (1.5-4)   (F,SP)

39K.  . (1.5-4)   (F,SP)

39M.  . (1.5-4)   (F,SP)

39N.  . (1.5-4)   (F,SP)

39P.  . (1.5-4)   (F,SP)

39Q.  . (1.5-4)   (F,SP)

39R.  . (1.5-4)   (F,SP)

39S.  . (1.5-4)   (F,SP)

47A.  Completion of Work in Computer Science 61A. (1)   Students will receive no credit for 47A after taking 61A. Self-paced. Prerequisites: 61B or equivalent, 9D, and consent of instructor. Implementation of generic operations. Streams and iterators. Implementation techniques for supporting functional, object-oriented, and constraint-based programming in the Scheme programming language. Together with 9D, 47A constitutes an abbreviated, self-paced version of 61A for students who have already taken a course equivalent to 61B. (F,SP) Garcia

47B.  Completion of Work in Computer Science 61B. (1)   Students will receive no credit for 47B after taking 61B. Self-paced. Prerequisites: A course in data structures, 9G or equivalent, and consent of instructor. Iterators. Hashing, applied to strings and multi-dimensional structures. Heaps. Storage management. Design and implementation of a program containing hundreds of lines of code. Students with sufficient partial credit in 61B may, with consent of instructor, complete the credit in this self-paced course. (F,SP) Garcia

47C.  Completion of Work in Computer Science 61C. (1)   Students will receive no credit for 47C after taking 61C. Self-paced. Prerequisites: Experience with assembly language including writing an interrupt handler, 9C or equivalent, and consent of instructor. MIPS instruction set simulation. The assembly and linking process. Caches and virtual memory. Pipelined computer organization. Students with sufficient partial credit in 61C may, with consent of instructor, complete the credit in this self-paced course. (F,SP) Garcia

61A.  The Structure and Interpretation of Computer Programs. (4)   Students will receive no credit for Computer Science 61A after completing Computer Science 47A or Computer Science 61AS. A deficient grade in Computer Science 61AS may be removed by taking Computer Science 61A. Three hours of lecture, one and one-half hours of laboratory, and one and one-half hours of discussion per week. Prerequisites: Mathematics 1A (may be taken concurrently); programming experience equivalent to that gained in 3 or the Advanced Placement Computer Science A course. Introduction to programming and computer science. This course exposes students to techniques of abstraction at several levels: (a) within a programming language, using higher-order functions, manifest types, data-directed programming, and message-passing; (b) between programming languages, using functional and rule-based languages as examples. It also relates these techniques to the practical problems of implementation of languages and algorithms on a von Neumann machine. There are several significant programming projects. (F,SP) Garcia, Hilfinger

61AS.  The Structure and Interpretation of Computer Programs (Self-Paced). (1-4)   Course may be repeated for a maximum of 4 units. Students will receive no credit for Computer Science 61AS after completing Computer Science 47A or Computer Science 61A. A deficient grade in Computer Science 61A may be removed by taking Computer Science 61AS. Six hours of laboratory per week. Prerequisites: Mathematics 1A (may be taken concurrently). Programming experience equivalent to that gained in 10 or the Advanced Placement Computer Science A course is recommended, but is not essential; students without this experience will begin at an earlier point in the online course. Introductory programming and computer science. Abstraction as means to control program complexity. Programming paradigms: functional, object-oriented, client/server, and declarative (logic). Control abstraction: recursion and higher order functions. Introduction to asymptotic analysis of algorithms. Data abstraction: abstract data types, type-tagged data, first class data types, sequences implemented as lists and as arrays, generic operators implemented with data-directed programming and with message passing. Implementation of object-oriented programming with closures over dispatch procedures. Introduction to interpreters and compilers. There are several significant programming projects. Course may be completed in one or two semesters. Students must complete a mimimum of two units during their first semester of 61AS. (F,SP) Garcia, Harvey, Hilfinger

61B.  Data Structures. (4)   Students will receive no credit for 61B after taking 47B or 61BL. Deficiency in 61BL may be removed by taking 61B. Three hours of lecture, one hour of discussion, and two hours of laboratory per week. Prerequisites: 61A or Engineering 7. Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language. (F,SP) Hilfinger, Shewchuk

61BL.  Data Structures and Programming Methodology. (4)   Students will receive no credit for 61BL after taking 47B or 61B. Deficiency in 61B may be removed by taking 61BL. One hour of lecture and six hours of laboratory per week. Prerequisites: 61A or Engineering 7. The same material as in 61B, but in a laboratory-based format. (F,SP) Hilfinger

61C.  Machine Structures. (4)   Students will receive no credit for 61C after taking 47C or 61CL. Deficiency in 61C may be removed by taking 61CL. Three hours of lecture, two hours of laboratory, and one hour of discussion per week. Prerequisites: 61A, along with either 61B or 61BL, or programming experience equivalent to that gained in 9C, 9F, or 9G. The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions. (F,SP) Garcia, Franklin, Katz, Patterson

61CL.  Machine Structures (Lab-Centric). (4)   Students will receive no credit for 61CL after taking 47C or 61C. Deficiency in 61C may be removed by taking 61CL. Two hours of lecture, one hour of discussion, and four hours of laboratory per week. Prerequisites: 61A, along with 61B or 61BL, or programming experience equivalent to that gained in 9C, 9F, or 9G . The same material as in 61C but in a lab-centric format. (F,SP) Garcia, Patterson

70.  Discrete Mathematics and Probability Theory. (4)   Students will receive no credit for 70 after taking Mathematics 55. Three hours of lecture per week, or three hours of lecture and two hours of discussion per week. Prerequisites: Sophomore mathematical maturity, and programming experience equivalent to that gained in 3 or the Advanced Placement Computer Science A course. Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing, existence arguments, Bayesian inference. (F,SP) Papadimitriou, Rao, Sinclair, Trevisan, Vazirani, Wagner

C79.  Societal Risks and the Law. (3)   Three hours of lecture and one hour of discussion per week. Prerequisites: One semester of calculus. Defining, perceiving, quantifying and measuring risk; identifying risks and estimating their importance; determining whether laws and regulations can protect us from these risks; examining how well existing laws work and how they could be improved; evaluting costs and benefits. Applications may vary by term. This course cannot be used to complete engineering unit or technical elective requirements for students in the College of Engineering. Also listed as Political Science C79 and Statistics C79. (F,SP) Sekhon, Stark, Wagner, Staff

97.  Field Study. (1-4)   Course may be repeated for credit. One to four hours of fieldwork per week. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor (see department adviser). Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. (F,SP) Staff

98.  Directed Group Study. (1-4)   Course may be repeated for credit. One hour of lecture per week per unit. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor. Seminars for group study of selected topics, which will vary from year to year. Intended for students in the lower division. (F,SP) Staff

99.  Individual Study and Research for Undergraduates. (1-2)   Course may be repeated for credit. Must be taken on a passed/not passed basis. Prerequisites: GPA of 3.4 or better. A course for lower division students in good standing who wish to undertake a program of individual inquiry initiated jointly by the student and a professor. There are no other formal prerequisites, but the supervising professor must be convinced that the student is able to profit by the program. (F,SP) Staff

Upper Division Courses

C149.  Introduction to Embedded Systems. (4)   Students will receive no credit for Electrical Engineering C149/Computer Science C149 after taking Electrical Engineering C249M/Computer Science C249M. Students may remove a deficient grade in Electrical Engineering C149/Computer Science C149 after taking Electrical Engineering 124. Three hours of lecture and three hours of laboratory per week. Prerequisites: 20N; Computer Science 61C; Computer Science 70 or Math 55. This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component, with emphasis on a semester-long sequence of projects. Also listed as Electrical Engineering C149. (F,SP) Lee, Seshia

150.  Components and Design Techniques for Digital Systems. (5)   Three hours of lecture, three hours of laboratory, and one hour of discussion per week. Prerequisites: Computer Science 61C, Electrical Engineering 40. Basic building blocks and design methods to contruct synchronous digital systems, such as general purpose processors, hardware accelerators, and application specific processors. Representations and design methodologies for digital systems. Logic design using combinatorial and sequential circuits. Digital system implementation considering hardware descriptions languages, computer-aided design tools, field-programmable gate array architectures, and CMOS logic gates and state elements. Interfaces between peripherals, processor hardware, and software. Formal hardware laboratories and substantial design project. (F,SP) Katz, Pister, Wawrzynek

152.  Computer Architecture and Engineering. (4)   Three hours of lecture and two hours of discussion per week. Prerequisites: 61C. Instruction set architecture, microcoding, pipelining (simple and complex). Memory hierarchies and virtual memory. Processor parallelism: VLIW, vectors, multithreading. Multiprocessors. (F,SP) Asanovic, Culler, Kubiatowicz, Wawrzynek

160.  User Interface Design and Development. (4)   Students will receive no credit for Computer Science 160 after taking Computer Science 260A. Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B or 61BL. The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and tools. Students will develop a user interface for a specific task and target user group in teams. (F,SP) Agrawala, Canny, Hartmann

161.  Computer Security. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 61C (Machine Structures), plus either 70 (Discrete Mathematics) or Mathematics 55. Introduction to computer security. Cryptography, including encryption, authentication, hash functions, cryptographic protocols, and applications. Operating system security, access control. Network security, firewalls, viruses, and worms. Software security, defensive programming, and language-based security. Case studies from real-world systems. (F,SP) Paxson, Song, Tygar, Wagner

162.  Operating Systems and System Programming. (4)   Three hours of lecture, four hours of laboratory, and one hour of discussion per week. Prerequisites: Computer Science 61B, 61C, and 70. Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, interprocess communication, and synchronization. Memory allocation, segmentation, paging. Loading and linking, libraries. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and privacy. (F,SP) Joseph, Kubiatowicz

164.  Programming Languages and Compilers. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 61B and 61C. Survey of programming languages. The design of modern programming languages. Principles and techniques of scanning, parsing, semantic analysis, and code generation. Implementation of compilers, interpreters, and assemblers. Overview of run-time organization and error handling. (F,SP) Bodik, Hilfinger, Necula

168.  Introduction to the Internet: Architecture and Protocols. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B and 162. This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless). (F,SP) Katz, Paxson, Ratnasamy, Shenker, Stoica

169.  Software Engineering. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B and 61C, and either Computer Science 70 or Mathematics 113. Ideas and techniques for designing, developing, and modifying large software systems. Function-oriented and object-oriented modular design techniques, designing for re-use and maintainability. Specification and documentation. Verification and validation. Cost and quality metrics and estimation. Project team organization and management. Students will work in teams on a substantial programming project. (F,SP) Brewer, Fox, Necula, Sen

170.  Efficient Algorithms and Intractable Problems. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B and 70. Concept and basic techniques in the design and analysis of algorithms; models of computation; lower bounds; algorithms for optimum search trees, balanced trees and UNION-FIND algorithms; numerical and algebraic algorithms; combinatorial algorithms. Turing machines, how to count steps, deterministic and nondeterministic Turing machines, NP-completeness. Unsolvable and intractable problems. (F,SP) Demmel, Papadimitriou, Rao, Wagner, Vazirani

172.  Computability and Complexity. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 170. Finite automata, Turing machines and RAMs. Undecidable, exponential, and polynomial-time problems. Polynomial-time equivalence of all reasonable models of computation. Nondeterministic Turing machines. Theory of NP-completeness: Cook's theorem, NP-completeness of basic problems. Selected topics in language theory, complexity and randomness. (F,SP) Papadimitriou, Seshia, Sinclair, Vazirani

174.  Combinatorics and Discrete Probability. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 170. Permutations, combinations, principle of inclusion and exclusion, generating functions, Ramsey theory. Expectation and variance, Chebychev's inequality, Chernov bounds. Birthday paradox, coupon collector's problem, Markov chains and entropy computations, universal hashing, random number generation, random graphs and probabilistic existence bounds. (F,SP) Bartlett, Papadimitriou, Sinclair, Vazirani

176.  Algorithms for Computational Biology. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 70 and 170. Experience programming in a language such as C, C++, Java, or Python. Algorithms and probabilistic models that arise in various computational biology applications: suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, genome rearrangements, hidden Markov models, gene finding, motif finding, stochastic context free grammars, RNA secondary structure. There are no biology prerequisites for this course, but a strong quantitative background will be essential. (F,SP) Song

184.  Foundations of Computer Graphics. (4)   Students will receive no credit for Comp Sci 184 after taking Comp Sci 284A. Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B or 61BL; programming skills in C, C++, or Java; linear algebra and calculus. Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, rasterization, and anti-aliasing. Scan-line based and ray-based rendering algorithms. Lighting models for reflection, refraction, transparency. (F,SP) O'Brien, Sequin, Barsky, Ramamoorthi, Agrawala

186.  Introduction to Database Systems. (4)   Students will receive no credit for Comp Sci 186 after taking Comp Sci 286A. Three hours of lecture and one hour of discussion per week. Prerequisites: 61B and 61C. Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction to transaction processing. Database system implementation to be done as term project. (F,SP) Franklin, Hellerstein

188.  Introduction to Artificial Intelligence. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61A; Computer Science 61B; Computer Science 70. Ideas and techniques underlying the design of intelligent computer systems. Topics include search, game playing, knowledge representation, inference, planning, reasoning under uncertainty, machine learning, robotics, perception, and language understanding. (F,SP) Abbeel, Klein, Russell

189.  Introduction to Machine Learning. (4)   Students will receive no credit for Comp Sci 189 after taking Comp Sci 289A. Three hours of lecture and one hour of discussion per week. Prerequisites: Mathematics 53 and 54; Computer Science 70; Computer Science 188 or consent of instructor. Theoretical foundations, algorithms, methodologies, and applications for machine learning. Topics may include supervised methods for regression and classication (linear models, trees, neural networks, ensemble methods, instance-based methods); generative and discriminative probabilistic models; Bayesian parametric learning; density estimation and clustering; Bayesian networks; time series models; dimensionality reduction; programming projects covering a variety of real-world applications. (F,SP) Abbeel, Bartlett, Darrell, El Ghaoui, Jordan, Klein, Malik, Russell

C191.  Quantum Information Science and Technology. (3)   Three hours of lecture/discussion per week. Prerequisites: Mathematics 54, Physics 7A-7B, and either Physics 7C, Mathematics 55, or Computer Science 170. This multidisciplinary course provides an introduction to fundamental conceptual aspects of quantum mechanics from a computational and informational theoretic perspective, as well as physical implementations and technological applications of quantum information science. Basic sections of quantum algorithms, complexity, and cryptography, will be touched upon, as well as pertinent physical realizations from nanoscale science and engineering. Also listed as Physics C191 and Chemistry C191. (F,SP) Crommie, Vazirani, Whaley

194.  Special Topics. (1-4)   Course may be repeated for credit as topic varies. One to fours hours of lecture/discussion per week. Prerequisites: Consent of instructor. Topics will vary semester to semester. See the Computer Science Division announcements. (F,SP) Staff

195.  Social Implications of Computer Technology. (1)   Students will receive no credit for 195 after taking C195/Interdisciplinary Field Study C155 or H195. One and one-half hours of lecture per week. Must be taken on a passed/not passed basis. Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students will lead discussions on additional topics. (F,SP) Harvey

H195.  Honors Social Implications of Computer Technology. (3)   Student will receive no credit for H195 after taking 195 or C195. One and one-half hours of lecture and one and one-half hours of discussion per week. Must be taken on a passed/not passed basis. Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students may lead discussions on additional topics. (F,SP) Harvey

H196A-H196B.  Senior Honors Thesis Research. (1-4;1-4)   Individual research. Prerequisites: Open only to students in the computer science honors program. Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science. (F,SP)

197.  Field Study. (1-4)   Course may be repeated for credit. One to four hours of fieldwork per week. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor (see department adviser). Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation. (F,SP) Staff

198.  Directed Group Studies for Advanced Undergraduates. (1-4)   Course may be repeated for credit. Course format varies with section. Must be taken on a passed/not passed basis. Prerequisites: 2.0 GPA or better; 60 units completed. Group study of selected topics in Computer Sciences, usually relating to new developments.

199.  Supervised Independent Study. (1-4)   Enrollment is restricted; see the Introduction to Courses and Curricula section of this catalog. Individual conferences. Must be taken on a passed/not passed basis. Prerequisites: Consent of instructor and major adviser. Supervised independent study. Enrollment restrictions apply. (F,SP) Staff

Graduate Courses

C219D.  Concurrent Models of Computation. (3)   Course may be repeated for credit with consent of instructor. Three hours of lecture per week. Prerequisites: Graduate standing. Theory and practice of concurrent models of computation (MoCs) with applications to software systems, embedded systems, and cyber-physical systems. Analysis for boundedness, deadlock, and determinacy; formal semantics (fixed point semantics and metric-space models); composition; heterogeneity; and model-based design. MoCs covered may include process networks, threads, message passing, synchronous/reactive, dataflow, rendezvous, time-triggered, discrete events, and continuous time. Also listed as Electrical Engineering C219D. (F,SP) Lee

C249A.  Introduction to Embedded Systems. (4)   Students will receive no credit for El Eng/Comp Sci C249A after taking El Eng/Comp Sci C149. Three hours of lecture and three hours of laboratory per week. Formerly Electrical Engineering C249M/Computer Science C249M. This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory component, with emphasis on a semester-long sequence of projects. Also listed as Electrical Engineering C249A. (F,SP) Lee, Seshia

250.  VLSI Systems Design. (4)   Three hours of lecture and four hours design laboratory per week. Prerequisites: 150. Unified top-down and bottom-up design of integrated circuits and systems concentrating on architectural and topological issues. VLSI architectures, systolic arrays, self-timed systems. Trends in VLSI development. Physical limits. Tradeoffs in custom-design, standard cells, gate arrays. VLSI design tools. (F) Wawrzynek

252.  Graduate Computer Architecture. (4)   Three hours of lecture and one hour of discussion per week. Prerequisites: 152. Graduate survey of contemporary computer organizations covering: early systems, CPU design, instruction sets, control, processors, busses, ALU, memory, I/O interfaces, connection networks, virtual memory, pipelined computers, multiprocessors, and case studies. Term paper or project is required. (F,SP) Culler, Kubiatowicz, Patterson

260A.  User Interface Design and Development. (4)   Students will receive no credit for Computer Science 260A after taking Computer Science 160. Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B, 61BL, or consent of instructor. The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and tools. Students will develop a user interface for a specific task and target user group in teams. (F,SP) Agrawala, Canny, Hartmann

260B.  Human-Computer Interaction Research. (3)   Three hours of lecture per week. Prerequisites: Computer Science 160 recommended, or consent of instructor. This course is a broad introduction to conducting research in Human-Computer Interaction. Students will become familiar with seminal and recent literature; learn to review and critique research papers; re-implement and evaluate important existing systems; and gain experience in conducting research. Topics include input devices, computer-supported cooperative work, crowdsourcing, design tools, evaluation methods, search and mobile interfaces, usable security, help and tutorial systems. (F,SP) Hartmann

261.  Security in Computer Systems. (3)   Three hours of lecture per week. Prerequisites: 162. Graduate survey of modern topics in computer security, including protection, access control, distributed access security, firewalls, secure coding practices, safe languages, mobile code, and case studies from real-world systems. May also cover cryptographic protocols, privacy and anonymity, and/or other topics as time permits. (SP) D. Song, Wagner

261N.  Internet and Network Security. (4)   Three hours of lecture per week. Prerequisites: Electrical Engineering 122 or equivalent; Computer Science 161 or familiarity with basic security concepts. Develops a thorough grounding in Internet and network security suitable for those interested in conducting research in the area or those more broadly interested in security or networking. Potential topics include denial-of-service; capabilities; network intrusion detection/prevention; worms; forensics; scanning; traffic analysis; legal issues; web attacks; anonymity; wireless and networked devices; honeypots; botnets; scams; underground economy; attacker infrastructure; research pitfalls. (F,SP) Paxson

262A.  Advanced Topics in Computer Systems. (4)   Three hours of lecture per week. Prerequisites: 162 and entrance exam. Formerly 262. Graduate survey of systems for managing computation and information, covering a breadth of topics: early systems; volatile memory management, including virtual memory and buffer management; persistent memory systems, including both file systems and transactional storage managers; storage metadata, physical vs. logical naming, schemas, process scheduling, threading and concurrency control; system support for networking, including remote procedure calls, transactional RPC, TCP, and active messages; security infrastructure; extensible systems and APIs; performance analysis and engineering of large software systems. Homework assignments, exam, and term paper or project required. (F,SP) Brewer, Hellerstein

262B.  Advanced Topics in Computer Systems. (3)   Three hours of lecture per week. Prerequisites: 262A. Continued graduate survey of large-scale systems for managing information and computation. Topics include basic performance measurement; extensibility, with attention to protection, security, and management of abstract data types; index structures, including support for concurrency and recovery; parallelism, including parallel architectures, query processing and scheduling; distributed data management, including distributed and mobile file systems and databases; distributed caching; large-scale data analysis and search. Homework assignments, exam, and term paper or project required. (F,SP) Brewer, Culler, Hellerstein, Joseph

263.  Design of Programming Languages. (3)   Three hours of lecture and one hour of discussion per week. Prerequisites: 164. Selected topics from: analysis, comparison, and design of programming languages, formal description of syntax and semantics, advanced programming techniques, structured programming, debugging, verification of programs and compilers, and proofs of correctness. Necula

264.  Implementation of Programming Languages. (4)   Three hours of lecture, one hour of discussion, and six hours programing laboratory per week. Prerequisites: 164, 263 recommended. Compiler construction. Lexical analysis, syntax analysis. Semantic analysis code generation and optimization. Storage management. Run-time organization. Bodik

265.  Compiler Optimization and Code Generation. (3)   Three hours of lecture per week. Prerequisites: 164. Table-driven and retargetable code generators. Register management. Flow analysis and global optimization methods. Code optimization for advanced languages and architectures. Local code improvement. Optimization by program transformation. Selected additional topics. A term paper or project is required. Sen

266.  Introduction to System Performance Analysis. (3)   Three hours of lecture per week. Prerequisites: 162 and Statistics 5. Formerly 267 and 268. Performance indices. Evaluation techniques. Measurement: instrumentation, design of experiments, interpretation of results. Simulation modeling: simulator design, model calibration, statistical analysis of output data. Introduction to analytic modeling. Workload characterization. Tuning, procurement, and capacity planning application. Program performance evaluation. File and I/O system optimization. CPU Scheduling and architecture performance analysis.

C267.  Applications of Parallel Computers. (3)   Three hours of lecture and one hour of laboratory per week. Models for parallel programming. Fundamental algorithms for linear algebra, sorting, FFT, etc. Survey of parallel machines and machine structures. Exiting parallel programming languages, vectorizing compilers, environments, libraries and toolboxes. Data partitioning techniques. Techniques for synchronization and load balancing. Detailed study and algorithm/program development of medium sized applications. Also listed as Engineering C233. Demmel, Yelick

268.  Computer Networks. (3)   Three hours of lecture per week. Prerequisites: 162. Formerly 292V. Distributed systems, their notivations, applications, and organization. The network component. Network architectures. Local and long-haul networks, technologies, and topologies. Data link, network, and transport protocols. Point-to-point and broadcast networks. Routing and congestion control. Higher-level protocols. Naming. Internetworking. Examples and case studies. Joseph, Katz, Stoica

270.  Combinatorial Algorithms and Data Structures. (3)   Three hours of lecture and one hour of discussion per week. Prerequisites: 170. Design and analysis of efficient algorithms for combinatorial problems. Network flow theory, matching theory, matroid theory; augmenting-path algorithms; branch-and-bound algorithms; data structure techniques for efficient implementation of combinatorial algorithms; analysis of data structures; applications of data structure techniques to sorting, searching, and geometric problems. Papadimitriou, Rao, Sinclair, Vazirani

271.  Randomness and Computation. (3)   Three hours of lecture per week. Prerequisites: 170 and at least one course numbered 270-279. Computational applications of randomness and computational theories of randomness. Approximate counting and uniform generation of combinatorial objects, rapid convergence of random walks on expander graphs, explicit construction of expander graphs, randomized reductions, Kolmogorov complexity, pseudo-random number generation, semi-random sources. Sinclair

273.  Foundations of Parallel Computation. (3)   Three hours of lecture per week. Prerequisites: 170, or consent of instructor. Formerly 292K. Fundamental theoretical issues in designing parallel algorithms and architectures. Shared memory models of parallel computation. Parallel algorithms for linear algegra, sorting, Fourier Transform, recurrence evaluation, and graph problems. Interconnection network based models. Algorithm design techniques for networks like hypercubes, shuffle-exchanges, threes, meshes and butterfly networks. Systolic arrays and techniques for generating them. Message routing. Rao

274.  Computational Geometry. (3)   Course may be repeated for credit. Three hours of lecture per week. Prerequisites: 170 or equivalent. Formerly 292T. Constructive problems in computational geometry: convex hulls, triangulations, Voronoi diagrams, arrangements of hyperplanes; relationships among these problems. Search problems: advanced data structures; subdivision search; various kinds of range searches. Models of computation; lower bounds. Shewchuk

276.  Cryptography. (3)   Three hours of lecture per week. Prerequisites: 170. Graduate survey of modern topics on theory, foundations, and applications of modern cryptography. One-way functions; pseudorandomness; encryption; authentication; public-key cryptosystems; notions of security. May also cover zero-knowledge proofs, multi-party cryptographic protocols, practical applications, and/or other topics, as time permits. (F,SP) Trevisan, Wagner

278.  Machine-Based Complexity Theory. (3)   Three hours of lecture per week. Prerequisites: 170. Properties of abstract complexity measures; Determinism vs. nondeterminism; time vs. space; complexity hierarchies; aspects of the P-NP question; relative power of various abstract machines. Trevisan

C280.  Computer Vision. (3)   Three hours of lecture per week. Prerequisites: Knowledge of linear algebra and calculus. Mathematics 1A-1B, 53, 54 or equivalent. Paradigms for computational vision. Relation to human visual perception. Mathematical techniques for representing and reasoning, with curves, surfaces and volumes. Illumination and reflectance models. Color perception. Image segmentation and aggregation. Methods for bottom-up three dimensional shape recovery: Line drawing analysis, stereo, shading, motion, texture. Use of object models for prediction and recognition. Also listed as Vision Science C280. Malik

C281A.  Statistical Learning Theory. (3)   Three hours of lecture per week. Prerequisites: Linear algebra, calculus, basic probability, and statistics, algorithms. Computer Science 289 recommended. Classification regression, clustering, dimensionality, reduction, and density estimation. Mixture models, hierarchical models, factorial models, hidden Markov, and state space models, Markov properties, and recursive algorithms for general probabilistic inference nonparametric methods including decision trees, kernal methods, neural networks, and wavelets. Ensemble methods. Also listed as Statistics C241A. (F) Bartlett, Jordan, Wainwright

C281B.  Advanced Topics in Learning and Decision Making. (3)   Three hours of lecture per week. Prerequisites: Computer Science C281A/Statistics C241A. Recent topics include: Graphical models and approximate inference algorithms. Markov chain Monte Carlo, mean field and probability propagation methods. Model selection and stochastic realization. Bayesian information theoretic and structural risk minimization approaches. Markov decision processes and partially observable Markov decision processes. Reinforcement learning. Also listed as Statistics C241B. (SP) Bartlett, Jordan, Wainwright

283B.  Computer-Aided Geometric Design and Modeling. (3)   Three hours of lecture per week. Prerequisites: Mathematical skill in calculus and linear algebra. Formerly Computer Science 284. Mathematical techniques for curve and surface representation, including: Hermite interpolation, interpolatory splines, tensed splines, Bezier curves and surfaces, B-splines, Beta-splines, Coons patches, tensor product forms, as well as subdivision end/bounding conditions, and computational considerations. (F,SP) Barsky, Sequin

284A.  Foundations of Computer Graphics. (4)   Students will receive no credit for Computer Science 284A after taking 184. Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B or 61BL; programming skills in C, C++, or Java; linear algebra and calculus; or consent of instructor. Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. (F,SP) Agrawala, Barsky, O'Brien, Ramamoorthi, Sequin

284B.  Advanced Computer Graphics Algorithms and Techniques. (4)   Three hours of lecture per week. Prerequisites: 184 or equivalent. Formerly Computer Science 283. This course provides a graduate-level introduction to advanced computer graphics algorithms and techniques. Students should already be familiar with basic concepts such as transformations, scan-conversion, scene graphs, shading, and light transport. Topics covered in this course include global illumination, mesh processing, subdivision surfaces, basic differential geometry, physically based animation, inverse kinematics, imaging and computational photography, and precomputed light transport. (F,SP) O'Brien, Ramamoorthi

285.  Solid Free-Form Modeling and Fabrication. (3)   Three hours of lecture per week. Prerequisites: 184. From shape design to computer-based descriptions suitable for manufacturing or rapid prototyping. Solid modeling techniques and procedural shape generation. Effective data structures and unambiguous part description formats. Algorithms for dealing with Boolean operations and for machine tool path planning. Problems of finite-precision geometry and machining tolerances. Introduction to some rapid prototyping techniques based on Solid Free-Form Fabrication and NC machining. Other advanced topics and recent developments in the field. Sequin

286A.  Introduction to Database Systems. (4)   Students will receive no credit for CS 286A after taking CS 186. Three hours of lecture and one hour of discussion per week. Prerequisites: Computer Science 61B and 61C. Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction to transaction processing. Database system implementation to be done as term project. (F,SP) Franklin, Hellerstein

286B.  Implementation of Data Base Systems. (3)   Three hours of lecture per week. Prerequisites: Computer Science 162 and 186 or 286A . Implementation of data base systems on modern hardware systems. Considerations concerning operating system design, including buffering, page size, prefetching, etc. Query processing algorithms, design of crash recovery and concurrency control systems. Implementation of distributed data bases and data base machines. (F,SP) Franklin, Hellerstein

287.  Advanced Robotics. (3)   Three hours of lecture per week. Prerequisites: Electrical Engineering 125. Advanced topics related to current research in robotics. Planning and control issues for realistic robot systems, taking into account: dynamic constraints, control and sensing uncertainty, and non-holonomic motion constraints. Analysis of friction for assembly and grasping tasks. Sensing systems for hands including tactile and force sensing. Environmental perception from sparse sensors for dextrous hands. Grasp planning and manipulation. Abbeel

288.  Natural Language Processing. (4)   Three hours of lecture per week. Prerequisites: CS188 required, CS170 recommended. Methods and models for the analysis of natural (human) language data. Topics include: language modeling, speech recognition, linguistic analysis (syntactic parsing, semantic analysis, reference resolution, discourse modeling), machine translation, information extraction, question answering, and computational linguistics techniques. (F,SP) Klein

289A.  Introduction to Machine Learning. (4)   Students will receive no credit for Comp Sci 289A after taking Comp Sci 189. Three hours of lecture and one hour of discussion per week. Prerequisites: Mathematics 53, 54; Computer Science 70; Computer Science 188 or consent of instructor. This course provides an introduction to theoretical foundations, algorithms, and methodologies for machine learning, emphasizing the role of probability and optimization and exploring a variety of real-world applications. Students are expected to have a solid foundation in calculus and linear algebra as well as exposure to the basic tools of logic and probability, and should be familiar with at least one modern, high-level programming language. (F,SP) Abbeel, Bartlett, Darrell, El Ghaoui, Jordan, Klein, Malik, Russell

294.  Special Topics. (1-4)   Course may be repeated for credit. Topics will vary from semester to semester. See Computer Science Division announcements. (F,SP) Staff

C294P.  Interactive Device Design. (3)   Three hours of lecture per week. Prerequisites: Instructor consent. This course teaches concepts and skills required to design, prototype, and fabricate interactive devices -- that is, physical objects that intelligently respond to user input and enable new types of interactions. Also listed as Mechanical Engineering C290U. (F,SP) Hartmann, Wright

297.  Field Studies in Computer Science. (1-12)   Course may be repeated for credit. Independent study. Must be taken on a satisfactory/unsatisfactory basis. Supervised experience in off-campus companies relevant to specific aspects and applications of electrical engineering and/or computer science. Written report required at the end of the semester. (F,SP)

298.  Group Studies Seminars, or Group Research. (1-4)   Course may be repeated for credit. One to four hours per unit. Sections 1-25 to be graded on a satisfactory/unsatisfactory basis. Sections 26-35 to be graded on a letter-grade basis. Advanced study in various subjects through seminars on topics to be selected each year, informal group studies of special problems, group participation in comprehensive design problems, or group research on complete problems for analysis and experimentation. (F,SP) Staff

299.  Individual Research. (1-12)   Course may be repeated for credit. Must be taken on a satisfactory/unsatisfactory basis. Investigations of problems in computer science. (F,SP) Staff

602.  Individual Study for Doctoral Students. (1-8)   Course may be repeated for credit. Course does not satisfy unit or residence requirements for doctoral degree. Independent study, consultation with faculty member. Must be taken on a satisfactory/unsatisfactory basis. Individual study in consultation with the major field adviser, intended to provide an opportunity for qualified students to prepare themselves for the various examinations required of candidates for the Ph.D. (and other doctoral degrees). (F,SP) Staff

Professional Courses

300.  Teaching Practice. (1-6)   Course may be repeated for credit. Three to twenty hours of discussion and consulting per week. Must be taken on a satisfactory/unsatisfactory basis. Supervised teaching practice, in either a one-on-one tutorial or classroom discussion setting. (F,SP) Staff

302.  Designing Computer Science Education. (3)   Two hours of lecture per week. Prerequisites: Computer Science 301 and two semesters of GSI experience. Discussion and review of research and practice relating to the teaching of computer science: knowledge organization and misconceptions, curriculum and topic organization, evaluation, collaborative learning, technology use, and administrative issues. As part of a semester-long project to design a computer science course, participants invent and refine a variety of homework and exam activities, and evaluate alternatives for textbooks, grading and other administrative policies, and innovative uses of technology. (SP) Garcia

375.  Teaching Techniques for Computer Science. (2)   Course may be repeated for credit. Three hours of discussion for ten weeks. Must be taken on a satisfactory/unsatisfactory basis. Prerequisites: Consent of instructor. Discussion and practice of techniques for effective teaching, focusing on issues most relevant to teaching assistants in computer science courses. (F,SP) Barsky, Garcia, Harvey

399.  Professional Preparation: Supervised Teaching of Computer Science. (1,2)   Course may be repeated for credit. One hour of meeting with instructor plus 10 hours (1 unit) or 20 hours (2 units) of teaching per week. Must be taken on a satisfactory/unsatisfactory basis. Prerequisites: Appointment as graduate student instructor. Discussion, problem review and development, guidance of computer science laboratory sections, course development, supervised practice teaching. (F,SP) Staff

 To the Top



Copyright 2000, 2005 UC Regents. All rights reserved. Contact us.
* * * * * * * * * *
General Catalog University  of California, Berkeley Undergrad/Grad Education Courses/Curricula by Dept. Course  Search Related Sites Get a PDF/Print  Catalog