Computer Science

Program and Course Catalog


Subject Links

Scope and Objectives

BS in Computer Science and Engineering

BS in Computer Science

MS in Computer Science

MBA/MS Program

Doctorate in Computer Science

Lower Division Courses

Upper Division Courses

Graduate Courses


Professors

  Rajive L. Bagrodia, Ph.D. Alfonso F. Cardenas, Ph.D.
  Wesley W. Chu, Ph.D. Jason (Jinsheng) Cong, Ph.D.
  Joseph J. DiStefano III, Ph.D. Michael G. Dyer, Ph.D.
  Milos D. Ercegovac, Ph.D., Chair Deborah L. Estrin, Ph.D.
  Eliezer M. Gafni, Ph.D. Mario Gerla, Ph.D.
  Sheila A. Greibach, Ph.D Richard E. Korf, Ph.D.
  Richard R. Muntz, Ph.D. D. Stott Parker, Jr., Ph.D., Vice Chair
  Miodrag Potkonjak, Ph.D. Majid Sarrafzadeh, Ph.D.
  Carlo Zaniolo, Ph.D. Lixia Zhang, Ph.D.

 

Professors Emeriti


Algirdas A. Avizienis, Ph.D.
Bertram Bussell, Ph.D.
  Jack W. Carlyle, Ph.D. Gerald Estrin, Ph.D.
  Thelma Estrin, Ph.D. Leonard Kleinrock, Ph.D.
  Allen Klinger, Ph.D. Lawrence P. McNamee, Ph.D.
  Michel A. Melkanoff, Ph.D. Judea Pearl, Ph.D.
  Thomas A. Rogers, Ph.D. Jacques J. Vidal, Ph.D.

 

Associate Professors

  Adnan Y. Darwiche, Ph.D. Elias Koutsoupias, Ph.D.
  David A. Rennels, Ph.D., Vice Chair Stefano Soatto, Ph.D.
  Yuval Tamir, Ph.D.  

 

Assistant Professors

  Petros Faloutsos, Ph.D. Songwu Lu, Ph.D.
  Glenn Reinman, Ph.D.  


  Lecturer Senior Lecturer
     
  Paul Eggert, Ph.D.  
  David Smallberg, MS Leon Levine, M.S., Emeritus

 

Adjunct Professors

Andrew B. Kahng, Ph.D. Boris Kogan, Ph.D. Gerald J. Popek, Ph.D.
     
     

 

Adjunct Associate Professors

  Leon Alkalai, Ph.D. Peter L. Reiher, Ph.D.

 


Scope and Objectives

Computer science is concerned with the design, modeling, analysis, and applications of computer-related 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 strongly related studies of subjects in computer system architecture, computer network modeling and analysis, distributed computer systems, programming languages and systems, artificial intelligence, computer science theory, and scientific computing such as Bioinformatics.

The undergraduate and graduate studies and research projects in computer science are supported by extensive computing resources. In addition to the departmental computing facility, there are nearly a dozen laboratories specializing in areas such as distributed systems, multimedia computer communications, VSLI systems, VLSI CAD, and artificial intelligence. The Biocybernetics Laboratory is devoted to mul-tidisciplin-ary research involving the application of engineering and computer science methods to problems in biology and medicine.

The Bachelor of Science degree may be attained either through the computer science and engineering major or through the computer science major described below.

The School of Engineering and Applied Science 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 which enables students to obtain the M.S. in Computer Science and the M.B.A. (Master of Business Administration).


Bachelor of Science in Computer Science and Engineering

The ABET and CSAB accredited 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. This curriculum has major components from the Computer Science and Electrical 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, system programming, networking fundamentals, higher-level language skills, and application of these to systems. Students are prepared for employment in the high-technology industries that employ information and digital systems. 

Course requirements for this major can be found here
 

Bachelor of Science in Computer Science

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 major 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. 

The program is accredited by the Computing Accreditation Commission of ABET, 111 Market Place, Suite 1050, Baltimore, MD 21202-4012 - telephone:  410-347-7700.

Course requirements for this major can be found here


Graduate Study


Master's Degree in Computer Science

For requirements for the Graduate Certificate of Specialization, see Engineering Schoolwide Programs in the Curricula and Courses section of this catalog.

Admission forms, including a departmental supplement to the application, may be obtained by writing to the address given at the beginning of this listing or to the Office of the Associate Dean for Academic and Student Affairs, School of Engineering and Applied Science, UCLA, 6426 Boelter Hall, Box 951601, Los Angeles, CA 90095-1601.


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

