**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, three hours of laboratory, and one hour of discussion per week.
*Prerequisites: Mathematics 1B.*
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)
*Zakhor*

**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)
*El Ghaoui*

**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 20 and Engineering 7 or equivalent; 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,SP)
*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*

**146L. Application Specific Integrated Circuits Laboratory. (2) **
Students will receive no credit for Electrical Engineering 146L after taking Fall 2014 version of Electrical Engineering 141/241A. Three hours of laboratory and one hour of discussion per week.
Must be taken on a passed/not passed basis.
*Prerequisites: Electrical Engineering 40; Electrical Engineering 105 recommended and Computer Science 150 (taken Fall 2014) - mandatory.*
This is a lab course that covers the design of modern Application-Specific Integrated Circuits (ASICs). The labs lay the foundation of modern digital design by first setting-up the scripting and hardware description language base for specification of digital systems and interactions with tool flows. Software testing of digital designs is covered leading into a set of labs that cover the design flow. Digital synthesis, floorplanning, placement and routing are covered, as well as tools to evaluate design timing and power. Chip-level assembly is covered, instantiation of custom IP blocks: I/O pads, memories, PLLs, etc. The labs culminate with a project design - implementation of a 3-stage RISC-V processor with register file and caches.
(SP)
*Stojanovic*

**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*

**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*

**C249B. Embedded System Design: Modeling, Analysis, and Synthesis. (4) **
Three hours of lecture, two hours of laboratory, and one hour of discussion per week.
*Formerly Electrical Engineering C249/Civil and Environmental Engineering C289.*
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*

**C261. Medical Imaging Signals and Systems. (4) **
Three hours of lecture and one hour of discussion per week.
*Prerequisites: El Eng 20N and Engineering 7 or equivalent. 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 C261.
(F,SP)
*Conolly*

**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*

**146L. Programmable Digital Systems Laboratory. (2) **
Students will receive no credit for Computer Science 146L after taking Fall 2014 version of Computer Science 150. Three hours of laboratory and one hour of discussion per week.
Must be taken on a passed/not passed basis.
*Prerequisites: Computer Science 61C, Electrical Engineering 105 recommended and Electrical Engineering 141 (taken Fall 2014) - mandatory.*
Hardware description languages for digital system design and interactions with tool flows. Design, implementation, and verification of digital designs. Digital synthesis, partitioning, placement, routing, and simulation for Field-Programmable Gate Arrays. Large digital-system design concepts. Project design component - example, a full processor implementation with peripherals.
(SP)
*Stojanovic*

**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*

**H196. Honors Seminar for Computer Science Majors. (3) **
Three hours of lecture per week and project work.
Must be taken on a *passed/not passed* basis.
*Prerequisites: 150, 170, and consent of instructor.*
Study in-depth of several topics in computer science to be chosen by the instructor. Students will assess current literature in the topics and present critiques to the class. Each student will carry out a project.
(SP)
*Staff*

**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*