2017-2018 Computer Science

4732 Boelter Hall
Box 951596
Los Angeles, CA 90095-1596

310-825-3886
http://cs.ucla.edu

Mario Gerla, Ph.D., Chair
Glenn D. Reinman, Ph.D., Vice Chair
Richard E. Korf, Ph.D., Vice Chair

Professors

Junghoo (John) Cho, Ph.D.

Jason (Jingsheng) Cong, Ph.D. (Chancellor’s Professor)

Adnan Y. Darwiche, Ph.D.

Joseph J. DiStefano III, Ph.D.

Milos D. Ercegovac, Ph.D.

Eleazar Eskin, Ph.D.

Eliezer M. Gafni, Ph.D.

Mario Gerla, Ph.D. (Jonathan B. Postel Professor of Networking)

Eran Halperin, Ph.D.

Richard E. Korf, Ph.D.

Christopher J. Lee, Ph.D.

Songwu Lu, Ph.D.

Todd D. Millstein, Ph.D.

Stanley J. Osher, Ph.D.

Rafail Ostrovsky, Ph.D.

Jens Palsberg, Ph.D.

Miodrag Potkonjak, Ph.D.

Glenn D. Reinman, Ph.D.

Amit Sahai, Ph.D.

Majid Sarrafzadeh, Ph.D.

Stefano Soatto, Ph.D.

Mani B. Srivastava, Ph.D.

Demetri Terzopoulos, Ph.D. (Chancellor’s Professor)

George Varghese, Ph.D. (Chancellor’s Professor)

Wei Wang, Ph.D. (Leonard Kleinrock Term Professor of Computer Science)

Carlo A. Zaniolo, Ph.D. (Norman E. Friedmann Professor of Knowledge Sciences)

Lixia Zhang, Ph.D. (Jonathan B. Postel Professor of Computer Systems)

Song-Chun Zhu, Ph.D.

Professors Emeriti

Algirdas A. Avizienis, Ph.D.

Rajive L. Bagrodia, Ph.D.

Alfonso F. Cardenas, Ph.D.

Jack W. Carlyle, Ph.D.

Wesley W. Chu, Ph.D.

Michael G. Dyer, Ph.D.

Sheila A. Greibach, Ph.D.

Leonard Kleinrock, Ph.D.

Allen Klinger, Ph.D.

Lawrence P. McNamee, Ph.D.

Richard R. Muntz, Ph.D.

D. Stott Parker, Jr., Ph.D.

Judea Pearl, Ph.D. (Chancellor’s Professor Emeritus)

David A. Rennels, Ph.D.

Jacques J. Vidal, Ph.D.

Associate Professors

Miryung Kim, Ph.D.

Alexander Sherstov, Ph.D.

Yuval Tamir, Ph.D.

Assistant Professors

Kai-Wei Chang, Ph.D.

Tyson Condie, Ph.D. (Symantec Term Professor of Computer Science)

Jason Ernst, Ph.D.

Raghu Meka, Ph.D.

Anthony J. Nowatzki, Ph.D.

Sriram Sankararaman, Ph.D.

Yizhou Sun, Ph.D.

Guy Van den Broeck, Ph.D.

Senior Lecturers S.O.E.

Paul R. Eggert, Ph.D.

David A. Smallberg, M.S.

Senior Lecturer S.O.E. Emeritus

Leon Levine, M.S.

Adjunct Professors

Deborah L. Estrin, Ph.D.

David E. Heckerman, Ph.D.

Van Jacobson, M.S.

Alan C. Kay, Ph.D.

Rupak Majumdar, Ph.D.

Peter S. Pao, Ph.D.

Peter L. Reiher, Ph.D.

Adjunct Associate Professor

Giovanni Pau, Ph.D.

Adjunct Assistant Professors

Alexander Afanasyev, Ph.D.

Carey S. Nachenberg, M.S.

Ramin Ramezani, Ph.D.

Ameet S. Talwalkar, Ph.D.

Students gather for an ACM workshop that offers an introduction to machine learning using TensorFlow software.

Scope and Objectives

Computer science is concerned with the design, modeling, analysis, and applications of computer systems. Its study at UCLA provides education at the undergraduate and graduate levels necessary to understand, design, implement, and use the software and hardware of digital computers and digital systems. The programs provide comprehensive and integrated studies of subjects in computer system architecture, computer networks, distributed computer systems, programming languages and software systems, information and data management, artificial intelligence, computer science theory, computational systems biology and bioinformatics, and computer vision and graphics.

The undergraduate and graduate studies and research projects in the Department of Computer Science are supported by significant computing resources. In addition to the departmental computing facility, there are over a dozen research laboratories specializing in areas such as distributed systems, multimedia computer communications, distributed sensor networks, VLSI systems, VLSI CAD, embedded and reconfigurable systems, computer graphics, bioinformatics, and artificial intelligence. Also, the Cognitive Systems Laboratory is engaged in studying computer systems that emulate or support human reasoning. The Biocybernetics Laboratory is devoted to multidisciplinary research involving the application of engineering and computer science methods to problems in biology and medicine.

The B.S. degree may be attained through the Computer Science and Engineering major, the Computer Science major, or the Computer Engineering major described below.

In addition, HSSEAS offers M.S. and Ph.D. degrees in Computer Science, as well as minor fields for graduate students seeking engineering degrees. In cooperation with the John E. Anderson Graduate School of Management, the Computer Science Department offers a concurrent degree program that enables students to obtain the M.S. in Computer Science and the M.B.A. (Master of Business Administration).

Department Mission

The Computer Science Department strives for excellence in creating, applying, and imparting knowledge in computer science and engineering through comprehensive educational programs, research in collaboration with industry and government, dissemination through scholarly publications, and service to professional societies, the community, state, and nation.

Computer Science and Engineering Undergraduate Program Educational Objectives

The computer science and engineering program is accredited by the Engineering Accreditation Commission and the Computing Accreditation Commission of ABET.

The computer science and engineering undergraduate program educational objectives are that our alumni (1) make valuable technical contributions to design, development, and production in their practice of computer science and computer engineering, in related engineering or application areas, and at the interface of computers and physical systems, (2) demonstrate strong communication skills and the ability to function effectively as part of a team, (3) demonstrate a sense of societal and ethical responsibility in their professional endeavors, and (4) engage in professional development or postgraduate education to pursue flexible career paths amid future technological changes.

Computer Science Undergraduate Program Educational Objectives

The computer science program is accredited by the Computing Accreditation Commission of ABET.

The computer science undergraduate program educational objectives are that our alumni (1) make valuable technical contributions to design, development, and production in their practice of computer science and related engineering or application areas, particularly in software systems and algorithmic methods, (2) demonstrate strong communication skills and the ability to function effectively as part of a team, (3) demonstrate a sense of societal and ethical responsibility in their professional endeavors, and (4) engage in professional development or postgraduate education to pursue flexible career paths amid future technological changes.

Computer Engineering Undergraduate Program Educational Objectives

The undergraduate computer engineering program prepares students to be able to (1) understand fundamental computing concepts and make valuable contributions to the practice of computer engineering; (2) design, analyze, and implement complex computer systems for a variety of application areas and cyberphysical domains; (3) demonstrate the ability to work effectively in a team and communicate their ideas; (4) continue to learn as part of a graduate program or otherwise in the world of constantly evolving technology.

Undergraduate Study

The Computer Science and Engineering, Computer Engineering, and Computer Science majors are designated capstone majors. Computer Science and Engineering students complete a major product design course, while Computer Science students complete either a software engineering or a major product design course. Computer Engineering majors complete a design course in which they integrate their knowledge of the discipline and engage in creative design within realistic and professional constraints. Graduates are expected to apply the basic mathematical and scientific concepts that underlie modern computer science and engineering; design a software or digital hardware system, component, or process to meet desired needs within realistic constraints; function productively with others as part of a team; identify, formulate, and solve computer software- and hardware-related engineering problems; and demonstrate effective communication skills.

Computer Science and Engineering B.S.

Capstone Major

The computer science and engineering curriculum at UCLA provides the education and training necessary to design, implement, test, and utilize the hardware and software of digital computers and digital systems. The curriculum has components spanning both the Computer Science and Electrical and Computer Engineering Departments. Within the curriculum students study all aspects of computer systems from electronic design through logic design, MSI, LSI, and VLSI concepts and device utilization, machine language design, implementation and programming, operating system concepts, systems programming, networking fundamentals, higher-level language skills, and application of these to systems. Students are prepared for employment in a wide spectrum of high-technology industries.

Preparation for the Major

Required: Computer Science 1, 31, 32, 33, 35L, M51A; Electrical and Computer Engineering 3, 10, 11L; Mathematics 31A, 31B, 32A, 32B, 33A, 33B, 61; Physics 1A, 1B, 1C, and 4AL or 4BL.

The Major

Required: Computer Science 111, 118, 131, M151B, M152A, 180, 181, Electrical and Computer Engineering 102, 110, 111L; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, or Statistics 100A; one capstone design course (Computer Science 152B); 4 units of elective courses selected from Electrical and Computer Engineering 113, 115A, 115C, 132A, 141; 12 units of elective courses selected from Computer Science 100 through CM187; and 12 units of technical breadth courses selected from an approved list available in the Office of Academic and Student Affairs.

Students who want to deepen their knowledge of electrical engineering are encouraged to select that discipline as their technical breadth area.

Credit is not allowed for both Computer Science 170A and Electrical and Computer Engineering 133A unless at least one of them is applied as part of the technical breadth area. Four units of either Computer Science 194 or 199 may be applied as an elective by petition.

A multiple-listed (M) course offered in another department may be used instead of the same computer science course (e.g., Electrical and Computer Engineering M116C may be taken instead of Computer Science M151B). Credit is applied automatically.

For information on University and general education requirements, see Requirements for B.S. Degrees on page 21 or http://www.registrar.ucla.edu/Academics/GE-Requirement.

Computer Science B.S.

Capstone Major

The computer science curriculum is designed to accommodate students who want professional preparation in computer science but do not necessarily have a strong interest in computer systems hardware. The curriculum consists of components in computer science, a minor or technical support area, and a core of courses from the social sciences, life sciences, and humanities. Within the curriculum, students study subject matter in software engineering, principles of programming languages, data structures, computer architecture, theory of computation and formal languages, operating systems, distributed systems, computer modeling, computer networks, compiler construction, and artificial intelligence. Majors are prepared for employment in a wide range of industrial and business environments.

Preparation for the Major

Required: Computer Science 1, 31, 32, 33, 35L, M51A; Mathematics 31A, 31B, 32A, 32B, 33A, 33B, 61; Physics 1A, 1B, 1C, and 4AL or 4BL.

The Major

Required: Computer Science 111, 118, 131, M151B, M152A, 180, 181; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, or Statistics 100A; one capstone software engineering or design course from Computer Science 130 or 152B; 20 units of elective courses selected from Computer Science 100 through CM187; 12 units of science and technology courses (not used to satisfy other requirements) that may include 12 units of upper-division computer science courses or 12 units of courses selected from an approved list available in the Office of Academic and Student Affairs; and 12 units of technical breadth courses selected from an approved list available in the Office of Academic and Student Affairs.

Students must take at least one course from Computer Science 130 or 132. Computer Science 130 or 152B may be applied as an elective only if it is not taken as the capstone course. Credit is not allowed for both Computer Science 170A and Electrical and Computer Engineering 133A unless at least one of them is applied as part of the science and technology requirement or as part of the technical breadth area. Four units of either Computer Science 194 or 199 may be applied as an elective by petition.

A multiple-listed (M) course offered in another department may be used instead of the same computer science course (e.g., Electrical and Computer Engineering M116C may be taken instead of Computer Science M151B). Credit is applied automatically.

For information on University and general education requirements, see Requirements for B.S. Degrees on page 21 or http://www.registrar.ucla.edu/Academics/GE-Requirement.

Computer Engineering B.S.

Capstone Major

The Computer Engineering major is a designated capstone major that is jointly administered by the Computer Science and Electrical and Computer Engineering departments. Undergraduate students complete a design course in which they integrate their knowledge of the discipline and engage in creative design within realistic and professional constraints. Students apply their knowledge and expertise gained in previous mathematics, science, and engineering coursework. Students identify, formulate, and solve engineering problems and present their projects to the class.

The undergraduate curriculum provides all computer engineering students with preparation in the mathematical and scientific disciplines that lead to a set of courses that span the fundamentals of the discipline in the major areas of data science and embedded networked systems. These collectively provide an understanding of many inventions of importance to our society, such as the Internet of Things, human-cyber-physical systems, mobile/wearable/implantable systems, robotic systems, and more generally smart systems at all scales in diverse spheres. The design of hardware, software, and algorithmic elements of such systems represents an already dominant and rapidly growing part of the computer engineering profession. Students are encouraged to make use of their computer science and electrical and computer engineering electives and a two-quarter capstone design course to pursue deeper knowledge within one of these areas according to their interests, whether for graduate study or preparation for employment.

Preparation for the Major

Required: Computer Science 1 (or Electrical and Computer Engineering 1), 31, 32, 33, 35L, M51A (or Electrical and Computer Engineering M16); Electrical and Computer Engineering 3, 10, 11L; Engineering 96C; Mathematics 31A, 31B, 32A, 32B, 33A, 33B, 61; Physics 1A, 1B, 1C, 4AL.

The Major

Required: Computer Science 111, 118 (or Electrical and Computer Engineering 132B), M151B (or Electrical and Computer Engineering M116C), M152A (or Electrical and Computer Engineering M116L), 180; Electrical and Computer Engineering 102, 110, 111L, 113; one course from Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, Statistics 100A; 8 units of computer science and 8 units of electrical and computer engineering upper-division electives; three technical breadth courses (12 units) selected from an approved list available in the Office of Academic and Student Affairs; 8 units capstone design from either Electrical and Computer Engineering 180DA/180DB or 183DA/183DB.

For information on University and general education requirements, see Requirements for B.S. Degrees on page 21 or http://www.registrar.ucla.edu/Academics/GE-Requirement.

Suggested Tracks

Networked Embedded Systems: This track targets two related trends that have been a significant driver of computing, namely stand-alone embedded devices becoming networked and coupled to physical systems, and the Internet evolving toward a network of things (the IoT). These may broadly be classified as cyber physical systems, and includes a broad category of systems such as smart buildings, autonomous vehicles, and robots, which interact with each other and other systems. This trend in turn is driving innovation both in the network technologies (new low-power wireless networks for connecting things, and new high-speed networks and computing infrastructure to accommodate the transport and processing needs of the deluge of data resulting from continual sensing), and in embedded computing (new hardware and software stack catering to requirements such as ultra-low power operation, and embedded machine learning).

Students pursuing this track are strongly encouraged to take Electrical and Computer Engineering M119 or Computer Science M119 in junior year, and to choose three electives from courses such as Computer Science 130, 131, 132, 133, 136, 181, 188, Electrical and Computer Engineering 2, 115A, 115B, 115C, M117, 132A, 133A, 141, 142, 188.

Students who pursue a technical breadth area in either electrical and computer engineering or computer science can choose an additional three courses from this list.

Data Science: This track targets the trend toward the disruptive impact on computing systems, both at the edge and in the cloud, of massive amounts of sensory data being collected, shared, processed, and used for decision making and control. Application domains such as health, transportation, energy, etc. are being transformed by the abilities of inference-making and decision-making from sensory data that is pervasive, continual, and rich. This track will expose students to the entire data-to-decision pathway spanning the entire stack from hardware and software to algorithms, applications, and user experience.

Students pursing this track are strongly advised to take Computer Science 143 and M146 or Electrical and Computer Engineering M146, and to additionally choose two electives from courses such as Computer Science CM121, 136, 144, 145, 161, 188, Electrical and Computer Engineering 114, 133A, 133B, 134, 188.

Students who pursue a technical breadth area in either electrical and computer engineering or computer science can choose an additional three courses from this list.