The John E. Anderson Graduate School of Management and the Department of Computer Science in the School of Engineering and Applied Science offer a concurrent degree program which enables the student to complete the requirements for the M.S. in Computer Science and the M.B.A. in three academic years.

The MBA/MS program description and requirements can be found here.

Artificial intelligence; computer science theory; computer system architecture; computer programming languages and systems: foundation of programming and database and knowledge-based systems; computer network modeling and analysis; scientific computing (two options): biological systems, physical systems.

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.

Breadth Requirement. Candidates for the M.S. in Computer Science must satisfy the computer science breadth requirement by the end of the fourth quarter in graduate residence at UCLA. This requirement is satisfied by mastering the contents of six undergraduate courses in computer science chosen from the following two groups:

Group I: Four required courses or equivalent from Computer Science 51A, 143 or 180, 151B, 181.

Group II: Two required courses or equivalent from Computer Science 111, 112 or 118, 131 or 132, 161 or 163 or 168, 171 or 174, 172 or 173 or 270A.

In addition, for each degree the student must complete at least one class per quarter for three quarters of Computer Science 201 with grades of Satisfactory.

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 courses 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.

Consult the department.

Thesis Plan

The thesis is a report on the results of the student's investigation of a problem in the student's 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 show a significant style, organization, and depth of understanding of the subject. A student 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.


Doctoral Degree

In addition to meeting the requirements of the Graduate Division, applicants to the Ph.D. degree program in Computer Science are required to take the General Test of the Graduate Record Examination (GRE). In addition, applicants are required to take the Subject Test in Mathematics or Computer Science.

Applicants normally should have completed the requirements for the master's degree with at least a 3.25 grade-point average and have demonstrated creative ability. Normally the M.S. degree is required for admission to the Ph.D. program. Exceptional students, however, can be admitted to the Ph.D. program without having the M.S. degree.

Admission forms, including a departmental supplement to the application, may be obtained by writing to the address given at the beginning of this listing or to the Office of the Associate Dean for Academic and Student Affairs, School of Engineering and Applied Science, UCLA, 6426 Boelter Hall, Box 951601, Los Angeles, CA 90095-1601.

Artificial intelligence; computer science theory; computer system architecture; computer programming languages and systems: foundation of programming and database and knowledge-based systems; computer network modeling and analysis; scientific computing (two options): biological systems, physical systems.

Course Requirement. There is no formal course requirement for the Ph.D. degree, and the student may theoretically substitute examinations for coursework. Normally, however, the student takes courses to acquire the knowledge needed for preparation for the written and oral preliminary examinations. The basic program of study for the Ph.D. degree is built around one major field and two minor fields; the major and at least one minor must be in computer science. The major field corresponds to a body of knowledge contained in six courses, at least four of which are graduate courses, plus the current literature in the area of specialization. A detailed syllabus for each major field can be obtained from the Student Affairs Office in the Computer Science Department. Each minor field normally embraces a body of knowledge equivalent to three courses, at least two of which are graduate courses. 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. Candidates for the Ph.D. degree in Computer Science must satisfy the computer science breadth requirement by the end of the fourth quarter in graduate residence at UCLA. This requirement is satisfied by mastering the contents of six undergraduate courses in computer science chosen from the following two groups:

Group I: Four required courses or equivalent from Computer Science 51A, 143 or 180, 151B, 181.

Group II: Two required courses or equivalent from Computer Science 111, 112 or 118, 131 or 132, 161 or 163 or 168, 171 or 174, 172 or 173 or 270A.

In addition, for each degree the student must complete at least one class per quarter for three quarters of Computer Science 201 with grades of Satisfactory.

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 courses at UCLA.

For information on completing the Engineer degree, see Engineering Schoolwide Programs in the Curricula and Courses section of this catalog.

Written and Oral Qualifying Examinations

After mastering the body of knowledge defined in the three fields and passing the breadth requirement, the student takes a written preliminary examination in the major field. When the examination is passed and all coursework is completed, the student may be required to take an oral preliminary examination which encompasses the major and minor fields. The examination may be waived by the faculty on the recommendation of the major field committee for a student deemed to be making strong progress toward the degree. A student may not take a preliminary examination more than twice.

After passing the preliminary examination, the student should form a doctoral committee and prepare to take the University Oral Qualifying Examination. The doctoral committee consists of four faculty members, one of whom must be from outside the Computer Science Department. The nature and content of the 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.