Students are also free to design ad hoc tracks. The technical breadth area requirement provides an opportunity to combine elective courses in electrical and computer engineering and computer science with those from another HSSEAS major to produce a specialization in an interdisciplinary domain. As noted above, students can also select a technical breadth area in either Electrical and Computer Engineering or Computer Science to deepen their knowledge in either discipline.

Bioinformatics Minor

The Bioinformatics minor introduces undergraduate students to the emerging interdisciplinary field of bioinformatics, an active area of research at UCLA combining elements of the computational sciences with the biological sciences. The minor organizes the many course offerings in different UCLA departments into a coherent course plan providing students with significant training in bioinformatics in addition to the training they obtain from their major. Students who complete the minor will be strong candidates for admission to Ph.D. programs in bioinformatics as well as have the relevant training to obtain jobs in the biotechnology industry.

Students complete a core curriculum and an elective course and are strongly encouraged to participate in undergraduate research as early as possible in one of the many groups offering research opportunities in bioinformatics.

To enter the minor, students must be (1) in good academic standing (2.0 grade point av-erage or better), (2) have completed at least two of the lower-division requirements with minimum grades of C, and (3) file a petition in the Office of Academic and Student Affairs of the Henry Samueli School of Engineering and Applied Science, 6426 Boelter Hall.

Required Lower-Division Courses (14 units minimum): Computer Science 32 or Program in Computing 10C, Life Sciences 3 or 7A, 23L, Mathematics 33A.

Required Upper-Division Courses (18 units minimum): Computer Science 180 (or Mathematics 182), M184, two courses selected from Computer Science CM121, CM122, and CM124, and one course selected from Chemistry and Biochemistry C100, 153B, Civil and Environmental Engineering 110, Computer Science CM121, CM122, CM124, 170A, CM186, CM187, Ecology and Evolutionary Biology 135, Electrical and Computer Engineering 102, 131A, 141, Human Genetics C144, Mathematics 170A, Microbiology, Immunology, and Molecular Genetics 132, Molecular, Cell, and Developmental Biology 144, 187AL, Physiological Science 125, Statistics 100A, 100B. Eight units of either Bioinformatics 199 or Computer Science 194 or 199 may be applied as an elective by petition.

Students are strongly encouraged to take Computer Science M184 as early as possible to obtain an overview of computational biology.

If students apply any of Civil and Environmental Engineering 110, Electrical and Computer Engineering 131A, Mathematics 170A, or Statistics 100A toward major requirements or another minor, then no other course from that set may be applied toward the minor requirements.

A minimum of 20 units applied toward the minor requirements must be in addition to units applied toward major requirements or another minor.

All minor courses must be taken for a letter grade (unless not offered on that grading basis), and students must have a minimum grade of C– in each and an overall C (2.0) grade-point average in all courses taken for the minor. Successful completion of the minor is indicated on the transcript and diploma.

Graduate Study

For information on graduate admission, see Graduate Programs, page 25.

The following introductory information is based on the 2017-18 edition of Program Requirements for UCLA Graduate Degrees. Complete annual editions of Program Requirements are available at https://grad.ucla.edu. Students are subject to the degree requirements as published in Program Requirements for the year in which they enter the program.

The Department of Computer Science offers Master of Science (M.S.) and Doctor of Philosophy (Ph.D.) degrees in Computer Science and participates in a concurrent degree program (Computer Science M.S./Management M.B.A.) with the John E. Anderson Graduate School of Management.

Computer Science M.S.

Course Requirements

Course Requirement. A total of nine courses is required for the M.S. degree, including a minimum of five graduate courses. No specific courses are required, but a majority of both the total number of formal courses and the total number of graduate courses must consist of courses offered by the Computer Science Department.

Undergraduate Courses. No lower-division courses may be applied toward graduate degrees. In addition, the following upper-division courses are not applicable toward graduate degrees: Chemical Engineering 102A, 199, Civil and Environmental Engineering 108, 199, Computer Science M152A, 152B, 199, Electrical and Computer Engineering 100, 101A, 102, 110L, M116L, 199, Materials Science and Engineering 110, 120, 130, 131, 131L, 132, 140, 141L, 150, 160, 161L, 199, Mechanical and Aerospace Engineering 102, 103, 105A, 105D, 199.

Breadth Requirement. M.S. degree students must satisfy the computer science breadth requirement by the end of the third term in graduate residence at UCLA. The requirement is satisfied by mastering the contents of five undergraduate courses or equivalent: Computer Science 180, two courses from 111, 118, and M151B, one course from 130, 131, or 132, and one course from 143, 161, or 174A. A UCLA undergraduate course taken by graduate students cannot be used to satisfy graduate degree requirements if students have already received a grade of B– or better for a course taken elsewhere that covers substantially the same material.

For the MS degree, students must also complete at least three terms of Computer Science 201 with grades of Satisfactory.

Competence in any or all courses in breadth requirements may be demonstrated in one of three ways:

  1. Satisfactory completion of the course at UCLA with a grade of B– or better
  2. Satisfactory completion of an equivalent course at another university with a grade of B– or better
  3. Satisfactory completion of a final examination in the course at UCLA

Comprehensive Examination Plan

In the comprehensive examination plan, at least five of the nine courses must be 200-series courses. The remaining four courses may be either 200-series or upper-division courses. No units of 500-series courses may be applied toward the comprehensive examination plan requirements.

Thesis Plan

In the thesis plan, seven of the nine courses must be formal courses, including at least four from the 200 series. The remaining two courses may be 598 courses involving work on the thesis.

The thesis is a report on the results of student investigation of a problem in the major field of study under the supervision of the thesis committee, which approves the subject and plan of the thesis and reads and approves the complete manuscript. While the problem may be one of only limited scope, the thesis must exhibit a satisfactory style, organization, and depth of understanding of the subject. Students should normally start to plan the thesis at least one year before the award of the M.S. degree is expected. There is no examination under the thesis plan.

Computer Science M.S./Management M.B.A.

The Department of Computer Science and the John E. Anderson Graduate School of Management offer a concurrent degree program that enables students to complete the requirements for the M.S. in Computer Science and the M.B.A. (Master of Business Administration) in three academic years. Students should request application materials from both the M.B.A. Admissions Office, John E. Anderson Graduate School of Management, and the Department of Computer Science.

Computer Science Ph.D.

Major Fields or Subdisciplines

Artificial intelligence; computational systems biology; computer networks; computer science theory; computer system architecture; graphics and vision; information and data management; and software systems.

Course Requirements

Normally, students take courses to acquire the knowledge needed to prepare for the written and oral examinations and for conducting Ph.D. research. The basic program of study for the Ph.D. degree is built around the major field requirement and two minor fields. The major field and at least one minor field must be in computer science.

The fundamental examination is common for all Ph.D. candidates in the department and is also known as the written qualifying examination.

To satisfy the major field requirement, students are expected to attain a body of knowledge contained in five courses, as well as the current literature in the area of specialization. In particular, students are required to take a minimum of three graduate courses in the major field of Ph.D. research, selecting these courses in accordance with guidelines specific to the major field. Guidelines for course selection in each major field are available from the departmental Student Affairs Office. Grades of B– or better, with a grade-point average of at least 3.33 in all courses used to satisfy the major field requirement, are required. Students are required to satisfy the major field requirement within the first nine terms after enrolling in the graduate program.

Each minor field normally embraces a body of knowledge equivalent to two courses, at least one of which is a graduate course. Grades of B– or better, with a grade-point average of at least 3.33 in all courses included in the minor field, are required. By petition and administrative approval, a minor field may be satisfied by examination.

Breadth Requirement. Ph.D. degree students must satisfy the computer science breadth requirement by the end of the third term in graduate residence at UCLA. The requirement is satisfied by mastering the contents of five undergraduate courses or equivalent: Computer Science 180, two courses from 111, 118, and M151B, one course from 130, 131, or 132, and one course from 143, 161, or 174A. A UCLA undergraduate course taken by graduate students cannot be used to satisfy graduate degree requirements if students have already received a grade of B– or better for a course taken elsewhere that covers substantially the same material.

For the Ph.D. degree, students must also complete at least three terms of Computer Science 201 with grades of Satisfactory (in addition to the three terms of 201 that may have been completed for the M.S. degree).

Competence in any or all courses may be demonstrated in one of three ways:

  1. Satisfactory completion of the course at UCLA with a grade of B– or better
  2. Satisfactory completion of an equivalent course at another university with a grade of B– or better
  3. Satisfactory completion of a final examination in the course at UCLA

For requirements for the Graduate Certificate of Specialization, see Engineering Schoolwide Programs.

Written and Oral Qualifying Examinations

The written qualifying examination consists of a high-quality paper, solely authored by the student. The paper can be either a research paper containing an original contribution or a focused critical survey paper. The paper should demonstrate that the student understands and can integrate and communicate ideas clearly and concisely. It should be approximately 10 pages single-spaced, and the style should be suitable for submission to a first-rate technical conference or journal. The paper must represent work that the student did as a graduate student at UCLA. Any contributions that are not the student’s own, including those of the student’s adviser, must be explicitly acknowledged in detail. Prior to submission, the paper must by reviewed by the student’s adviser on a cover page with the adviser’s signature indicating review. After submission, the paper must be reviewed and approved by at least two other members of the faculty. There are two deadlines a year for submission of papers.

After passing the preliminary examination and coursework for the major and minor fields, the student should form a doctoral committee and prepare to take the University Oral Qualifying Examination. A doctoral committee consists of a minimum of four members. Three members, including the chair, must hold appointments in the department. The remaining member must be a UCLA faculty member in another department. The nature and content of the oral qualifying examination are at the discretion of the doctoral committee but ordinarily include a broad inquiry into the student’s preparation for research. The doctoral committee also reviews the prospectus of the dissertation at the oral qualifying examination.

Fields of Study

Artificial Intelligence

Artificial intelligence (AI) is the study of intelligent behavior. While other fields such as philosophy, psychology, neuroscience, and linguistics are also concerned with the study of intelligence, the distinguishing feature of AI is that it deals primarily with information processing models. Thus the central scientific question of artificial intelligence is how intelligent behavior can be reduced to information processing. Since even the simplest computer is a completely general information processing device, the test of whether some behavior can be explained by information processing mechanisms is whether a computer can be programmed to produce the same behavior. Just as human intelligence involves gathering sensory input and producing physical action in the world, in addition to purely mental activity, the computer for AI purposes is extended to include sense organs such as cameras and microphones, and output devices such as wheels, robotic arms, and speakers.

The predominant research paradigm in artificial intelligence is to select some behavior that seems to require intelligence on the part of humans, to theorize about how the behavior might be accounted for, and to implement the theory in a computer program to produce the same behavior. If successful, such an experiment lends support to the claim that the selected behavior is reducible to information processing terms, and may suggest the program’s architecture as a candidate explanation of the corresponding human process.

The UCLA Computer Science Department has active research in the following major subfields of artificial intelligence:

  1. Problem Solving. Analysis of tasks, such as playing chess or proving theorems, that require reasoning about relatively long sequences of primitive actions, deductions, or inferences
  2. Knowledge representation and qualitative reasoning. Analysis of tasks such as common-sense reasoning and qualitative physics. Here the deductive chains are short, but the amount of knowledge that potentially may be brought to bear is very large
  3. Expert systems. Study of large amounts of specialized or highly technical knowledge that is often probabilistic in nature. Typical domains include medical diagnosis and engineering design
  4. Natural language processing. Symbolic, statistical, and artificial neural network approaches to text comprehension and generation
  5. Computer vision. Processing of images, as from a TV camera, to infer spatial properties of the objects in the scene (three-dimensional shape), their dynamics (motion), their photometry (material and light), and their identity (recognition)
  6. Robotics. Translation of a high-level command, such as picking up a particular object, into a sequence of low-level control signals that might move the joints of a robotic arm/hand combination to accomplish the task; often this involves using a computer vision system to locate objects and provide feedback
  7. Machine learning. Study of the means by which a computer can automatically improve its performance on a task by acquiring knowledge about the domain
  8. Parallel architecture. Design and programming of a machine with thousands or even millions of simple processing elements to produce intelligent behavior; the human brain is an example of such a machine

Computational Systems Biology

The computational systems biology (CSB) field can be selected as a major or minor field for the Ph.D. or as a specialization area for the M.S. degree in Computer Science.

Graduate studies and research in the CSB field are focused on computational modeling and analysis of biological systems and biological data.

Core coursework is concerned with the methods and tools development for computational, algorithmic, and dynamic systems network modeling of biological systems at molecular, cellular, organ, whole organism, or population levels—and leveraging them in biosystem and bioinformatics applications. Methodological studies include bioinformatics and systems biology modeling, with focus on genomics, proteomics, metabolomics, and higher levels of biological/physiological organization, as well as multiscale approaches integrating the parts.

Typical research areas with a systems focus include molecular and cellular systems biology, organ systems physiology, medical, pharmacological, pharmacokinetic (PK), pharmacodynamic (PD), toxicokinetic (TK), physiologically based PBPK-PD, PBTK, and pharmacogenomic system studies; neuro-systems, imaging and remote sensing systems, robotics, learning and knowledge-based systems, visualization, and virtual clinical environments. Typical research areas with a bioinformatics focus include development of computational methods for analysis of high-throughput molecular data, including genomic sequences, gene expression data, protein-protein interaction, and genetic variation. These computational methods leverage techniques from both statistics and algorithms.

Computer Networks

The computer networks field involves the study of computer networks of different types, in different media (wired, wireless), and for different applications. Besides the study of network architectures and protocols, this field also emphasizes distributed algorithms, distributed systems, and the ability to evaluate system performance at various levels of granularity (but principally at the systems level). In order to understand and predict systems behavior, mathematical models are pursued that lead to the evaluation of system throughput, response time, utilization of devices, flow of jobs and messages, bottlenecks, speedup, power, etc. In addition, students are taught to design and implement computer networks using formal design methodologies subject to appropriate cost and objective functions. The tools required to carry out this design include probability theory, queueing theory, distributed systems theory, mathematical programming, control theory, operating systems design, simulation methods, measurement tools, and heuristic design procedures. The outcome of these studies provides the following:

  1. An appropriate model of the computer system under study
  2. An adequate (exact or approximate) analysis of the behavior of the model
  3. The validation of the model as compared to simulation and/or measurement of the system
  4. Interpretation of the analytical results in order to obtain behavioral patterns and key parameters of the system
  5. Design methodology

Resource Allocation

A central problem in the design and evaluation of computer networks deals with the allocation of resources among competing demands (e.g., wireless channel bandwidth allocation to backlogged stations). In fact, resource allocation is a significant element in most of the technical (and nontechnical) problems we face today.

Most of our resource allocation problems arise from the unpredictability of the demand for the use of these resources, as well as from the fact that the resources are geographically distributed (as in computer networks). The computer networks field encounters such resource allocation problems in many forms and in many different computer system configurations. Our goal is to find allocation schemes that permit suitable concurrency in the use of devices (resources) so as to achieve efficiency and equitable allocation. A very popular approach in distributed systems is allocation on demand, as opposed to prescheduled allocation. On-demand allocation is found to be effective, since it takes advantage of statistical averaging effects. It comes in many forms in computer networks and is known by names such as asynchronous time division multiplexing, packet switching, frame relay, random access, and so forth.

Computer Science Theory

Computer science is in large measure concerned with information processing systems, their applications, and the corresponding problems of representation, transformation, and communication. The computer science fields are concerned with different aspects of such systems, and each has its own theoretical component with appropriate models for description and analysis, algorithms for solving the related problems, and mathematical tools. Thus in a certain sense computer science theory involves all of computer science and participates in all disciplines.

The term theoretical computer science has come to be applied nationally and intentionally to a certain body of knowledge emphasizing the interweaving themes of computability and algorithms, interpreted in the broadest sense. Under computability, one includes questions concerning which tasks can and cannot be performed by information systems of different types restricted in various ways, as well as the mathematical analysis of such systems, their computations, and the languages for communication with them. Under algorithms, one includes questions concerning (1) how a task can be performed efficiently under reasonable assump-tions on available resources (e.g., time, storage, type of processor), (2) how efficiently a proposed system performs a task in terms of resources used, and (3) the limits on how efficiently a task can be performed. These questions are often addressed by first developing models of the relevant parts of an information processing system (e.g., the processors, their interconnections, their rules of operation, the means by which instructions are conveyed to the system, or the way the data is handled) or of the input/output behavior of the system as a whole. The properties of such models are studied both for their own interest and as tools for understanding the system and improving its performance or applications.

Emphasis of Computer Science Theory
   Design and analysis of algorithms
   Distributed and parallel algorithms
   Models for parallel and concurrent computation
   Online and randomized algorithms
   Computational complexity
   Automata and formal languages
   Cryptography and interactive proofs

Computer System Architecture

Computer system architecture deals with the design, implementation, and evaluation of computer systems and their building blocks. It deals with general-purpose systems as well as embedded special-purpose systems. The field also encompasses the development of tools to enable system designers to describe, model, fabricate, and test highly complex computer systems from single-chip to computing clouds.

Computer systems are implemented as a combination of hardware and software. Hence, research in the field of computer architecture often involves both hardware and software issues. The requirements of application software and operating systems, together with the capabilities of compilers, play a critical role in determining the features implemented in hardware. At the same time, the computer architect must also take into account the capabilities and limitations of the underlying implementation technology as well as of the design tools.

The goal of research in computer architecture is to develop building blocks, system organizations, design techniques, and design tools that lead to improved performance and reliability as well as reduced power consumption and cost.

Corresponding to the richness and diversity of computer systems architecture research at UCLA, a comprehensive set of courses is offered in the areas of advanced processor architecture, arithmetic processor systems. parallel and distributed architectures, fault-tolerant systems, reconfigurable systems, embedded systems, and computer-aided design of VLSI circuits and systems.

  1. Novel architectures encompass the study of computations that are performed in ways that are quite different than those used by conventional machines. Examples include various domain-specific architectures characterized by high computational rates, low power, and reconfigurable hardwares used in a wide range of computing devices from smart phones to data centers.
  2. The study of high-performance processing algorithms deals with algorithms for very high-performance numerical processing. Techniques such as redundant-digit representations of number systems, fast arithmetic, and the use of highly parallel arrays of processing elements are studied with the goal of providing the extremely high processing speeds required in a number of upcoming computer applications.
  3. The study of computational algorithms and structures deals with the relationship between computational algorithms and the physical structures that can be employed to carry them out. It includes the study of interconnection networks, and the way that algorithms can be formulated for efficient implementation where regularity of structure and simplicity of interconnections are required.
  4. Computer-aided design of VLSI circuits and systems is an active research area that develops techniques for the automated synthesis and analysis of large-scale systems. Topics include high-level and logic-level synthesis, technology mapping, physical design, interconnect modeling, and optimization of various VLSI technologies such as full-custom designs, standard cells, programmable logic devices (PLDs), multichip modules (MCMs), system-on-a-chip (SoCs) that are used in a wide range of applications from IoTs to data centers.
  5. VLSI architectures and implementation is an area of current interest and collaboration between the Electrical and Computer Engineering and Computer Science Departments that addresses the impact of large-scale integration on the issues of computer architecture. Application of these systems in medicine and healthcare, multimedia, and finance is being studied in collaboration with other schools on campus.

Graphics and Vision

The graphics and vision field focuses on the synthesis and analysis of image and video data by computer. Graphics includes the topics of rendering, modeling, animation, visualization, and interactive techniques, among others, and it is broadly applicable in the entertainment industry (motion pictures and games) and elsewhere. Vision includes image/video representation and registration, feature extraction, three-dimensional reconstruction, object recognition, and image-based modeling, among others, with application to real-time vision/control for robots and autonomous vehicles, medical imaging, visual sensor networks and surveillance, and more. Several of the projects undertaken by our researchers in this field unify graphics and vision through mathematical modeling, wherein graphics is considered a models-to-images synthesis problem and vision the converse images-to-models analysis problem.

Information and Data Management

The information and data management field focuses on basic problems of modeling and managing data and knowledge, and their relation with other fundamental areas of computer science, such as operating systems and networking, programming languages, and human-computer interface design.

A data management system embodies a collection of data, devices in which the data are stored, and logic or programs used to manipulate that data. Information management is a generalization of data management in which the data being stored are permitted to be arbitrarily complex data structures, such as rules and trees. In addition, information management goes beyond simple data manipulation and query and includes inference mechanisms, explanation facilities, and support for distributed and web-based access.

The need for rapid, accurate information is pervasive in all aspects of modern life. Modern systems are based on the coordination and integration of multiple levels of data representation, from characteristics of storage devices to conceptual and abstract levels. As human enterprises have become more complex, involving more complicated decisions and trade-offs among decisions, the need for sophisticated information and data management has become essential.

Software Systems

The programming languages and systems field is concerned with the study of theory and practice in the development of software systems. Well-engineered systems require appreciation of both principles and architectural trade-offs. Principles provide abstractions and rigor that lead to clean designs, while systems-level understanding is essential for effective design.

Principles here encompass the use of programming systems to achieve specified goals, the identification of useful programming abstractions or paradigms, the development of comprehensive models of soft-ware systems, and so forth. The thrust is to identify and clarify concepts that apply in many programming contexts.

Development of software systems requires an understanding of many methodological and architectural issues. The complex systems developed today rely on concepts and lessons that have been extracted from years of research on programming languages, operating systems, database systems, knowledge-based systems, real-time systems, and distributed and parallel systems.

Facilities

Departmental laboratories and centers for instruction and research include:

Artificial Intelligence Laboratories

Automated Reasoning Group

Adnan Y. Darwiche, Director

The laboratory focuses on research in probabilistic and logical reasoning and their applications to problems in science and engi-neering disciplines. On the theoretical side, research involves formulation of various tasks such as diagnosis, belief revision, planning, and verification as reasoning problems. On the practical side, focus is on development of efficient and embeddable reasoning algorithms that can scale to real-world problems, and software environments that can be used to construct and validate large-scale models.

Cognitive Systems Laboratory

Judea Pearl, Director

The laboratory targets research areas concerned with evidential reasoning, the distributed interpretation of multisource data in networks of partial beliefs; learning, the structuring and parameterizing of links in belief networks to form a representation consistent with a stream of observations; constraint processing, including intelligent backtracking, learning while searching, temporal reasoning, etc.; graphoids, the characterization of informational dependencies and their graph representations; and default reasoning, use of qualitative probabilistic reasoning to draw plausible and defeasible con-clusions from incomplete information.

Computational Systems Biology Laboratories

Biocybernetics Laboratory

Joseph J. DiStefano III, Director

This interdisciplinary research typically involves integration of theory with real laboratory data, using biomodeling, computational, and biosystems approaches. Problem domains are physiological systems, disease processes, pharmacology, and some post-genomic bioinformatics. Laboratory pedagogy involves development and exploitation of the synergistic and methodologic interface between structural and computational biomodeling with laboratory data, or computational systems biology, with a focus on integrated approaches for solving complex biosystem problems from sparse biodata e.g., in physiology, medicine, and pharmacology), as well as voluminous biodata (e.g., from genomic libraries and DNA array data).

Computational Genetics Laboratory

Eleazar Eskin, Director

The laboratory is comprised of a computational genetics group affiliated with both the Computer Science and Human Genetics departments. Research interests are in computational genetics, bioinformatics, computer science, and statistics. The laboratory focuses on developing techniques for solving the challenging computational problems that arise in attempting to understand the genetic basis of human disease.

Computer Systems Architecture Laboratories

Concurrent Systems Laboratory

Yuval Tamir, Director

The Concurrent Systems Laboratory is used for investigating the design, implementation, and evaluation of computer systems that use state-of-the-art technology to achieve high performance and high reliability. Projects involve both software and hardware, and often focus on parallel and distributed systems in the context of general-purpose as well as embedded applications.

Digital Arithmetic and Reconfigurable Architecture Laboratory

Milos D. Ercegovac, Director

The Digital Arithmetic and Reconfigurable Architecture Laboratory is used for fast digital arithmetic (theory, algorithms, and design) and numerically intensive computing on reconfigurable hardware. Research includes floating-point arithmetic, online arithmetic, application-specific architectures, and design tools.

Embedded and Reconfigurable System Design Laboratory

Majid Sarrafzadeh, Director

The Embedded and Reconfigurable System Design Laboratory is used for studying reconfigurable cores in embedded systems that provide the required adaptability and reconfigurability, and the design and CAD aspects of low-power embedded systems.

VAST Laboratory

Jason Cong, Director

The VAST Laboratory is used for computer-aided design of VLSI circuits and systems. Areas include high-level and logic-level synthesis, technology mapping, physical design, interconnect modeling and optimization of various VLSI technologies such as full-custom designs, standard cells, programmable logic devices (PLDs), multichip modules (MCMs), system-on-a-chip (SOCs), system-in-a-package (SIPs), and design for nanotechnologies.

Graphics and Vision Laboratories

Center for Vision, Cognition, Learning, and Art

Song-Chun Zhu, Director

The laboratory is affiliated with the Com-puter Science and Statistics departments. Research begins with computer vision and expands to other disciplines. The objective is to pursue a unified framework for representation, learning, inference, and reasoning; and to build intelligent computer systems for real-world applications. Its projects span four directions: vision (object, scene, events, etc.); cognition (intentions, roles causality, etc.); learning (information projection, stochastic grammars, etc.); and art (abstraction, expression, aesthetics, etc.).

Computer Graphics and Vision Laboratory (MAGIX)

Demetri Terzopoulos, Director

The laboratory conducts research on computer graphics, especially targeted towards the video game and motion picture industries, with emphasis on geometric, physics-based, and artificial-life modeling and animation, including motion capture techniques, biomechanical simulation, behavioral animation, and graphics applications of machine learning, AI, and robotics.

UCLA Collective on Vision and Image Sciences

The Collective brings together researchers from multiple departments at UCLA, including Mathematics, Statistics, Computer Science, Brain Mapping, Computational Biology, Neuro Imaging, Image Informatics, Psychology, and Radiology.

UCLA Vision Laboratory

Stefano Soatto, Director

Researchers investigate how images—i.e., measurements of light—can be used to infer properties of the physical world such as shape, motion, location, and material properties of objects. This is key to developing engineering systems that can “see” and interact intelligently with the world around them. For example, images captured by a car-mounted video camera can be processed by computers to infer a model of the car’s surroundings, e.g., other vehicles, pedestrians, etc. This technology can also be used to analyze images captured in the environment to understand the effects of climate change by monitoring the behavior of animals and plants. Analysis of images of the human body can be used both for diagnostic purposes and for planning interventions.

Information and Data Management Laboratories

lnformation and Data Management Group

(Multiple Faculty)

The group is a collaboration of all UCLA faculty from the information and data management field. It is interested in multiple research areas including big data, archival information systems, knowledge discovery and data mining, Earth Science Partners’ private network, genomics graph database development, multimedia information stream system technology, Smart Space middleware architecture, and technologically based assessment of language and literacy, to name just a few.

Web Information Systems Laboratory

Carlo A. Zaniolo, Director

This research group investigates Web-based information systems and seeks to develop enabling technology for such systems by integrating the Web with database systems. Current research efforts include the DeAL system, a next-generation datalog system; SemScape, an NLP-based framework for mining unstructured or free text; EARL (Early Accurate Result Library) for Hadoop; Panta Rei, a study of support for schema evolution in the context of snapshot databases and transaction-time databases; Stream Mill, a complete data stream management system; and ArchIS, a powerful archival information system.

Network Systems Laboratories

Internet Research Laboratory (IRL)

Lixia Zhang, Principal Investigator

The laboratory’s research areas include fault tolerance in large-scale distributed systems, Internet routing infrastructure, inter-domain routing (BGP), and protocol design principles for large-scale, self-organizing systems. It is also involved in Internet security projects that include development of monitoring tools for DNS security deployment and the enabling of cryptographic defenses in large-scale distributed systems.

Laboratory for Advanced System Research (LASR)

Peter L. Reiher, Principal Investigator

The laboratory engages in research to develop advanced operating systems, distributed systems, middleware, and security systems.

Network Research Laboratory

Mario Gerla, Director

The laboratory supports research projects in a broad range of topics in network communications including network protocols and architectures, modeling and analysis, wireless networks, sensor networks, car-to-car networks, peer-to-peer techniques, medical networks, and network measurement. It focuses on the use of modeling and analytical techniques to study challenging problems.

Wireless Networking Group (WiNG)

Songwu Lu, Director

The laboratory’s research areas include wireless networking, mobile systems, and cloud computing. Its focus is on design, implementation, and experimentation of protocols, algorithms, and systems for wireless data networks. The goal is to build high-performance and dependable networking solutions for the wireless Internet.

Software Systems Laboratories

Compilers Laboratory

The Compilers Laboratory is used for research into compilers, embedded systems, and programming languages.

Software Systems Group

(Multiple Faculty)

The group is a collaboration of faculty from the software systems and network systems fields. It conducts research on the design, implementation, and evaluation of operating systems, networked systems, programming languages, and software engineering tools.

Computer Science Centers

Center for Autonomous Intelligent Networked Systems (CAINS)

The center was established in 2001 with researchers from several laboratories in the Computer Science and Electrical and Computer Engineering departments. It serves as a forum for intelligent-agent researchers and visionaries from academia, industry, and government, with an interdisciplinary focus on fields such as engineering, medicine, biology, and social sciences. Information and technology are exchanged through symposia, seminars, short courses, and collaboration in joint research projects sponsored by government and industry.

Research projects include use of unmanned autonomous vehicles, coordination of vehicles into computing clouds, and integration of body sensors and smart phones into m-health systems. Ongoing research encompasses personal and body networks, cognitive radios, ad hoc multihop networking, vehicular networks, dynamic unmanned backbone, underwater unmanned vehicles, mobile sensor platforms, and network coding.

Center for Domain-Specific Computing (CDSC)

CDSC was established in 2009 with the support of a $10 million grant from NSF’s Expeditions in Computing program to develop high-performance, energy-efficient, customizable computing that will revolutionize the way computers are used in health care and other important applications. Domain-specific computing uses customizable architectures and high-level computer languages tailored to particular application domains.

The center is a collaborative effort between UCLA’s Computer Science, Electrical and Computer Engineering, Mathematics, and Radiological Sciences departments, as well as the Computer Science and Engineering departments of Rice University, UC Santa Barbara, and Ohio State University. Its objectives are to develop a general (and largely reusable) methodology for creating novel and highly efficient customizable architecture platforms and the associated compilation tools and runtime management environment to support domain-specific computing. Health care is a significant domain because it has such a major impact on issues of national economy and quality of life; a major focus for the center is on medical imaging and hemodynamic modeling.

Center for Information and Computation Security (CICS)

The center was established in 2003 to promote all aspects of research and education in cryptography and computer security. It explores novel techniques for securing national and private-sector information infrastructures across various network-based and wireless platforms as well as wide-area networks. The inherent challenge is to provide guarantees of privacy and survivability under malicious and coordinated attacks.

The center has raised federal, state, and private-sector funding, including collaboration with Israel through multiple U.S.–Israel Binational Science Foundation grants. It has also attracted multiple international visiting scholars. ClCS explores and develops state-of-the-art cryptographic algorithms, definitions, and proofs of security; novel cryptographic applications such as new electronic voting protocols and identification, data-rights management schemes, and privacy-preserving data mining; security mechanisms underlying a clean-slate design for a next-generation secure Internet; biometric-based models and tools, such as encryption and identification schemes based on fingerprint scans; and the interplay of cryptography and security with other fields such as bioinformatics, machine learning, complexity theory, etc.

Scalable Analytics Institute (ScAi)

The institute was established in 2013 with a focus on the continuing growth of data and demand for smart analytics to mine that data. Such analytics are creating major transformative opportunities in science and industry. To fully capitalize on these opportunities, computing technology must solve the three-pronged challenge created by the exploding size of big data, the growing complexity of big data, and the increased sophistication of analytics that can be used to extract patterns and trends from the data.

Wireless Health Institute (WHI)

Benjamin M. Wu, D.D.S, Ph.D. (Bioengineering), Director; Bruce Dobkin, M.D. (Medicine/Neurology), William Kaiser, Ph.D. (Electrical and Computer Engineering), Gregory J. Pottie, Ph.D. (Electrical and Computer Engineering), Co-Directors

WHI is leading initiatives in health care solutions in the fields of disease diagnosis, neurological rehabilitation, optimization of clinical outcomes for many disease conditions, geriatric care, and many others. WHI also promotes this new field in the international community through the founding and organization of the leading Wireless Health conference series, Wireless Health 2010, 2011, 2012, 2013, and 2014.

WHI technology always serves the clinician community through jointly developed innovations and clinical trial validation. Each WHI program is focused on large-scale product delivery in cooperation with manufacturing partners. WHI collaborators include the UCLA schools of Medicine, Nursing, and Engineering and Applied Sciences; Clinical Translational Science Institute for medical research; Ronald Reagan UCLA Medical Center; and faculty from many departments across UCLA. WHI education programs span high school, undergraduate, and graduate students, and provide training in end-to-end product development and delivery for WHI program managers.

WHI develops innovative, wearable biomedical monitoring systems that collect, integrate, process, analyze, communicate, and present information so that individuals become engaged and empowered in their own health care, improve their quality of life, and reduce burdens on caregivers. WHI products appear in diverse areas including motion sensing, wound care, orthopaedics, digestive health and process monitoring, advancing athletic performance, and many others. Clinical trials validating WHI technology are underway at 10 institutions. WHI products developed by the UCLA team are now in the marketplace in the U.S. and Europe. Physicians, nurses, therapists, other providers, and families can apply these technologies in hospital and community practices. Academic and industry groups can leverage the organization of WHI to rapidly develop products in complete-care programs and validate in trials. WHI welcomes new team members and continuously forms new collaborations with colleagues and organizations in medical science and health care delivery.

Computing Resources

In summarizing the resources now available to conduct experimentally based research in the UCLA Computer Science Department, it is useful to identify the major components of the research environment: the departmental computing facility, other hardware and software systems, administrative structure, and technical support staff.

Hardware

Computing facilities range from large campus-operated supercomputers to a major local network of servers and workstations that are administered by the department computing facilities (DCF) or school network (SEASnet).

The departmental research network includes Oracle servers and shared workstations, on the school ethernet TCP/IP local network. A wide variety of peripheral equipment is also part of the facility, and many more research-group workstations share the network; the total number of machines exceeds 1000, the majority running the Linux operating system. The network consists of switched 10/100/1000 ethernet to the desktop with a gigabit backbone connection. The department LAN is connected to the campus gigabit backbone. An 802.11n wireless network is also available to faculty, staff, and graduate students.

Administrative Structure

The central facilities and wide-area networking are operated by the campuswide Communications Technology Services. Access to the departmental and SEASnet machines is controlled so as to maximize the usefulness of these computers for education and research, but no direct charges are involved.

Technical Support Staff

The support staff consists of hardware and software specialists. The hardware laboratory supports network connections, configures routers, switches, and network monitoring tools. The software group administers the department UNIX servers, providing storage space and backup for department users.

Faculty Areas of Thesis Guidance

Professors

Junghoo (John) Cho, Ph.D. (Stanford, 2002)

Databases, web technologies, information discovery and integration

Jason (Jingsheng) Cong, Ph.D. (U. Illinois, 1990)

Computer-aided design of VLSI circuits, fault-tolerant design of VLSI systems, design and analysis of algorithms, computer architecture, reconfigurable computing, design for nanotechnologies

Adnan Y. Darwiche, Ph.D. (Stanford, 1993)

Knowledge representation and automated reasoning (symbolic and probabilistic), applications to diagnosis, prediction, planning, and verification

*Joseph J. DiStefano III, Ph.D. (UCLA, 1966)

Biocybernetics; computational systems biology; dynamic biosystems modeling, simulation, clinical therapy and experiment design optimization methodologies; pharmacokinetic (PK), pharmacodynamic (PD), and physiologically-based PK (PKPD) modeling; knowledge-based (expert) systems for life science research

Milos D. Ercegovac, Ph.D. (U. Illinois, 1975)

Application-specific architectures, digital computer arithmetic, digital design, low-power systems, reconfigurable systems

Eleazar Eskin, Ph.D. (Columbia, 2002)

Bioinformatics, genetics, genomics, machine learning

Eliezer M. Gafni, Ph.D. (MIT, 1982)

Computer communication, networks, mathematical programming algorithms

Mario Gerla, Ph.D. (UCLA, 1973)

Wireless ad hoc networks: MAC, routing and transport protocols, vehicular communications, peer-to-peer mobile networks, personal-area networks (Bluetooth and Zigbee), underwater sensor networks, Internet transport protocols (TCP, streaming), Internet path characterization, capacity and bandwidth estimates, analytic and simulation models for network and protocol performance evaluation

Eran Halperin, Ph.D. (Tel Aviv U., Israel, 2000)

Computational biology, population genetics, statistical genetics and epigenetics, machine learning, algorithms

Richard E. Korf, Ph.D. (Carnegie Mellon, 1983)

Problem solving, heuristic search, planning in artificial intelligence

Christopher J. Lee, Ph.D. (Stanford, 1993)

Bioinformatics and information theory of experiment planning, inference, and evolution

Songwu Lu, Ph.D. (U. Illinois, 1999.

Integrated-service support over heterogeneous networks, e.g., mobile computing environments, Internet and Activenet: networking and computing, wireless communications and networks, computer communication networks, dynamic game theory, dynamic systems, neural networks, and information economics

Todd D. Millstein, Ph.D. (U. Washington, 2003)

Programming language design, static type systems, formal methods, software model checking, compilers

Stanley J. Osher, Ph.D. (New York U., 1966)

Scientific computing and applied mathematics

†Rafail Ostrovsky, Ph.D. (MIT, 1992)

Theoretical computer science algorithms, cryptography, complexity theory, randomization, network protocols, geometric algorithms, data mining

Jens Palsberg, Ph.D. (Aarhus U., Denmark, 1992)

Compilers, embedded systems, programming languages

Miodrag Potkonjak, Ph.D. (UC Berkeley, 1991)

Computer-aided analysis and synthesis of system level designs, behavioral synthesis, and interaction between high-performance application-specific computations and communications

Glenn D. Reinman, Ph.D. (UC San Diego, 2001)

Microprocessor architecture, exploitation of instruction/thread/memory-level parallelism, power-efficient design, hardware/software co-design, multicore and multiprocessor design

Amit Sahai, Ph.D. (MIT, 2000)

Theoretical computer science, cryptology, computer security, algorithms, error-correcting codes and learning theory

Majid Sarrafzadeh, Ph.D. (U. Illinois, 1987)

Computer engineering, embedded systems, VLSI CAD, algorithms

Stefano Soatto, Ph.D. (Caltech, 1996)

Computer vision; shape analysis, motion analysis, texture analysis, 3-D reconstruction, vision-based control; computer graphics: image-based modeling and rendering; medical imaging: registration, segmentation, statistical shape analysis; autonomous systems: sensor-based control, planning non-linear filtering; human-computer interaction: vision-based interfaces, visibility, visualization

Mani B. Srivastava, Ph.D. (UC Berkeley, 1992)

Energy aware networking and computing, embedded networked sensing, embedded software, low-power wireless systems and applications of wireless and embedded technology

Demetri Terzopoulos, Ph.D. (MIT, 1984)

Computer graphics, computer vision, medical image analysis, computer-aided design, artificial life/intelligence

George Varghese, Ph.D. (MIT, 1993)

Computer networks

Wei Wang, Ph.D. (UCLA, 1999)

Data mining, bioinformatics and computational biology, databases

Carlo A. Zaniolo, Ph.D. (UCLA, 1976)

Knowledge bases and deductive databases, parallel execution of PROLOG programs, formal software specifications, distributed systems, big data, artificial intelligence, and computational biology

Lixia Zhang, Ph.D. (MIT, 1989)

Computer network, Internet architecture, protocol designs, security and resiliency of large-scale systems

Song-Chun Zhu, Ph.D. (Harvard, 1996)

Computer vision, statistical modeling and computing, vision and visual arts, machine learning

Professors Emeriti

Algirdas A. Avizienis, Ph.D. (U. Illinois, 1960)

Digital computer architecture and design, fault-tolerant computing, digital arithmetic

Rajive L. Bagrodia, Ph.D. (U. Texas, 1987)

Wireless networks, nomadic computing, parallel programming, performance evaluation of computer and communication systems

Alfonso F. Cardenas, Ph.D. (UCLA, 1969)

Database management, distributed heterogeneous and multimedia (text, image/picture, video, voice) systems, information systems planning and development methodologies, software engineering, medical informatics, legal and intellectual property issues

Jack W. Carlyle, Ph.D. (UC Berkeley, 1961)

Communication, computation theory and practice, algorithms and complexity, discrete system theory, developmental and probabilistic systems

Wesley W. Chu, Ph.D. (Stanford, 1966)

Distributed computing, distributed database, memory management, computer communications, performance measurement and evaluation for distributed systems and multiaccess packet-switched systems

Michael G. Dyer, Ph.D. (Yale, 1982)

Artificial intelligence; natural language processing; connectionist, cognitive, and animat-based modeling

Sheila A. Greibach, Ph.D. (Harvard, 1963)

Theoretical computer science, computational complexity, program schemes and semantics, formal languages, automata, computability

Leonard Kleinrock, Ph.D. (MIT, 1963)

Computer networks, computer-communication systems, resource sharing and allocation, computer systems modeling analysis and design, queueing systems theory and applications, performance evaluation of congestion-prone systems, performance evaluation and design of distributed multiaccess packet-switching systems, wireless networks, mobile computing, nomadic computing, and distributed and parallel processing systems

Allen Klinger, Ph.D. (UC Berkeley, 1966)

Pattern recognition, picture processing, biomedical applications, mathematical modeling

Lawrence P. McNamee, Ph.D. (U. Pittsburgh, 1964)

Computer graphics, discrete simulation, digital filtering, computer-aided design, LSI fabrication techniques, printed circuit board design

Richard R. Muntz, Ph.D. (Princeton, 1969)

Multimedia systems, database systems, data mining

D. Stott Parker, Jr., Ph.D. (U. Illinois, 1978)

Data mining, information modeling, scientific computing, bioinformatics, database and knowledge-based systems

Judea Pearl, Ph.D. (Polytechnic Institute of Brooklyn, 1965)

Artificial intelligence, philosophy of science, reasoning under uncertainty, causal inference, causal and counterfactual analysis

David A. Rennels, Ph.D. (UCLA, 1973)

Digital computer architecture and design, fault-tolerant computing, digital arithmetic

‡Jacques J. Vidal, Ph.D. (U. Paris-Sorbonne, France 1961)

Information processing in biological systems, with emphasis on neuroscience, cybernetics, online laboratory computer systems, and pattern recognition, analog and hybrid systems/signal processing

Associate Professors

Miryung Kim, Ph.D. (U. Washington, 2008)

Software engineering specifically on software evolution

Alexander Sherstov, Ph.D. (U. Texas Austin, 2009)

Complexity theory with a focus on communication and circuit complexity, computational learning theory, quantum computing

Yuval Tamir, Ph.D. (UC Berkeley, 1985)

Computer systems, computer architecture, software systems, parallel and distributed systems, dependable systems, cluster computing, reliable network services, interconnection networks and switches, multi-core architectures, reconfigurable systems

Assistant Professors

Kai-Wei Chang, Ph.D. (U. Illinois Urbana-Champaign, 2015)

Tractable machine learning methods for complex and big data, statistical approaches to natural language processing

Tyson Condie, Ph.D. (UC Berkeley, 2010)

Large-scale distributed data management, declarative languages, systems for machine learning and big data analysis

Jason Ernst, Ph.D. (UCLA, 2008)

Computational biology, bioinformatics, machine learning

Raghu Meka, Ph.D. (U. Texas Austin, 2011)

Complexity theory, pseudorandomness, algorithms, learning probability and data mining

Anthony J. Nowatzki, Ph.D. (U. Wisconsin Madison, 2016)

Hardware/software co-design, modeling, and optimization

Sriram Sankararaman, Ph.D. (UC Berkeley, 2010)

Computational biology, computational/statistical genomics, statistical machine learning probabilistic graphical models, Bayesian statistics

Yizhou Sun, Ph.D. (U. Illinois, 2012)

Information and social network analysis, data mining, database systems, statistics, information retrieval, machine learning and network science

Guy Van den Broeck, Ph.D. (Katholieke U. Leuven, Belgium, 2013)

Machine learning (statistical relational learning), knowledge representation and reasoning (graphical models, lifted probabilistic inference), applications of probabilistic reasoning and learning (probabilistic programming, probabilistic databases), artificial intelligence

Senior Lecturers S.O.E.

Paul R. Eggert, Ph.D. (UCLA, 1980)

Programming languages, operating systems principles, compilers, Internet

David A. Smallberg, M.S. (UCLA, 1978)

Programming languages, software development

Senior Lecturer S.O.E. Emeritus

Leon Levine, M.S. (MIT, 1949)

Computer methodology

Adjunct Professors

Deborah L. Estrin, Ph.D. (MIT, 1985)

Sensor networks, embedded network sensing, environmental monitoring, computer networks

David E. Heckerman, Ph.D. (UCLA, 1979)

Models and methods used for statistics and data analysis, machine learning, probability theory, decision theory, design of HIV vaccines, and genome-wide association studies

Van Jacobson, M.S. (U. Arizona, 1972)

Named data network (NDA), content-centric networking

Alan Kay, Ph.D. (U. Utah, 1969)

Object-oriented programming, personal computing, graphical user interfaces

Rupak Majumdar, Ph.D. (UC Berkeley, 2003)

Computer-aided verification of hardware and software systems; logic and automata theory; embedded, hybrid, and probabilistic systems

Peter S. Pao, Ph.D. (U. Michigan, 1975)

Optimizing technology investment and drive growth, knowledge management and technology networking to encourage free flow of knowledge and performance exchange

Peter L. Reiher, Ph.D. (UCLA, 1987)

Computer and network security, ubiquitous computing, file systems, distributed systems

Adjunct Associate Professor

Giovanni Pau, Ph.D. (U. Bologna, Italy, 1998)

Protocol design implementation and evaluation for QOS support in wired/wireless networks and vertical handover protocols and architectures

Adjunct Assistant Professors

Alexander Afanasyev, Ph.D. (UCLA, 2013)

Named data networking (NDN), information-centric networking (ICN)

Carey S. Nachenberg, M.S. (UCLA, 1995)

Anti-virus and intrusion detection technology

Ramin Ramezani, Ph.D. (Imperial College, London, England, 2014)

Logic and AI, inductive logic programming, constraint solving, machine learning, combined reasoning, signal processing

Ameet S. Talwalkar, Ph.D. (New York U., 2010)

Statistical machine learning, scalable data analytics, computational genomics

Bioinformatics

Lower-Division Courses

19. Fiat Lux Freshman Seminars. (1)

Seminar, one hour. Discussion of and critical thinking about topics of current intellectual importance, taught by faculty members in their areas of expertise and illuminating many paths of discovery at UCLA. P/NP grading.

99. Student Research Program. (1 to 2)

Tutorial (supervised research or other scholarly work), three hours per week per unit. Entry-level research for lower division students under guidance of faculty mentor. Students must be in good academic standing and enrolled in minimum of 12 units (excluding this course). Individual contract required; consult Undergraduate Research Center. May be repeated. P/NP grading.

Upper-Division Course

199. Directed Research in Bioinformatics. (2 to 4)

Tutorial, six to 12 hours. Limited to juniors/seniors. Supervised individual research under guidance of faculty mentor. Culminating paper required. May be repeated for credit. Individual contract required. Letter grading.

Computer Science

Lower-Division Courses

1. Freshman Computer Science Seminar. (1)

Seminar, one hour; discussion, one hour. Introduction to department resources and principal topics and key ideas in computer science and computer engineering. Assignments given to bolster independent study and writing skills. Letter grading. Mr. Gerla (F)

19. Fiat Lux Freshman Seminars. (1)

Seminar, one hour. Discussion of and critical thinking about topics of current intellectual importance, taught by faculty members in their areas of expertise and illuminating many paths of discovery at UCLA. P/NP grading.

31. Introduction to Computer Science I. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Introduction to computer science via theory, applications, and programming. Basic data types, operators and control structures. Input/output. Procedural and data abstraction. Introduction to object-oriented software development. Functions, recursion. Arrays, strings, pointers. Abstract data types, object-oriented programming. Examples and exercises from computer science theory and applications. Letter grading. Mr. Palsberg, Mr. Smallberg (F,W,Sp)

32. Introduction to Computer Science II. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 31. Object-oriented software development. Abstract data type definition and use. Overloading, inheritance, polymorphism. Object-oriented view of data structures: stacks, queues, lists. Algorithm analysis. Trees, graphs, and associated algorithms. Searching and sorting. Case studies and exercises from computer science applications. Letter grading. Mr. Nachenberg, Mr. Smallberg (W,Sp)

33. Introduction to Computer Organization. (5)

Lecture, four hours; discussion, two hours; outside study, nine hours. Enforced requisite: course 32. Introductory course on computer architecture, assembly language, and operating systems fundamentals. Number systems, machine language, and assembly language. Procedure calls, stacks, interrupts, and traps. Assemblers, linkers, and loaders. Operating systems concepts: processes and process management, input/output (I/O) programming, memory management, file systems. Letter grading. Mr. Eggert, Mr. Reinman (F,W,Sp)

35L. Software Construction Laboratory. (2)

Laboratory, four hours; outside study, two hours. Enforced requisite: course 31. Fundamentals of commonly used software tools and environments, particularly open-source tools to be used in upper division computer science courses. Letter grading. Mr. Eggert (F,W,Sp)

M51A. Logic Design of Digital Systems. (4)

(Same as Electrical and Computer Engineering M16.) Lecture, four hours; discussion, two hours; outside study, six hours. Introduction to digital systems. Specification and implementation of combinational and sequential systems. Standard logic modules and programmable logic arrays. Specification and implementation of algorithmic systems: data and control sections. Number systems and arithmetic algorithms. Error control codes for digital information. Letter grading. Mr. Ercegovac, Mr. Potkonjak (F,W,Sp)

97. Variable Topics in Computer Science. (1 to 4)

Lecture, one to four hours; discussion, zero to two hours. Designed for freshmen/sophomores. Variable topics in computer science not covered in regular computer science courses. May be repeated once for credit with topic or instructor change. Letter grading. Mr. Smallberg

99. Student Research Program. (1 to 2)

Tutorial (supervised research or other scholarly work), three hours per week per unit. Entry-level research for lower division students under guidance of faculty mentor. Students must be in good academic standing and enrolled in minimum of 12 units (excluding this course). Individual contract required; consult Undergraduate Research Center. May be repeated. P/NP grading.

Upper-Division Courses

111. Operating Systems Principles. (5)

Lecture, four hours; laboratory, two hours; outside study, nine hours. Enforced requisites: courses 32, 33, 35L. Introduction to operating systems design and evaluation. Computer software systems performance, robustness, and functionality. Kernel structure, bootstrapping, input/output (I/O) devices and interrupts. Processes and threads; address spaces, memory management, and virtual memory. Scheduling, synchronization. File systems: layout, performance, robustness. Distributed systems: networking, remote procedure call (RPC), asynchronous RPC, distributed file systems, transactions. Protection and security. Exercises involving applications using, and internals of, real-world operating systems. Letter grading. Mr. Kampe, Mr. Reiher (F,W,Sp)

112. Modeling Uncertainty in Information Systems. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: course 111 and one course from Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Designed for juniors/seniors. Probability and stochastic process models as applied in computer science. Basic methodological tools include random variables, conditional probability, expectation and higher moments, Bayes theorem, Markov chains. Applications include probabilistic algorithms, evidential reasoning, analysis of algorithms and data structures, reliability, communication protocol and queueing models. Letter grading. Mr. Sanadidi, Mr. Soatto (W)

114. Peer-to-Peer Systems. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 118. Optional: course 218. Fundamental concepts on peer-to-peer networks, such as distributed hash-tables, routing, searching, and related network management protocols (Join, Leave, death management, routing, table repair). Video streaming and Internet Protocol Television (IPTV) applications, with emphasis on thin clients such as PDAs and smart phones. Introduction to mesh-based and tree-based topologies for live streaming, with emphasis on key aspects of peer selection metrics and illustration of common optimization techniques (peer capacity, network delay). Hands-on approach to guide students to development and testing of actual experimental system on PlanetLab. Letter grading. Mr. Gerla (Not offered 2017-18)

M117. Computer Networks: Physical Layer. (4)

(Same as Electrical and Computer Engineering M117.) Lecture, two hours; discussion, two hours; laboratory, two hours; outside study, six hours. Not open to students with credit for course M171L. Introduction to fundamental computer communication concepts underlying and supporting modern networks, with focus on wireless communications and media access layers of network protocol stack. Systems include wireless LANs (IEEE802.11) and ad hoc wireless and personal area networks (e.g., Bluetooth, ZigBee). Experimental project based on mobile radio-equipped devices (smart phones, tablets, etc.) as sensor platforms for personal applications such as wireless health, positioning, and environment awareness, and experimental laboratory sessions included. Letter grading. Mr. Dzhanidze (F,W,Sp)

118. Computer Network Fundamentals. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 111. Designed for juniors/seniors. Introduction to design and performance evaluation of computer networks, including such topics as what protocols are, layered network architecture, Internet protocol architecture, network applications, transport protocols, routing algorithms and protocols, internetworking, congestion control, and link layer protocols including Ethernet and wireless channels. Letter grading. Mr. Afanasyev, Mr. Lu (F,W,Sp)

M119. Fundamentals of Embedded Networked Systems. (4)

(Same as Electrical and Computer Engineering M119.) Lecture, four hours; discussion, one hour; outside study, seven hours. Requisites: Civil and Environmental Engineering 110 or Electrical and Computer Engineering 131A or Mathematics 170A or Statistics 100A, course 118 or Electrical and Computer Engineering 132B, course 33. Design trade-offs and principles of operation of cyber physical systems such as devices and systems constituting Internet of Things. Topics include signal propagation and modeling, sensing, node architecture and operation, and applications. Letter grading. Mr. Srivastava (Sp)

CM121. Introduction to Bioinformatics. (4)

(Same as Chemistry CM160A.) Lecture, four hours; discussion, two hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Prior knowledge of biology not required. Designed for engineering students as well as students from biological sciences and medical school. Introduction to bioinformatics and methodologies, with emphasis on concepts and inventing new computational and statistical techniques to analyze biological data. Focus on sequence analysis and alignment algorithms. Concurrently scheduled with course CM221. P/NP or letter grading. Mr. Lee (F)

CM122. Algorithms in Bioinformatics and Systems Biology. (4)

(Same as Chemistry CM160B.) Lecture, four hours; discussion, two hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Course CM121 is not requisite to CM122. Designed for engineering students as well as students from biological sciences and medical school. Development and application of computational approaches to biological questions, with focus on formulating interdisciplinary problems as computational problems and then solving these problems using algorithmic techniques. Computational techniques include those from statistics and computer science. Concurrently scheduled with course CM222. Letter grading. Mr. Eskin (W)

CM124. Computational Genetics. (4)

(Same as Human Genetics CM124.) Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Designed for engineering students as well as students from biological sciences and medical school. Introduction to computational analysis of genetic variation and computational interdisciplinary research in genetics. Topics include introduction to genetics, identification of genes involved in disease, inferring human population history, technologies for obtaining genetic information, and genetic sequencing. Focus on formulating interdisciplinary problems as computational problems and then solving those problems using computational techniques from statistics and computer science. Concurrently scheduled with course CM224. Letter grading. Mr. Sankararaman (Sp)

130. Software Engineering. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisite: course 111. Recommended: Engineering 183EW or 185EW. Structured programming, program specification, program proving, modularity, abstract data types, composite design, software tools, software control systems, program testing, team programming. Letter grading. Mr. Eggert, Ms. Kim (F,W,Sp)

131. Programming Languages. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisites: courses 33, 35L. Basic concepts in design and use of programming languages, including abstraction, modularity, control mechanisms, types, declarations, syntax, and semantics. Study of several different language paradigms, including functional, object-oriented, and logic programming. Letter grading. Mr. Eggert, Mr. Millstein (F,W,Sp)

132. Compiler Construction. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: courses 131, 181. Compiler structure; lexical and syntactic analysis; semantic analysis and code generation; theory of parsing. Letter grading. Mr. Palsberg (F)

133. Parallel and Distributed Computing. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: courses 111 (may be taken concurrently), 131. Distributed memory and shared memory parallel architectures; asynchronous parallel languages: MPI, Maisie; primitives for parallel computation: specification of parallelism, interprocess communication and synchronization; design of parallel programs for scientific computation and distributed systems. Letter grading. Mr. Cong (Not offered 2017-18)

136. Introduction to Computer Security. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 118. Introduction to basic concepts of information security necessary for students to understand risks and mitigations associated with protection of systems and data. Topics include security models and architectures, security threats and risk analysis, access control and authentication/authorization, cryptography, network security, secure application design, and ethics and law. Letter grading. Mr. Reiher (Sp)

C137A. Prototyping Programming Languages. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 131. How different programming language paradigms provide dramatically different ways of thinking about computation and offer trade-offs on many dimensions, such as modularity, extensibility, expressiveness, and safety. Concrete exploration of three major programming paradigms—functional, object-oriented, and logic programming—by prototyping implementations of languages in each. Analysis of prototypes to shed light on design and structural properties of each language and paradigm and to allow easy comparison against one another. Hands-on experience implementing new abstractions, both as stand-alone languages and as libraries in existing languages. Concurrently scheduled with course C237A. Letter grading. Mr. Millstein (Not offered 2017-18)

C137B. Programming Language Design. (4)

Seminar, four hours; outside study, eight hours. Enforced requisite: course C137A. Study of various programming language designs, from computing history and research literature, that attempt to address problems of software systems that are bloated, buggy, and difficult to maintain and extend despite trend in computing toward ever higher levels of abstraction for programming. Hands-on experience designing, prototyping, and evaluating new languages, language abstractions, and/or programming environments. Concurrently scheduled with course C237B. Letter grading. Mr. Millstein (Not offered 2017-18)

143. Database Systems. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisite: course 111. Information systems and database systems in enterprises. File organization and secondary storage structures. Relational model and relational database systems. Network, hierarchical, and other models. Query languages. Database design principles. Transactions, concurrency, and recovery. Integrity and authorization. Letter grading. Mr. Cho, Mr. Condie (F)

144. Web Applications. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 143. Important concepts and theory for building effective and safe Web applications and first-hand experience with basic tools. Topics include basic Web architecture and protocol, XML and XML query language, mapping between XML and relational models, information retrieval model and theory, security and user model, Web services and distributed transactions. Letter grading. Mr. Cho (W)

145. Introduction to Data Mining. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 180. Introductory survey of data mining (process of automatic discovery of patterns, changes, associations, and anomalies in massive databases), knowledge engineering, and wide spectrum of data mining application areas such as bioinformatics, e-commerce, environmental studies, financial markets, multimedia data processing, network monitoring, and social service analysis. Letter grading. Ms. Wang (F, W)

M146. Introduction to Machine Learning. (4)

(Same as Electrical and Computer Engineering M146.) Lecture, four hours; discussion, one hour; outside study, seven hours. Requisites: Civil and Environmental Engineering 110 or Electrical and Computer Engineering 131A or Mathematics 170A or Statistics 100A, course 33. Introduction to breadth of data science. Foundations for modeling data sources, principles of operation of common tools for data analysis, and application of tools and models to data gathering and analysis. Topics include statistical foundations, regression, classification, kernel methods, clustering, expectation maximization, principal component analysis, decision theory, reinforcement learning and deep learning. Letter grading. Mr. Sankararaman (F, Sp)

M151B. Computer Systems Architecture. (4)

(Same as Electrical and Computer Engineering M116C.) Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: courses 33, and M51A or Electrical and Computer Engineering M16. Recommended: courses 111, and M152A or Electrical and Computer Engineering M116L. Computer system organization and design, implementation of CPU datapath and control, instruction set design, memory hierarchy (caches, main memory, virtual memory) organization and management, input/output subsystems (bus structures, interrupts, DMA), performance evaluation, pipelined processors. Letter grading. Mr. Reinman, Mr. Tamir (F,W,Sp)

151C. Design of Digital Systems. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses M151B, M152A. Design of complex digital systems using hierarchal approaches and regular structures. Combinational, sequential, and algorithmic systems. Microprogramming and firmware engineering. Cost/performance measures and technology constraints. Use of design tools. Design project. Letter grading. Mr. Ercegovac (Not offered 2017-18)

M152A. Introductory Digital Design Laboratory. (2)

(Same as Electrical and Computer Engineering M116L.) Laboratory, four hours; outside study, two hours. Enforced requisite: course M51A or Electrical and Computer Engineering M16. Hands-on design, implementation, and debugging of digital logic circuits, use of computer-aided design tools for schematic capture and simulation, implementation of complex circuits using programmed array logic, design projects. Letter grading. Mr. Potkonjak (F,W,Sp)

152B. Digital Design Project Laboratory. (4)

Laboratory, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course M151B or Electrical Engineering M116C. Recommended: Engineering 183EW or 185EW. Limited to seniors. Design and implementation of complex digital subsystems using field-programmable gate arrays (e.g., processors, special-purpose processors, device controllers, and input/output interfaces). Students work in teams to develop and implement designs and to document and give oral presentations of their work. Letter grading. Mr. Sarrafzadeh (F,W,Sp)

161. Fundamentals of Artificial Intelligence. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisite: course 180. Introduction to fundamental problem solving and knowledge representation paradigms of artificial intelligence. Introduction to Lisp with regular programming assignments. State-space and problem reduction methods, brute-force and heuristic search, planning techniques, two-player games. Knowledge structures including predicate logic, production systems, semantic nets and primitives, frames, scripts. Special topics in natural language processing, expert systems, vision, and parallel architectures. Letter grading. Mr. Darwiche, Mr. Korf, Mr. Van den Broeck (F,W,Sp)

170A. Mathematical Modeling and Methods for Computer Science. (4)

Lecture, four hours; laboratory, two hours; outside study, six hours. Enforced requisites: course 180, Mathematics 33B. Introduction to methods for modeling and simulation using interactive computing environments. Extensive coverage of methods for numeric and symbolic computation, matrix algebra, statistics, floating point, optimization, and spectral analysis. Emphasis on applications in simulation of physical systems. Letter grading. Mr. Parker (Not offered 2017-18)

M171L. Data Communication Systems Laboratory. (2 to 4)

(Same as Electrical and Computer Engineering M171L.) Laboratory, four to eight hours; outside study, two to four hours. Recommended preparation: course M152A. Limited to seniors. Not open to students with credit for course M117. Interpretation of analog-signaling aspects of digital systems and data communications through experience in using contemporary test instruments to generate and display signals in relevant laboratory setups. Use of oscilloscopes, pulse and function generators, baseband spectrum analyzers, desktop computers, terminals, modems, PCs, and workstations in experiments on pulse transmission impairments, waveforms and their spectra, modem and terminal characteristics, and interfaces. Letter grading. Mr. Gerla (Sp)

172. Real-Time Three-Dimensional Animation. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 32. Introduction to handling of geometry, appearance, and motion specifically for real-time virtual environments, both on theoretical and practical levels. Completion of one quality real-time three-dimensional animation by following through from preproduction to postproduction. End products expected to be game demonstrations, storytelling games, or machinima (use of real-time graphics engines to create cinematic productions). Focus on achieving highest quality productions to qualify and submit products to Student Academy Awards competition. Use of Unity Game Engine to make technical decisions to adapt stories to games. Introduction to interaction concepts, enabling students to create low-fidelity real-time three-dimensional animation and to concepts in artificial intelligence, enabling them to refine their interactions to create high-fidelity real-time three-dimensional animation. Letter grading. Ms. Ford (Not offered 2017-18)

174A. Introduction to Computer Graphics. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 32. Basic principles behind modern two- and three-dimensional computer graphics systems, including complete set of steps that modern graphics pipelines use to create realistic images in real time. How to position and manipulate objects in scene using geometric and camera transformations. How to create final image using perspective and orthographic transformations. Basics of modeling primitives such as polygonal models and implicit and parametric surfaces. Basic ideas behind color spaces, illumination models, shading, and texture mapping. Letter grading. Mr. Terzopoulos (F,W,Sp)

174B. Introduction to Computer Graphics: Three-Dimensional Photography and Rendering. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 174A. State of art in three-dimensional photography and image-based rendering. How to use cameras and light to capture shape and appearance of real objects and scenes. Process provides simple way to acquire three-dimensional models of unparalleled detail and realism. Applications of techniques from entertainment (reverse engineering and postprocessing of movies, generation of realistic synthetic objects and characters) to medicine (modeling of biological structures from imaging data), mixed reality (augmentation of video), and security (visual surveillance). Fundamental analytical tools for modeling and inferring geometric (shape) and photometric (reflectance, illumination) properties of objects and scenes, and for rendering and manipulating novel views. Letter grading. (Not offered 2017-18)

C174C. Computer Animation. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 174A. Designed for juniors/seniors. Introduction to computer animation, including basic principles of character modeling, forward and inverse kinematics, forward and inverse dynamics, motion capture animation techniques, physics-based animation of particles and systems, and motor control. Concurrently scheduled with course C274C. Letter grading. Mr. Terzopoulos (Not offered 2017-18)

180. Introduction to Algorithms and Complexity. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: course 32, Mathematics 61. Designed for junior/senior Computer Science majors. Introduction to design and analysis of algorithms. Design techniques: divide-and-conquer, greedy method, dynamic programming; selection of prototypical algorithms; choice of data structures and representations; complexity measures: time, space, upper, lower bounds, asymptotic complexity; NP-completeness. Letter grading. Mr. Meka, Mr. Sarrafzadeh (F,W,Sp)

181. Introduction to Formal Languages and Automata Theory. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 180. Designed for junior/senior Computer Science majors. Grammars, automata, and languages. Finite-state languages and finite-state automata. Context-free languages and pushdown story automata. Unrestricted rewriting systems, recursively enumerable and recursive languages, and Turing machines. Closure properties, pumping lemmas, and decision algorithms. Introduction to computability. Letter grading. Mr. Sahai, Mr. Sherstov (F,W,Sp)

183. Introduction to Cryptography. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Preparation: knowledge of basic probability theory. Enforced requisite: course 180. Introduction to cryptography, computer security, and basic concepts and techniques. Topics include notions of hardness, one-way functions, hard-core bits, pseudorandom generators, pseudorandom functions and pseudorandom permutations, semantic security, public-key and private-key encryption, key-agreement, homomorphic encryption, private information retrieval and voting protocols, message authentication, digital signatures, interactive proofs, zero-knowledge proofs, collision-resistant hash functions, commitment protocols, and two-party secure computation with static security. Letter grading. Mr. Ostrovsky (Not offered 2017-18)

M184. Introduction to Computational and Systems Biology. (2)

(Same as Bioengineering M184 and Computational and Systems Biology M184.) Lecture, two hours; outside study, four hours. Enforced requisites: one course from 31, Civil Engineering M20, Mechanical and Aerospace Engineering M20, or Program in Computing 10A, and Mathematics 3B or 31B. Survey course designed to introduce students to computational and systems modeling and computation in biology and medicine, providing motivation, flavor, culture, and cutting-edge contributions in computational biosciences and aiming for more informed basis for focused studies by students with computational and systems biology interests. Presentations by individual UCLA researchers discussing their active computational and systems biology research. P/NP grading. Mr. DiStefano (W, Sp)

M185. Research Opportunities in Computational and Systems Biology. (4)

(Same as Computational and Systems Biology M185.) Lecture, two hours; discussion, two hours. Requisites: course M184, Mathematics 32B, 33A, 33B, Life Sciences 4. Introduction to interdisciplinary laboratory research methods and research opportunities in computational and systems biology to prepare and initiate students for active engagement in research. Presentation of potential projects by faculty members and student visits to individual laboratories and participation in ongoing projects. P/NP or letter grading. Mr. DiStefano (W)

CM186. Computational Systems Biology: Modeling and Simulation of Biological Systems. (5)

(Same as Bioengineering CM186, Computational and Systems Biology M186, and Ecology and Evolutionary Biology M178.) Lecture, four hours; laboratory, three hours; outside study, eight hours. Corequisite: Electrical Engineering 102. Dynamic biosystems modeling and computer simulation methods for studying biological/biomedical processes and systems at multiple levels of organization. Control system, multicompartmental, predator-prey, pharmacokinetic (PK), pharmacodynamic (PD), and other structural modeling methods applied to life sciences problems at molecular, cellular (biochemical pathways/networks), organ, and organismic levels. Both theory- and data-driven modeling, with focus on translating biomodeling goals and data into mathematics models and implementing them for simulation and analysis. Basics of numerical simulation algorithms, with modeling software exercises in class and PC laboratory assignments. Concurrently scheduled with course CM286. Letter grading. Mr. DiStefano (Sp)

CM187. Research Communication in Computational and Systems Biology. (4)

(Same as Bioengineering CM187 and Computational and Systems Biology M187.) Lecture, four hours; outside study, eight hours. Requisite: course CM186. Closely directed, interactive, and real research experience in active quantitative systems biology research laboratory. Direction on how to focus on topics of current interest in scientific community, appropriate to student interests and capabilities. Critiques of oral presentations and written progress reports explain how to proceed with search for research results. Major emphasis on effective research reporting, both oral and written. Concurrently scheduled with course CM287. Letter grading. Mr. DiStefano (Sp)

188. Special Courses in Computer Science. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Special topics in computer science for undergraduate students taught on experimental or temporary basis, such as those taught by resident and visiting faculty members. May be repeated for credit with topic or instructor change. Letter grading. (W,Sp)

194. Research Group Seminars: Computer Science. (4)

Seminar, four hours; outside study, eight hours. Designed for undergraduate students who are part of research group. Discussion of research methods and current literature in field or of research of faculty members or students. May be repeated for credit. Letter grading. (F,W,Sp)

199. Directed Research in Computer Science. (2 to 8)

Tutorial, to be arranged. Limited to juniors/seniors. Supervised individual research or investigation under guidance of faculty mentor. Culminating paper or project required. May be repeated for credit with school approval. Individual contract required; enrollment petitions available in Office of Academic and Student Affairs. Letter grading. (F,W,Sp)

Graduate Courses

201. Computer Science Seminar. (2)

Seminar, four hours; outside study, two hours.Designed for graduate computer science students. Seminars on current research topics in computer science. May be repeated for credit. S/U grading. (F,W,Sp)

202. Advanced Computer Science Seminar. (4)

Seminar, four hours; outside study, eight hours. Preparation: completion of major field examination in computer science. Current computer science research into theory of, analysis and synthesis of, and applications of information processing systems. Each member completes one tutorial and one or more original pieces of work in one specialized area. May be repeated for credit. Letter grading.

205. Health Analytics. (4)

Lecture, four hours; outside study, eight hours. Enforced requisites: courses 31, 180. Recommended: statistics and probability, numerical methods, knowledge in programming languages. Applied data analytics course, with focus on healthcare applications. How to properly generate and analyze health data. Project-based course to learn about best practices in health data collection and validation. Exploration of various machine learning and data analytic tools to learn underlying structure of datasets to solve healthcare problems. Different machine learning concepts and algorithms, statistical models, and building of data-driven models. Big data analytics and tools for handling structured, unstructured, and semistructured datasets. Letter grading. Mr. Sarrafzadeh

211. Network Protocol and Systems Software Design for Wireless and Mobile Internet. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 118. Designed for graduate students. In-depth study of network protocol and systems software design in area of wireless and mobile Internet. Topics include (1) networking fundamentals: design philosophy of TCP/IP, end-to-end arguments, and protocol design principles, (2) networking protocols: 802.11 MAC standard, packet scheduling, mobile IP, ad hoc routing, and wireless TCP, (3) mobile computing systems software: middleware, file system, services, and applications, and (4) topical studies: energy-efficient design, security, location management, and quality of service. Letter grading. Mr. Lu (F)

212A. Queueing Systems Theory. (4)

Lecture, four hours; outside study, eight hours. Requisites: course 112, Electrical Engineering 131A. Resource sharing issues and theory of queueing (waiting-line) systems. Review of Markov chains and baby queueing theory. Method of stages. M/Er.1. Er m/1. Bulk arrival and bulk service systems. Series-parallel stages. Fundamentals of open and closed queueing networks. Intermediate queueing theory: M/G/1; G/M/m. Collective marks. Advanced queueing theory: G/G/1; Lindley integral equation; spectral solution. Inequalities, bounds, approximations. Letter grading. Mr. Gerla

M213A. Embedded Systems. (4)

(Same as Electrical and Computer Engineering M202A.) Lecture, four hours; outside study, eight hours. Requisite: course 111. Designed for graduate computer science and electrical engineering students. Methodologies and technologies for design of embedded systems. Topics include hardware and software platforms for embedded systems, techniques for modeling and specification of system behavior, software organization, real-time operating system scheduling, real-time communication and packet scheduling, low-power battery and energy-aware system design, timing synchronization, fault tolerance and debugging, and techniques for hardware and software architecture optimization. Theoretical foundations as well as practical design methods. Letter grading. Mr. Potkonjak, Mr. Srivistava

M213B. Energy-Aware Computing and Cyber-Physical Systems. (4)

(Same as Electrical and Computer Engineering M202B.) Lecture, four hours; outside study, eight hours. Requisite: course M51A or Electrical and Computer Engineering M16. Recommended: courses 111, and M151B or Electrical and Computer Engineering M116C. System-level management and cross-layer methods for power and energy consumption in computing and communication at various scales ranging across embedded, mobile, personal, enterprise, and data-center scale. Computing, networking, sensing, and control technologies and algorithms for improving energy sustainability in human-cyber-physical systems. Topics include modeling of energy consumption, energy sources, and energy storage; dynamic power management; power-performance scaling and energy proportionality; duty-cycling; power-aware scheduling; low-power protocols; battery modeling and management; thermal management; sensing of power consumption. Letter grading. Mr. Srivistava

216. Network Algorithmics. (4)

Lecture, four hours; outside study, eight hours. Recommended preparation: one course on networks. Requisite: course 211. Introduction to algorithms for routers and servers. Models of network devices and hardware design. Principles for efficient implementation. Lookup algorithms (exact match, prefix lookups, advanced cardiac life support), fair queuing implementations, crossbar and scalable switches, with examples from well-known networking devices. Advanced topics include traffic measurement and network security. Letter grading. Letter grading.

217A. Internet Architecture and Protocols. (4)

Lecture, four hours; outside study, eight hours. Enforced requisite: course 118. Focus on mastering existing core set of Internet protocols, including IP, core transport protocols, routing protocols, DNS, NTP, and security protocols such as DNSSEC, to understand principles behind design of these protocols, appreciate their design tradeoffs, and learn lessons from their operations. Letter grading. Ms. Zhang (Not offered 2017-18)

217B. Advanced Topics in Internet Research. (4)

Lecture, four hours; outside study, eight hours. Enforced requisite: course 217A. Designed for graduate students. Overview of Internet development history and fundamental principles underlying TCP/IP protocol design. Discussion of current Internet research topics, including latest research results in routing protocols, transport protocols, network measurements, network security protocols, and clean-slate approach to network architecture design. Fundamental issues in network protocol design and implementations. Letter grading. Ms. Zhang (Not offered 2017-18)

218. Advanced Computer Networks. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Requisites: courses 112, 118. Review of seven-layer ISO-OSI model. High-speed networks: LANs, MANs, ATM. Flow and congestion control; bandwidth allocation. Internetting. Letter grading. Mr. Gerla (F)

219. Current Topics in Computer System Modeling Analysis. (4)

Lecture, eight hours; outside study, four hours. Review of current literature in area of computer system modeling analysis in which instructor has developed special proficiency as consequence of research interests. Students report on selected topics. May be repeated for credit with consent of instructor. Letter grading. Mr. Lu (Sp)

CM221. Introduction to Bioinformatics. (4)

(Same as Bioinformatics M221, Chemistry CM260A, and Human Genetics M260A.) Lecture, four hours; discussion, two hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Prior knowledge of biology not required. Designed for engineering students as well as students from biological sciences and medical school. Introduction to bioinformatics and methodologies, with emphasis on concepts and inventing new computational and statistical techniques to analyze biological data. Focus on sequence analysis and alignment algorithms. Concurrently scheduled with course CM121. S/U or letter grading. Mr. Lee (F)

CM222. Algorithms in Bioinformatics and Systems Biology. (4)

(Same as Bioinformatics M222 and Chemistry CM260B.) Lecture, four hours; discussion, two hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Course CM221 is not requisite to CM222. Designed for engineering students as well as students from biological sciences and medical school. Development and application of computational approaches to biological questions, with focus on formulating interdisciplinary problems as computational problems and then solving these problems using algorithmic techniques. Computational techniques include those from statistics and computer science. Concurrently scheduled with course CM122. Letter grading. Mr. Eskin (W)

CM224. Computational Genetics. (4)

(Same as Bioinformatics M224 and Human Genetics CM224.) Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisites: course 32 or Program in Computing 10C with grade of C– or better, and one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Designed for engineering students as well as students from biological sciences and medical school. Introduction to computational analysis of genetic variation and computational interdisciplinary research in genetics. Topics include introduction to genetics, identification of genes involved in disease, inferring human population history, technologies for obtaining genetic information, and genetic sequencing. Focus on formulating interdisciplinary problems as computational problems and then solving those problems using computational techniques from statistics and computer science. Concurrently scheduled with course CM124. Letter grading. Mr. Sankararaman (Sp)

M225. Computational Methods in Genomics. (4)

(Same as Bioinformatics M225 and Human Genetics M265.) Lecture, two and one half hours; discussion, two and one half hours; outside study, seven hours. Limited to bioinformatics, computer science, human genetics, and molecular biology graduate students. Introduction to computational approaches in bioinformatics, genomics, and computational genetics and preparation for computational interdisciplinary research in genetics and genomics. Topics include genome analysis, regulatory genomics, association analysis, association study design, isolated and admixed populations, population substructure, human structural variation, model organisms, and genomic technologies. Computational techniques and methods include those from statistics and computer science. Letter grading. Mr. Eskin (Not offered 2017-18)

M226. Machine Learning in Bioinformatics. (4)

(Same as Bioinformatics M226 and Human Genetics M226.) Lecture, four hours; outside study, eight hours. Enforced requisite: course 32 or Program in Computing 10C with grade of C– or better. Recommended: one course from Biostatistics 100A, 110A, Civil Engineering 110, Electrical Engineering 131A, Mathematics 170A, or Statistics 100A. Familiarity with probability, statistics, linear algebra, and algorithms expected. Designed for engineering students as well as students from biological sciences and medical school. Biology has become data-intensive science. Bottleneck in being able to make sense of biological processes has shifted from data generation to statistical models and inference algorithms that can analyze these datasets. Statistical machine learning provides important toolkit in this endeavor. Biological datasets offer new challenges to field of machine learning. Examination of statistical and computational aspects of machine learning techniques and their application to key biological questions. Letter grading. Mr. Sankararaman (F)

M229S. Seminar: Current Topics in Bioinformatics. (4)

(Same as Biological Chemistry M229S and Human Genetics M229S.) Seminar, four hours; outside study, eight hours. Designed for graduate engineering students as well as students from biological sciences and medical school. Introduction to current topics in bioinformatics, genomics, and computational genetics and preparation for computational interdisciplinary research in genetics and genomics. Topics include genome analysis, regulatory genomics, association analysis, association study design, isolated and admixed populations, population substructure, human structural variation, model organisms, and genomic technologies. Computational techniques include those from statistics and computer science. May be repeated for credit with topic change. Letter grading. Mr. Eskin (Not offered 2017-18)

230. Software Engineering. (4)

Lecture, four hours; discussion, two hours. Recommended preparation for undergraduate students: prior software engineering course. Required preparation for graduate students: undergraduate-level knowledge of data structures and object-oriented program languages. As software systems become increasingly large and complex, automated software engineering analysis and development tools play important role in various software engineering tasks, such as design, construction, evolution, and testing and debugging of software systems. Introduction to foundations, techniques, tools, and applications of automated software engineering technology. Development, extension, and evaluation of mini automated software engineering analysis tool and assessment of how tool fits into software development process. Introduction to current research topics in automated software engineering. S/U or letter grading. Ms. Kim (Sp)

231. Types and Programming Languages. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 131. Introduction to static type systems and their usage in programming language design and software reliability. Operational semantics, simply-typed lambda calculus, type soundness proofs, types for mutable references, types for exceptions. Parametric polymorphism, let-bound polymorphism, polymorphic type inference. Types for objects, subtyping, combining parametric polymorphism and subtyping. Types for modules, parameterized modules. Formal specification and implementation of variety of type systems, as well as readings from recent research literature on modern applications of type systems. Letter grading. Mr. Millstein (F)

232. Static Program Analysis. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 132. Introduction to static analysis of object-oriented programs and its usage for optimization and bug finding. Class hierarchy analysis, rapid type analysis, equality-based analysis, subset-based analysis, flow-insensitive and flow-sensitive analysis, context-insensitive and context-sensitive analysis. Soundness proofs for static analyses. Efficient data structures for static analysis information such as directed graphs and binary decision diagrams. Flow-directed method inlining, type-safe method inlining, synchronization optimization, deadlock detection, security vulnerability detection. Formal specification and implementation of variety of static analyses, as well as readings from recent research literature on modern applications of static analysis. Letter grading. Mr. Palsberg

233A. Parallel Programming. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses 111, 131. Mutual exclusion and resource allocation in distributed systems; primitives for parallel computation: specification of parallelism, interprocess communication and synchronization, atomic actions, binary and multiway rendezvous; synchronous and asynchronous languages: CSP, Ada, Linda, Maisie, UC, and others; introduction to parallel program verification. Letter grading. Mr. Cong

233B. Verification of Concurrent Programs. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 233A. Formal techniques for verification of concurrent programs. Topics include safety, liveness, program and state assertion-based techniques, weakest precondition semantics, Hoare logic, temporal logic, UNITY, and axiomatic semantics for selected parallel languages. Letter grading. Mr. Bagrodia

234. Computer-Aided Verification. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 181. Introduction to theory and practice of formal methods for design and analysis of concurrent and embedded systems, with focus on algorithmic techniques for checking logical properties of hardware and software systems. Topics include semantics of reactive systems, invariant verification, temporal logic model checking, theory of omega automata, state-space reduction techniques, compositional and hierarchical reasoning. Letter grading. Mr. Majumdar

235. Advanced Operating Systems. (4)

Lecture, four hours. Preparation: C or C++ programming experience. Requisite: course 111. In-depth investigation of operating systems issues through guided construction of research operating system for PC machines and consideration of recent literature. Memory management and protection, interrupts and traps, processes, interprocess communication, preemptive multitasking, file systems. Virtualization, networking, profiling, research operating systems. Series of laboratory projects, including extra challenge work. Letter grading. Mr. Eggert

236. Computer Security. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses 111, 118. Basic and research material on computer security. Topics include basic principles and goals of computer security, common security tools, use of cryptographic protocols for security, security tools (firewalls, virtual private networks, honeypots), virus and worm protection, security assurance and testing, design of secure programs, privacy, applying security principles to realistic problems, and new and emerging threats and security tools. Letter grading. Mr. Palsberg, Mr. Reiher

C237A. Prototyping Programming Languages. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 131. How different programming language paradigms provide dramatically different ways of thinking about computation and offer trade-offs on many dimensions, such as modularity, extensibility, expressiveness, and safety. Concrete exploration of three major programming paradigms—functional, object-oriented, and logic programming—by prototyping implementations of languages in each. Analysis of prototypes to shed light on design and structural properties of each language and paradigm and to allow easy comparison against one another. Hands-on experience implementing new abstractions, both as stand-alone languages and as libraries in existing languages. Concurrently scheduled with course C137A. Letter grading. Mr. Millstein

C237B. Programming Language Design. (4)

Seminar, four hours; outside study, eight hours. Enforced requisite: course C237A. Study of various programming language designs, from computing history and research literature, that attempt to address problems of software systems that are bloated, buggy, and difficult to maintain and extend despite trend in computing toward ever higher levels of abstraction for programming. Hands-on experience designing, prototyping, and evaluating new languages, language abstractions, and/or programming environments. Concurrently scheduled with course C137B. Letter grading. Mr. Millstein

239. Current Topics in Computer Science: Programming Languages and Systems. (2 to 12)

Lecture, four hours; outside study, eight hours. Review of current literature in area of computer science programming languages and systems in which instructor has developed special proficiency as consequence of research interests. May be repeated for credit with topic change. Letter grading. Mr. Millstein

240A. Databases and Knowledge Bases. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 143. Theoretical and technological foundation of Intelligent Database Systems, that merge database technology, knowledge-based systems, and advanced programming environments. Rule-based knowledge representation, spatio-temporal reasoning, and logic-based declarative querying/programming are salient features of this technology. Other topics include object-relational systems and data mining techniques. Letter grading. Mr. Zaniolo (F)

240B. Advanced Data and Knowledge Bases. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses 143, 240A. Logical models for data and knowledge representations. Rule-based languages and nonmonotonic reasoning. Temporal queries, spatial queries, and uncertainty in deductive databases and object relational databases (ORDBs). Abstract data types and user-defined column functions in ORDBs. Data mining algorithms. Semistructured information. Letter grading. Mr. Parker, Mr. Zaniolo (Not offered 2017-18)

241B. Pictorial and Multimedia Database Management. (4)

Lecture, three and one half hours; discussion, 30 minutes; laboratory, one hour; outside study, seven hours. Requisite: course 143. Multimedia data: alphanumeric, long text, images/pictures, video, and voice. Multimedia information systems requirements. Data models. Searching and accessing databases and across Internet by alphanumeric, image, video, and audio content. Querying, visual languages, and communication. Database design and organization, logical and physical. Indexing methods. Internet multimedia streaming. Other topics at discretion of instructor. Letter grading. Mr. Cardenas

244A. Distributed Database Systems. (4)

Lecture, four hours; outside study, eight hours. File allocation, intelligent directory design, transaction management, deadlock, strong and weak concurrency control, commit protocols, semantic query answering, multidatabase systems, fault recovery techniques, network partitioning, examples, trade-offs, and design experiences. Letter grading. Mr. Condie (F)

246. Web Information Management. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses 112, 143, 180, 181. Designed for graduate students. Scale of Web data requires novel algorithms and principles for their management and retrieval. Study of Web characteristics and new management techniques needed to build computer systems suitable for Web environment. Topics include Web measuring techniques, large-scale data mining algorithms, efficient page refresh techniques, Web-search ranking algorithms, and query processing techniques on independent data sources. Letter grading. Mr. Cho (Sp)

249. Current Topics in Data Structures. (2 to 12)

Lecture, four hours; outside study, eight hours. Review of current literature in area of data structures in which instructor has developed special proficiency as consequence of research interests. Students report on selected topics. May be repeated for credit with consent of instructor. Letter grading. Mr. Parker (W,Sp)

251A. Advanced Computer Architecture. (4)

Lecture, four hours; outside study, eight hours. Requisite: course M151B. Recommended: course 111. Design and implementation of high-performance systems, advanced memory hierarchy techniques, static and dynamic pipelining, superscalar and VLIW processors, branch prediction, speculative execution, software support for instruction-level parallelism, simulation-based performance analysis and evaluation, state-of-art design examples, introduction to parallel architectures. Letter grading. Mr. Ercegovac, Mr. Tamir (F)

251B. Parallel Computer Architectures. (4)

Lecture, four hours; outside study, eight hours. Requisite: course M151B. Recommended: course 251A. SIMD and MIMD systems, symmetric multiprocessors, distributed-shared-memory systems, messages-passing systems, multicore chips, clusters, interconnection networks, host-network interfaces, switching element design, communication primitives, cache coherency, memory consistency models, synchronization primitives, state-of-art design examples. Letter grading. Mr. Ercegovac, Mr. Tamir (Not offered 2017-18)

252A. Arithmetic Algorithms and Processors. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 251A. Number systems: conventional, redundant, signed-digit, and residue. Types of algorithms and implementations. Complexity measures. Fast algorithms and implementations for two-operand addition, multioperand addition, multiplication, division, and square root. Online arithmetic. Evaluation of transcendental functions. Floating-point arithmetic and numerical error control. Arithmetic error codes. Residue arithmetic. Examples of contemporary arithmetic ICs and processors. Letter grading. Mr. Ercegovac (Not offered 2017-18)

256A. Advanced Scalable Architectures. (4)

Lecture, four hours; outside study, eight hours. Requisite: course M151B. Recommended: course 251A. State-of-art scalable multiprocessors. Interdependency among implementation technology, chip microarchitecture, and system architecture. High-performance building blocks, such as chip multiprocessors (CMPs). On-chip and off-chip communication. Mechanisms for exploiting parallelism at multiple levels. Current research areas. Examples of chips and systems. Letter grading. Mr. Tamir (Not offered 2017-18)

M258A. Design of VLSI Circuits and Systems. (4)

(Same as Electrical and Computer Engineering M216A.) Lecture, four hours; discussion, two hours; laboratory, four hours; outside study, two hours. Requisites: course M51A or Electrical and Computer Engineering M16, and Electrical and Computer Engineering 115A. Recommended: Electrical and Computer Engineering 115C. LSI/VLSI design and application in computer systems. Fundamental design techniques that can be used to implement complex integrated systems on chips. Letter grading.

M258C. LSI in Computer System Design. (4)

(Same as Electrical and Computer Engineering M216C.) Lecture, four hours; laboratory, four hours; outside study, four hours. Requisite: course M258A. LSI/VLSI design and application in computer systems. In-depth studies of VLSI architectures and VLSI design tools. Letter grading.

258F. Physical Design Automation of VLSI Systems. (4)

Lecture, four hours; outside study, eight hours. Detailed study of various physical design automation problems of VLSI circuits, including logic partitioning, floorplanning, placement, global routing, channel and switchbox routing, planar routing and via minimization, compaction and performance-driven layout. Discussion of applications of number of important optimization techniques, such as network flows, Steiner trees, simulated annealing, and generic algorithms. Letter grading. Mr. Cong

258G. Logic Synthesis of Digital Systems. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses M51A, 180. Detailed study of various problems in logic-level synthesis of VLSI digital systems, including two-level Boolean network optimization; multilevel Boolean network optimization; technology mapping for standard cell designs and field-programmable gate-array (FPGA) designs; retiming for sequential circuits; and applications of binary decision diagrams (BDDS). Letter grading. Mr. Cong

258H. Analysis and Design of High-Speed VLSI Interconnects. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses M258A, 258F. Detailed study of various problems in analysis and design of high-speed VLSI interconnects at both integrated circuit (IC) and packing levels, including interconnect capacitance and resistance, lossless and lossy transmission lines, cross-talk and power distribution noise, delay models and power dissipation models, interconnect topology and geometry optimization, and clocking for high-speed systems. Letter grading. Mr. Cong

259. Current Topics in Computer Science: System Design/Architecture. (2 to 12)

Lecture, four hours; outside study, eight hours. Review of current literature in area of computer science system design in which instructor has developed special proficiency as consequence of research interests. Students report on selected topics. May be repeated for credit with topic change. Letter grading. (F,W,Sp)

260. Machine Learning Algorithms. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Recommended requisite: course 180. Problems of identifying patterns in data. Machine learning allows computers to learn potentially complex patterns from data and to make decisions based on these patterns. Introduction to fundamentals of this discipline to provide both conceptual grounding and practical experience with several learning algorithms. Techniques and examples used in areas such as healthcare, financial systems, commerce, and social networking. Letter grading. Mr. Sha (F)

261A. Problem Solving and Search. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 180. In-depth treatment of systematic problem-solving search algorithms in artificial intelligence, including problem spaces, brute-force search, heuristic search, linear-space algorithms, real-time search, heuristic evaluation functions, two-player games, and constraint-satisfaction problems. Letter grading. Mr. Korf (Not offered 2017-18)

262A. Learning and Reasoning with Bayesian Networks. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 112 or Electrical Engineering 131A. Review of several formalisms for representing and managing uncertainty in reasoning systems; presentation of comprehensive description of Bayesian inference using belief networks representation. Letter grading. Mr. Darwiche (Not offered 2017-18)

M262C. Current Topics in Causal Modeling, Inference, and Reasoning. (4)

(Same as Statistics M241.) Lecture, four hours; outside study, eight hours. Requisite: one graduate probability or statistics course such as course 262A, Statistics 200B, or 202B. Review of Bayesian networks, causal Bayesian networks, and structural equations. Learning causal structures from data. Identifying causal effects. Covariate selection and instrumental variables in linear and nonparametric models. Simpson paradox and confounding control. Logic and algorithmization of counterfactuals. Probabilities of counterfactuals. Direct and indirect effects. Probabilities of causation. Identifying causes of events. Letter grading. Mr. Pearl

262Z. Current Topics in Cognitive Systems. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 262A. Additional requisites for each offering announced in advance by department. Theory and implementation of systems that emulate or support human reasoning. Current literature and individual studies in artificial intelligence, knowledge-based systems, decision support systems, computational psychology, and heuristic programming theory. May be repeated for credit with topic change. Letter grading. Mr. Pearl

263A. Language and Thought. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 130 or 131 or 161. Introduction to natural language processing (NLP), with emphasis on semantics. Presentation of process models for variety of tasks, including question answering, paraphrasing, machine translation, word-sense disambiguation, narrative and editorial comprehension. Examination of both symbolic and statistical approaches to language processing and acquisition. Letter grading. Mr. Dyer (Not offered 2017-18)

263C. Animats-Based Modeling. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 130 or 131 or 161. Animats are mobile/sensing animal-like software agents embedded in simulated dynamic environments. Emphasis on modeling: goal-oriented behavior via neurocontrollers, adaptation via reinforcement learning, evolutionary programming. Animat-based tasks include foraging, mate finding, predation, navigation, predator avoidance, cooperative nest construction, communication, and parenting. Letter grading. Mr. Dyer (F)

264A. Automated Reasoning: Theory and Applications. (4)

Lecture, four hours; laboratory, four hours; outside study, four hours. Requisite: course 161. Introduction to theory and practice of automated reasoning using propositional and first-order logic. Topics include syntax and semantics of formal logic; algorithms for logical reasoning, including satisfiability and entailment; syntactic and semantic restrictions on knowledge bases; effect of these restrictions on expressiveness, compactness, and computational tractability; applications of automated reasoning to diagnosis, planning, design, formal verification, and reliability analysis. Letter grading. Mr. Darwiche (Not offered 2017-18)

265A. Machine Learning. (4)

Lecture, four hours; outside study, eight hours. Requisites: courses 263A, 264A. Introduction to machine learning. Learning by analogy, inductive learning, modeling creativity, learning by experience, role of episodic memory organization in learning. Examination of BACON, AM, Eurisko, HACKER, teachable production systems. Failure-driven learning. Letter grading.

M266A. Statistical Modeling and Learning in Vision and Cognition. (4)

(Same as Statistics M232A.) Lecture, three hours. Preparation: basic statistics, linear algebra (matrix analysis), computer vision. Computer vision and pattern recognition. Study of four types of statistical models for modeling visual patterns: descriptive, causal Markov, generative (hidden Markov), and discriminative. Comparison of principles and algorithms for these models; presentation of unifying picture. Introduction of minimax entropy and EM-type and stochastic algorithms for learning. S/U or letter grading.

M266B. Statistical Computing and Inference in Vision and Cognition. (4)

(Same as Statistics M232B.) Lecture, three hours. Preparation: basic statistics, linear algebra (matrix analysis), computer vision. Introduction to broad range of algorithms for statistical inference and learning that could be used in vision, pattern recognition, speech, bioinformatics, data mining. Topics include Markov chain Monte Carlo computing, sequential Monte Carlo methods, belief propagation, partial differential equations. S/U or letter grading.

M268. Machine Perception. (4)

(Formerly numbered 268.) (Same as Electrical and Computer Engineering M206.) Lecture, four hours; discussion, two hours; outside study, six hours. Designed for graduate students. Computational aspects of processing visual and other sensory information. Unified treatment of early vision in man and machine. Integration of symbolic and iconic representations in process of image segmentation. Computing multimodal sensory information by neural-net architectures. Letter grading. Mr. Soatto (F)

268S. Seminar: Computational Neuroscience. (2)

Seminar, two hours; outside study, four hours. Designed for students undertaking thesis research. Discussion of advanced topics and current research in computational neuroscience. Neural networks and connectionism as paradigm for parallel and concurrent computation in application to problems of perception, vision, multimodal sensory integration, and robotics. May be repeated for credit. S/U grading.

269. Seminar: Current Topics in Artificial Intelligence. (4)

Seminar, to be arranged. Review of current literature and research practicum in area of artificial intelligence in which instructor has developed special proficiency as consequence of research interests. Students report on selected topics. May be repeated for credit with topic change. Letter grading. Mr. Terzopoulos (F)

C274C. Computer Animation. (4)

Lecture, four hours; discussion, two hours; outside study, six hours. Enforced requisite: course 174A. Introduction to computer animation, including basic principles of character modeling, forward and inverse kinematics, forward and inverse dynamics, motion capture animation techniques, physics-based animation of particles and systems, and motor control. Concurrently scheduled with course C174C. Letter grading. Mr. Terzopoulos (Not offered 2017-18)

275. Artificial Life for Computer Graphics and Vision. (4)

Lecture, four hours; outside study, eight hours. Enforced requisite: course 174A. Recommended: course 161. Investigation of important role that concepts from artificial life, emerging discipline that spans computational and biological sciences, can play in construction of advanced computer graphics and vision models for virtual reality, animation, interactive games, active vision, visual sensor networks, medical image analysis, etc. Focus on comprehensive models that can realistically emulate variety of living things (plants and animals) from lower animals to humans. Exposure to effective computational modeling of natural phenomena of life and their incorporation into sophisticated, self-animating graphical entities. Specific topics include modeling plants using L-systems, biomechanical simulation and control, behavioral animation, reinforcement and neural-network learning of locomotion, cognitive modeling, artificial animals and humans, human facial animation, and artificial evolution. Letter grading. Mr. Terzopoulos (Not offered 2017-18)

M276A. Pattern Recognition and Machine Learning. (4)

(Same as Statistics M231.) Lecture, three hours. Designed for graduate students. Fundamental concepts, theories, and algorithms for pattern recognition and machine learning that are used in computer vision, image processing, speech recognition, data mining, statistics, and computational biology. Topics include Bayesian decision theory, parametric and nonparametric learning, clustering, complexity (VC-dimension, MDL, AIC), PCA/ICA/TCA, MDS, SVM, boosting. S/U or letter grading. Mr. Zhu

280A-280ZZ. Algorithms. (4 each)

Lecture, four hours; outside study, eight hours. Requisite: course 180. Additional requisites for each offering announced in advance by department. Selections from design, analysis, optimization, and implementation of algorithms; computational complexity and general theory of algorithms; algorithms for particular application areas. Subtitles of some current sections: Principles of Design and Analysis (280A); Distributed Algorithms (280D); Graphs and Networks (280G). May be repeated for credit with consent of instructor and topic change. Letter grading:

280AP. Approximation Algorithms. (4) Lecture, four hours; outside study, eight hours. Requisite: course 180. Background in discrete mathematics helpful. Theoretically sound techniques for dealing with NP-Hard problems. Inability to solve these problems efficiently means algorithmic techniques are based on approximation—finding solution that is near to best possible in efficient running time. Coverage of approximation techniques for number of different problems, with algorithm design techniques that include primal-dual method, linear program rounding, greedy algorithms, and local search. Letter grading.

281A. Computability and Complexity. (4)

Lecture, four hours; outside study, eight hours. Requisite: course 181 or compatible background. Concepts fundamental to study of discrete information systems and theory of computing, with emphasis on regular sets of strings, Turing-recognizable (recursively enumerable) sets, closure properties, machine characterizations, nondeterminisms, decidability, unsolvable problems, “easy” and “hard” problems, PTIME/NPTIME. Letter grading. Mr. Ostrovsky (Not offered 2017-18)

M282A. Cryptography. (4)

(Same as Mathematics M209A.) Lecture, four hours; outside study, eight hours. Introduction to theory of cryptography, stressing rigorous definitions and proofs of security. Topics include notions of hardness, one-way functions, hard-core bits, pseudorandom generators, pseudorandom functions and pseudorandom permutations, semantic security, public-key and private-key encryption, secret-sharing, message authentication, digital signatures, interactive proofs, zero-knowledge proofs, collision-resistant hash functions, commitment protocols, key-agreement, contract signing, and two-party secure computation with static security. Letter grading. Mr. Ostrovsky (F)

M282B. Cryptographic Protocols. (4)

(Same as Mathematics M209B.) Lecture, four hours; outside study, eight hours. Requisite: course M282A. Consideration of advanced cryptographic protocol design and analysis. Topics include noninteractive zero-knowledge proofs; zero-knowledge arguments; concurrent and non-black-box zero-knowledge; IP=PSPACE proof, stronger notions of security for public-key encryption, including chosen-ciphertext security; secure multiparty computation; dealing with dynamic adversary; nonmalleability and composability of secure protocols; software protection; threshold cryptography; identity-based cryptography; private information retrieval; protection against man-in-middle attacks; voting protocols; identification protocols; digital cash schemes; lower bounds on use of cryptographic primitives, software obfuscation. May be repeated for credit with topic change. Letter grading. Mr. Ostrovsky (Sp)

M283A-M283B. Topics in Applied Number Theory. (4-4)

(Same as Mathematics M208A-M208B.) Lecture, three hours. Basic number theory, including congruences and prime numbers. Cryptography: public-key and discrete log cryptosystems. Attacks on cryptosystems. Primality testing and factorization methods. Elliptic curve methods. Topics from coding theory: Hamming codes, cyclic codes, Gilbert/Varshamov bounds, Shannon theorem. S/U or letter grading.

284A-284ZZ. Topics in Automata and Languages. (4 each)

Lecture, four hours; outside study, eight hours. Requisite: course 181. Additional requisites for each offering announced in advance by department. Selections from families of formal languages, grammars, machines, operators; pushdown automata, context-free languages and their generalizations, parsing; multidimensional grammars, developmental systems; machine-based complexity. Subtitles of some current and planned sections: Context-Free Languages (284A), Parsing Algorithms (284P). May be repeated for credit with consent of instructor and topic change. Letter grading. Mr. Sahai (Not offered 2017-18)

CM286. Computational Systems Biology: Modeling and Simulation of Biological Systems. (5)

(Same as Bioengineering CM286.) Lecture, four hours; laboratory, three hours; outside study, eight hours. Corequisite: Electrical Engineering 102. Dynamic biosystems modeling and computer simulation methods for studying biological/biomedical processes and systems at multiple levels of organization. Control system, multicompartmental, predator-prey, pharmacokinetic (PK), pharmacodynamic (PD), and other structural modeling methods applied to life sciences problems at molecular, cellular (biochemical pathways/networks), organ, and organismic levels. Both theory- and data-driven modeling, with focus on translating biomodeling goals and data into mathematics models and implementing them for simulation and analysis. Basics of numerical simulation algorithms, with modeling software exercises in class and PC laboratory assignments. Concurrently scheduled with course CM186. Letter grading. Mr. DiStefano (Not offered 2017-18)

CM287. Research Communication in Computational and Systems Biology. (4)

(Same as Bioengineering CM287.) Lecture, four hours; outside study, eight hours. Requisite: course CM286. Closely directed, interactive, and real research experience in active quantitative systems biology research laboratory. Direction on how to focus on topics of current interest in scientific community, appropriate to student interests and capabilities. Critiques of oral presentations and written progress reports explain how to proceed with search for research results. Major emphasis on effective research reporting, both oral and written. Concurrently scheduled with course CM187. Letter grading. Mr. DiStefano (Not offered 2017-18)

288S. Seminar: Theoretical Computer Science. (2)

Seminar, two hours; outside study, six hours. Requisites: courses 280A, 281A. Intended for students undertaking thesis research. Discussion of advanced topics and current research in such areas as algorithms and complexity models for parallel and concurrent computation, and formal language and automata theory. May be repeated for credit. S/U grading.

289A-289ZZ. Current Topics in Computer Theory. (2 to 12 each)

Lecture, four hours; outside study, eight hours. Review of current literature in area of computer theory in which instructor has developed special proficiency as consequence of research interests. Students report on selected topics. Letter grading:

289CO. complexity Theory. (4). Lecture, four hours; outside study, eight hours. Diagonalization, polynomial-time hierarchy, PCP theorem, randomness and de-randomization, circuit complexity, attempts and limitations to proving P does not equal NP, average-case complexity, one-way functions, hardness amplification. Problem sets and presentation of previous and original research related to course topics. Letter grading. Mr. Sahai (F)

289OA. online Algorithms. (4) Lecture, four hours; outside study, eight hours. Requisite: course 180. Introduction to decision making under uncertainty and competitive analysis. Review of current research in online algorithms for problems arising in many areas, such as data and memory management, searching and navigating in unknown terrains, and server systems. Letter grading.

289RA. randomized Algorithms. (4) Lecture, four hours; outside study, eight hours. Basic concepts and design techniques for randomized algorithms, such as probability theory, Markov chains, random walks, and probabilistic method. Applications to randomized algorithms in data structures, graph theory, computational geometry, number theory, and parallel and distributed systems. Letter grading.

M296A. Advanced Modeling Methodology for Dynamic Biomedical Systems. (4)

(Same as Bioengineering M296A and Medicine M270C.) Lecture, four hours; outside study, eight hours. Requisite: Electrical Engineering 141 or 142 or Mathematics 115A or Mechanical and Aerospace Engineering 171A. Development of dynamic systems modeling methodology for physiological, biomedical, pharmacological, chemical, and related systems. Control system, multicompartmental, noncompartmental, and input/output models, linear and nonlinear. Emphasis on model applications, limitations, and relevance in biomedical sciences and other limited data environments. Problem solving in PC laboratory. Letter grading. Mr. DiStefano

M296B. Optimal Parameter Estimation and Experiment Design for Biomedical Systems. (4)

(Same as Bioengineering M296B, Biomathematics M270, and Medicine M270D.) Lecture, four hours; outside study, eight hours. Requisite: course CM286 or M296A or Biomathematics 220. Estimation methodology and model parameter estimation algorithms for fitting dynamic system models to biomedical data. Model discrimination methods. Theory and algorithms for designing optimal experiments for developing and quantifying models, with special focus on optimal sampling schedule design for kinetic models. Exploration of PC software for model building and optimal experiment design via applications in physiology and pharmacology. Letter grading. Mr. DiStefano

M296C. Advanced Topics and Research in Biomedical Systems Modeling and Computing. (4)

(Same as Bioengineering M296C and Medicine M270E.) Lecture, four hours; outside study, eight hours. Requisite: course M296B. Research techniques and experience on special topics involving models, modeling methods, and model/computing in biological and medical sciences. Review and critique of literature. Research problem searching and formulation. Approaches to solutions. Individual MS- and PhD-level project training. Letter grading. Mr. DiStefano

M296D. Introduction to Computational Cardiology. (4)

(Same as Bioengineering M296D.) Lecture, four hours; outside study, eight hours. Requisite: course CM186. Introduction to mathematical modeling and computer simulation of cardiac electrophysiological process. Ionic models of action potential (AP). Theory of AP propagation in one-dimensional and two-dimensional cardiac tissue. Simulation on sequential and parallel supercomputers, choice of numerical algorithms, to optimize accuracy and to provide computational stability. Letter grading. Mr. DiStefano

298. Research Seminar: Computer Science. (2 to 4)

Seminar, two to four hours; outside study, four to eight hours. Designed for graduate computer science students. Discussion of advanced topics and current research in algorithmic processes that describe and transform information: theory, analysis, design, efficiency, implementation, and application. May be repeated for credit. S/U grading. (F,W,Sp)

375. Teaching Apprentice Practicum. (1 to 4)

Seminar, to be arranged. Preparation: apprentice personnel employment as teaching assistant, associate, or fellow. Teaching apprenticeship under active guidance and supervision of regular faculty member responsible for curriculum and instruction at UCLA. May be repeated for credit. S/U grading. (F,W,Sp)

495. Teaching Assistant Training Seminar. (2)

Seminar, four hours; outside study, two hours. Limited to graduate Computer Science Department students. Seminar on being effective teaching assistant, including preparation, classroom presentation, encouraging interactive discussion, active learning, office hours, review sessions, making up and grading assignments and exam questions, proctoring exams, and grading. S/U grading. Mr. Korf (F)

495B. Teaching with Technology. (2)

Seminar, two hours; outside study, four hours. Limited to graduate Computer Science Department teaching assistants. Seminar for teaching assistants covering how technology can be used to aid instruction in and out of classroom. S/U grading. Mr. Korf (Not offered 2017-18)

497D-497E. Field Projects in Computer Science. (4-4)

Fieldwork, to be arranged. Students are divided into teams led by instructor; each team is assigned one external company or organization that they investigate as candidate for possible computerization, submitting team report of their findings and recommendations. In Progress (497D) and S/U or letter (497E) grading.

596. Directed Individual or Tutorial Studies. (1 to 8)

Tutorial, to be arranged. Limited to graduate computer science students. Petition forms to request enrollment may be obtained from assistant dean, Graduate Studies. Supervised investigation of advanced technical problems. S/U grading.

597A. Preparation for M.S. Comprehensive Examination. (2 to 12)

Tutorial, to be arranged. Limited to graduate computer science students. Reading and preparation for M.S. comprehensive examination. S/U grading.

597B. Preparation for Ph.D. Preliminary Examinations. (2 to 16)

Tutorial, to be arranged. Limited to graduate computer science students. Preparation for Ph.D. preliminary examinations. S/U grading.

597C. Preparation for Ph.D. Oral Qualifying Examination. (2 to 16)

Tutorial, to be arranged. Limited to graduate computer science students. Preparation for oral qualifying examination, including preliminary research on dissertation. S/U grading.

598. Research for and Preparation of M.S. Thesis. (2 to 12)

599. Research for and Preparation of Ph.D. Dissertation. (2 to 16)

Tutorial, to be arranged. Limited to graduate computer science students. Petition forms to request enrollment may be obtained from assistant dean, Graduate Studies. S/U grading.


* Also Professor of Medicine

† Also Professor of Mathematics

‡ Member of Brain Research Institute