Courses
ProfessorsDonald W. Anderson, Ph.D., Emeritus Richard K. Belew, Ph.D. Francine D. Berman, Ph.D. Kenneth L. Bowles, Ph.D., Emeritus Walter A. Burkhard, Ph.D. J. Lawrence Carter, Ph.D. Chung-Kuan Cheng, Ph.D. Andrew Chien, Ph.D. Garrison W. Cottrell, Ph.D. Jeanne Ferrante, Ph.D. Joseph A. Goguen, Ph.D. Fan Chung Graham, Ph.D. Ronald Graham, Ph.D. William E. Howden, Ph.D. Russell Impagliazzo, Ph.D. T. C. Hu, Ph.D. Ramesh C. Jain, Ph.D., Emeritus Andrew B. Kahng, Ph.D. Sidney Karin, Ph.D. (In-Residence) Alex Orailoglu, Ph.D. Alon Orlitsky, Ph.D. Joseph C. Pasquale, Ph.D. Ramamohan Paturi, Ph.D. Pavel Pevzner, Ph.D. Venkat P. Rangan, Ph.D. Larry Smarr, Ph.D. Walter J. Savitch, Ph.D. George Varghese, Ph.D. Victor D. Vianu, Ph.D. S. Gill Williamson, Ph.D. Associate ProfessorsScott B. Baden, Ph.D. Mihir Bellare, Ph.D. Bradley Calder, Ph.D. Charles P. Elkan, Ph.D. William G. Griswold, Ph.D. Keith Marzullo, Ph.D. Alexander Vardy, Ph.D. Assistant ProfessorsDaniele Micciancio, Ph.D. Yannis Papakonstantinou, Ph.D. Stefan Savage, Ph.D. Dean M. Tullsen, Ph.D. Geoffrey Voelker, Ph.D. Bennet S. Yee, Ph.D. Adjunct FacultyMichael J. Bailey, Ph.D. Samuel R. Buss, Ph.D. Walter H. Ku, Ph.D. Reagan Moore, Ph.D. George Polyzos, Ph.D. Jeffrey B. Remmel, Ph.D. J. B. Rosen, Ph.D. Terrence J. Sejnowski, Ph.D. Research FacultyHenri Casanova, Ph.D., Assistant Project Scientist Philip Papadopoulos, Ph.D., Associate Research Scientist Academic CoordinatorsPaul Kube, Ph.D. Gary Gillespie, M. Eng. |
Computer Science and Engineering (CSE)The Undergraduate ProgramsThe Department of Computer Science and Engineering offers computer science and computer engineering curricula leading to the degrees in B.S. in Computer Science, B.S. in Computer Engineering, and B.A. in Computer Science. The courses of study prepare students for graduate study in these fields as well as immediate employment. The B.A. degree is intended to provide a more flexible program of study allowing significant studies beyond computer science and engineering. These degrees are four-year endeavors. Students in the B.S. programs need to enroll in no more than sixteen units per quarter during their junior and senior years to meet their major requirements. The B.A. program has fewer major requirements. In addition, each student must satisfy general-education course requirements determined by the student's college. B.S. Computer Science ProgramThe lower-division B.S. computer science program is designed to provide a strong foundation in mathematics, physics, electrical engineering, programming methodology and skills, and computer organization. Upper-division core courses deal with the theory and design of algorithms, hardware, and software. Students can gain additional breadth and/or depth in computer science and engineering by an appropriate selection of technical electives. Students should have sufficient background in high school mathematics so that they can take freshman calculus in their first quarter. Courses in high school physics and computer programming, although helpful, are not required for admission to the program. The department requires a total of 134 units for the B.S. computer science program. There are three varieties of requirements: lower-division, upper-division, and technical electives. 1. LOWER-DIVISION REQUIREMENTS Students are expected to complete the following seventy units by the end of their sophomore year. Computer Science and Engineering: CSE 8B or 11, 12, 20 or Math. 15A, 21 or Math. 15B, and 30; twenty units. Note: Students without any programming experience are advised to take CSE 8A and then CSE 8B, instead of CSE 11. CSE 11 is a faster paced version of CSE 8A and CSE 8B, and requires experience in programming with a compiled language. Mathematics: Math. 20A-B, 21C, 21D, and 20F; twenty units. Physics: Phys. 2A-B-C; 12 units. Math. 20A is a prerequisite for Phys. 2A. Students whose performance on the Department of Mathematics placement test permits them to start with Math. 20B or a higher course may take Phys. 2A in the fall quarter of the freshman year; all others will take Phys. 2A in the winter quarter of the freshman year. Students who received high grades in both calculus and Physics in high school may substitute the major's sequence, Phys. 4A-B-C for Phys. 2A-B-C. Physics Lab: Phys. 2BL or 2CL or 2DL; two units. The lab course should be taken concurrently with the Phys. 2 or Phys. 4 sequence. Introduction to Electrical Engineering: ECE 53A-B; eight units. ECE 53A-B are courses that give a comprehensive introduction to electrical engineering. Probability and Statistics: Math.183; four units. Science/Mathematics Elective: Students are required to take one of the following four-unit science/mathematics courses: Phys. 2D, Math. 20E(2F), Chem. 6A, BILD 1, 10, 12, 14, 30. 2. UPPER-DIVISION REQUIREMENTS All B.S. computer science students are required to take CSE 100 or Math. 176, 101 or Math. 188, 105 or Math. 166, 120, 130, 131A-B, 140, 140L, 141 and 141L; forty units. Students are expected to complete almost all of these courses by the end of their junior year. If students want to accelerate their program, they should consider taking CSE 100 or Math. 176, CSE 105, and/or CSE 140 and 140L in the sophomore year. 3. TECHNICAL ELECTIVES B.S. computer science students are required to take six technical electives for a total of twenty-four units. Four electives must be computer science and engineering upper-division or graduate courses. The remaining two technical electives can be chosen from the wider set of courses that includes computer science and engineering upper-division courses, graduate courses, and other electives as listed under the section titled Electives. Other restrictions in the selection of technical electives are also given in the section Electives. 4. B.S. COMPUTER SCIENCE, SAMPLE PROGRAM
FALL WINTER SPRING______ FRESHMAN YEAR CSE 8A or CSE 11 CSE 12 CSE 20 or Math. 20A Math. 20B Math. 15A GE Phys. 2A Math. 21C GE Phys. 2B GE__________ SOPHOMORE YEAR CSE 21 or Math 15B Sci/Math Elec CSE 30 Math. 21D Math. 20F Math. 183 GE ECE 53A Phys 2BL or GE Phys. 2C 2CL or 2DL ECE 53B_____ JUNIOR YEAR CSE 100 or Math 176 CSE 101 or Math 188 CSE 120 CSE 140 CSE 141 CSE 130 CSE 140L CSE 141L CSE Tech Elec CSE 105 or Math 166 CSE Tech. Elec. GE GE GE______________________________ SENIOR YEAR CSE 131A CSE 131B CSE Tech Elec CSE Tech. Elec. Tech. Elec. Tech. Elec. GE GE GE__________ B.S. Computer Engineering Program(Curriculum is the same in both the CSE and ECE departments.) The B.S. computer engineering program is jointly administered by the Departments of Com-puter Science and Engineering and Electrical and Computer Engineering. Students wishing to take the computer engineering program must be admitted to one of the departments. The lower-division computer engineering program is designed to provide a strong foundation in mathematics, physics, electrical engineering, programming methodology and skills, and computer organization. Upper-division core courses deal with the theory and design of algorithms, hardware and software, as well as electronic systems. Students can gain additional breadth and/or depth in computer science and engineering by an appropriate selection of technical electives. Students should have sufficient background in high school mathematics so that they can take freshman calculus in their first quarter. Courses in high school physics and computer programming, although helpful, are not required for admission to the program. B.S. computer engineering program requires a total of 146 units. There are three varieties of requirements: lower-division, upper-division, and technical electives. 1. LOWER-DIVISION REQUIREMENTS Students are expected to complete the following seventy units by the end of their sophomore year. Computer Science and Engineering: CSE 8B or 11, 12, 20 or Math. 15A, 21 or Math. 15B, and CSE 30; twenty units. Note: Students without any programming experience are advised to take CSE 8A and then CSE 8B, instead of CSE 11. CSE 11 is a faster paced version of CSE 8A and CSE 8B, and requires experience in programming with a compiled language. Mathematics: Math. 20A-B, 21C, 21D, and 20F; twenty units. Physics: Phys. 2A-B-C-D; sixteen units. Math. 20A is a prerequisite for Phys. 2A. Students whose performance on the Department of Mathematics placement test permits them to start with Math. 20B or a higher course may take Phys. 2A in the fall quarter of the freshman year; all others will take Phys. 2A in the winter quarter of the freshman year. Students who received high grades in both calculus and physics in high school may substitute the major's sequence, Phys. 4A-B-C-D for Phys. 2A-B-C-D. Physics Lab: Phys. 2BL or 2CL or 2DL; two units. The lab courses should be taken concurrently with the Phys. 2 or Phys. 4 sequence. Introduction to Electrical Engineering: ECE 53A-B; eight units. ECE 53A-B are courses that give a comprehensive introduction to electrical engineering. Probability and Statistics: ECE 109; four units. 2. UPPER-DIVISION REQUIREMENTS All B.S. computer engineering students are required to take CSE 100 or Math. 176, 101 or Math. 188, 105 or Math. 166, 120, 131A-B, 140, 140L, 141, and 141L; thirty-six units. In addition, all B.S. computer engineering students have to fulfill the following upper-division ECE requirements. Linear Systems: ECE 101, ECE 171A or 161A; eight units. Electronic Circuits and Systems: ECE 102, ECE 108; eight units. If students want to accelerate their program, they should consider taking CSE 100 or Math. 176, CSE 105 or Math. 166, and/or CSE 140 and 140L in the sophomore year. 3. TECHNICAL ELECTIVES All B.S. computer engineering students are required to take six technical electives for a total of twenty-four units. One of these courses must be either ECE 111 or ECE 118. Of the remaining five courses, four must be computer science and engineering or electrical and computer engineering upper-division or graduate courses. The remaining course can be any computer science and engineering or electrical and computer engineering upper-division or graduate course, or any other course listed under the section titled Electives. Other restrictions in the selection of technical electives are also given in the section Electives. 4. B.S. COMPUTER ENGINEERING, SAMPLE PROGRAM
FALL WINTER SPRING________ FRESHMAN YEAR CSE 8A or CSE 11 CSE 12 CSE 20 Math. 20A Math. 20B or Math. 15A GE Phys. 2A Math. 21C GE Phys. 2B GE____________ SOPHOMORE YEAR CSE 21 or Math. 15B Math. 20F CSE 30 Math. 21D ECE 53A ECE 53B Phys. 2C ECE 109 Phys. 2D GE GE Phys. 2BL or 2CL or 2DL__ JUNIOR YEAR CSE 100 or Math 176 CSE 101 or Math. 188 CSE 105 or CSE 140 CSE 141 Math. 166 CSE 140L CSE 141L CSE 120 ECE 102 ECE 108 (Req. Tech. Elec.- GE GE ECE 111 or ECE 118) GE____________ SENIOR YEAR CSE 131A CSE 131B ECE 171A or ECE 101 CSE/ECE Tech. Elec. 161 or 162A CSE/ECE Tech. Elec. CSE/ECE Tech. Elec. CSE/ECE Tech. GE. GE Elec. Tech. Elec. GE____________ B.A. Computer Science ProgramThe B.A. computer science program gives students more latitude in designing their course of study. The lower-division program is designed to provide a strong foundation in mathematics, physics, programming methodology and skills, and computer organization. Upper-division core courses deal with the theory and design of algorithms, hardware, and software. Students can gain additional breadth and/or depth in computer science and engineering by an appropriate selection of technical electives. By requiring fewer technical electives, the B.A. computer science program serves those students desiring more time for undergraduate studies outside their major subject. The department requires a total of 104 units for the B.A. computer science program. There are three varieties of requirements: lower-division, upper-division, and technical electives. 1. LOWER-DIVISION REQUIREMENTS Students are expected to complete the following fifty-two units by the end of their sophomore year. Computer Science and Engineering: CSE 8B or 11, 12, 20 or Math. 15A, 21 or Math. 15B, and 30; twenty units. Note: Students without any programming experience are advised to take CSE 8A and then CSE 8B, instead of CSE 11. CSE 11 is a faster paced version of CSE 8A and CSE 8B, and requires experience in programming with a compiled language. Mathematics: Math. 20A-B, 21C, 21D, and 20F; twenty units. Physics: Phys. 2A-B-C; twelve units. Math. 20A is a prerequisite for Phys. 2A. Students whose performance on the Department of Mathematics placement test permits them to start with Math. 20B or a higher course may take Phys. 2A in the fall quarter of the freshman year; all others will take Phys. 2A in the winter quarter of the freshman year. Students who received high grades in both calculus and physics in high school may substitute the major's sequence, Phys. 4A-B-C for Phys. 2A-B-C. 2. UPPER-DIVISION REQUIREMENTS All B.A. computer science students are required to take CSE 100 or Math. 176, 101 or Math. 188, 105 or Math. 166, 120, 131A, 131B, 140, 140L, 141, and 141L; thirty-six units. Students are expected to complete almost all of these courses by the end of their junior year. If students want to accelerate their program, they should consider taking CSE 100 or Math. 176, CSE 105 or Math. 166, and/or CSE 140 and 140L in the sophomore year. 3. TECHNICAL ELECTIVES B.A. computer science students are required to take four technical electives for a total of sixteen units. Of these four electives, at least two must be computer science and engineering upper-division or graduate courses. The remaining two technical electives can be chosen from a wider set of courses that includes computer science and engineering upper-division courses, graduate courses, and other electives as listed under the section titled Electives. Other restrictions in the selection of technical electives are also given in the section Electives. 4. B.A. COMPUTER SCIENCE, SAMPLE PROGRAM
FALL WINTER SPRING________ FRESHMAN YEAR CSE 8A or CSE 11 CSE 12 CSE 20 Math. 20A Math 20B or Math 15A GE Phys. 2A Math. 21C GE Phys. 2B GE____________ SOPHOMORE YEAR CSE 21 or Math 15B Math. 20F CSE 30 Math. 21D GE GE Phys. 2C GE GE____________ JUNIOR YEAR CSE 100 or Math 176 CSE 101 or Math 188 CSE 120 CSE 140 CSE 141 CSE Tech. Elec CSE 140L CSE 141L GE CSE 105 or Math 166 GE GE____________ SENIOR YEAR CSE 131A CSE 131B Tech. Elec. CSE Tech. Elec. Tech. Elec. GE____________________________________________________ ElectivesThe discipline of computer science and engineering interacts with a number of other disciplines in a mutually beneficial way. These disciplines include mathematics, electrical engineering, and cognitive science. The following is a list of upper-division courses from these and other disciplines that can be counted as technical electives. At most four units of CSE 197, 198, or 199 may be used towards technical elective requirements. CSE 195 cannot be used towards course requirements. Undergraduate students must get instructor's permission and departmental stamp to enroll in a graduate course. Students may not get duplicate credit for equivalent courses. The UCSD General Catalog should be consulted for equivalency information and any restrictions placed on the courses. Additional restrictions are noted below. Any deviation from this list must be petitioned. Mathematics: All upper-division courses except Math. 168A-B, 179A-B (Math. 183Computer Engineering majors only), 184A-B, 189A-B, and 195-199. If a student has completed CSE 167, then he or she cannot get elective credit for Math. 155A. Students may receive elective credit for only one of the following courses: CSE 164A, Math. 174, Math. 173, Phys. 105A-B, CENG 100, MAE 107. No credit for any of these courses will be given if Math. 170A-B-C is taken. Students may receive credit for either one of the following: Math. 166 or CSE 105 (but not both), Math. 188 or CSE 101 (but not both), Math. 176 or CSE 100 (but not both). Credit will be given for only one of the following: ECE 109 or Math. 183 or Econ. 120A. Electrical and Computer Engineering: All ECE upper-division courses except 195-199. CSE 143 is equivalent to ECE 165. Students may not get credit for both CSE 123A and ECE 158A. Credit will be given for only one of the following: ECE 109 or Math. 183 or Econ. 120A. Cognitive Science: Theory and Cognitive Phenomena 101A-B-C, Cognitive Neuroscience 107A-B-C, Theory of Computation and Formal Systems 108A, Symbolic Modeling of Cognition 108B, Neural Network Models of Cognition I 108C, Everyday Cognition 130, Distributed Cognition 131, Cognitive Engineering 132, Semantics 150, Language Comprehension 153, Natural and Artificial Symbolic Representational Systems 170, Neural Network Models of Cognition II 181, Artificial Intelligence Modeling II 182, Multimedia Design 187A-B. Students may not get credit for both CSE 150 and Neural Network Models of Cognition I 108C or for both CSE 151 and Artificial Intelligence Modeling II 182. Mechanical and Aerospace Engineering: All upper-division MAE courses except MAE 140 (ONLY Computer Science majors may take MAE 140) and 195-199. Students may receive elective credit for only one of the following courses: CSE 164A, Math. 174, Math. 173, Phys. 105A-B, CENG 100, MAE 107. Students may only get credit for one of the two courses, CSE 167 or MAE 152. Economics: Microeconomics 100A-B, Game Theory 109, Macroeconomics 110A-B, Mathematical Economics 113, Econometrics 120A-B-C, Applied Econometrics 121, Management Science Microeconomics 170A-B, Decisions Under Uncertainty 171, Introduction to Operations Research 172A-B-C, Economic and Business Forecasting 178. Credit will be given for only one of the following: ECE 109 or Math. 183 or Econ. 120A. Linguistics: Phonetics 110, Phonology I 111, Phonology II 115, Morphology 120, Syntax I 121, Syntax II 125, Semantics 130, Mathematical Analysis of Language 160, Computers and Language 163, Computational Linguistics 165, Psycholinguistics 170, Language and the Brain 172, and Sociolinguistics 175. Engineering: Team Engineering 101. Music: Computer Music II 172, Audio Production: Mixing and Editing 173. Psychology: Engineering Psychology 161 Minor and Program of ConcentrationThe CSE minor requires successful completion of a total of nine CSE courses. To be admitted into the minor, students must have a 2.5 GPA and a C- or better in CSE 8B or 11, 12, 20, 21, 30. The remaining four CSE courses are CSE 100, CSE 101, and two additional CSE upper-division courses subject to enforcement of prerequisites. In order for the minor to be awarded students must receive an average 2.0 GPA in the upper-division courses. Note: Students without any programming experience are advised to take CSE 8A and then CSE 8B, instead of CSE 11. CSE 11 is a faster paced version of CSE 8A and CSE 8B, and requires experience in programming with a compiled language. Students should consult their college provost's office concerning the rules for the minor or program of concentration. Because our undergraduate program is highly impacted, winter or spring enrollment is recommended for CSE 8A or CSE 8B or CSE 11. Effective Fall 2000, Mathematics/Computer Science Majors will not be allowed the Minor in Computer Science. Computing Courses for Non-MajorsThe department offers slower-paced courses providing a practical introduction to computers, computation, and programming: CSE 1an introduction to computers and CSE 5Aan introduction to structured programming using the C/Java programming language. Policies and Procedures for CSE UndergraduatesADMISSION TO MAJORS Freshman students who have excelled in high school and have declared CSE on their application will be directly admitted by the dean of the School of Engineering into their major. The only way to become a computer science (CS) or computer engineering (CE) major is to be directly admitted as an entering freshman (transfer students see TRANSFER STUDENT section below) These students will be notified directly of their status. Because of heavy student interest in departmental programs, and the limited resources available to accommodate this demand, maintenance of a high quality program makes it necessary to limit enrollments to the most qualified students. Admission to the department as a major, transfer, or minor is in accordance with the general requirements established by the School of Engineering. Effective fall 1998, pre-major status is limited to selected transfer students. These requirements and procedures are described in detail in the section on Admission to the School of Engineering in this catalog. For enrollment in CSE courses, see the following section. Space permitting and in its sole discretion, the computer science and engineering department may periodically grant admission to the Compu-ter Science (CS) or Computer Engineering (CE) majors to a small number of academically exceptional UCSD undergraduate students who were not admitted to these majors as entering students. Exceptional admission will be considered for students having an overall UCSD GPA of 3.5 or better who have taken at least two CSE, math, or science courses demonstrating special aptitude for the CS or CE curriculum. Applications for exceptional admission must include submission of a course plan demonstrating ability to satisfy graduation requirements and a personal statement addressing the applicant's motivation to join the CS or CE major, in addition to other criteria established by the department. TRANSFER STUDENTS The B.S. or B.A. in Computer Science and the B.S. in Computer Engineering are heavily impacted majors and admission is limited to applicants who have demonstrated a high level of achievement commensurate with the prospect of success in these majors. Successful applicants must have completed substantial training at the community college and must have achieved a high level of academic performance there. For example, the required minimum of 90 quarter transfer units must include 18 quarter units of calculus, 12 quarter units of calculus-based physics, and the highest level computer science course offered at their community college. Effective fall 2001 applicants seeking admission as transfer students will be considered for direct admission into the Computer Science (CS) or Computer Engineering (CE) majors in the Department of Computer Science & Engineering (CSE). The only way to become a computer science (CS) or computer engineering (CE) major is to be directly admitted as an entering transfer student. Although the actual required GPA cutoff depends on the number of openings, at least a 3.2 GPA in the community college transfer courses, and a 3.4 GPA in math, physics and computer science courses, are likely to be needed to gain admission. Transfer students who have declared pre-CSE will be considered for direct admission to the major. Space permitting and in its sole discretion, the computer science and engineering department may periodically grant admission to the Compu-ter Science (CS) or Computer Engineering (CE) majors to a small number of academically exceptional UCSD undergraduate students who were not admitted to these majors as entering students. Exceptional admission will be considered for students having an overall UCSD GPA of 3.5 or better who have taken at least two CSE, math, or science courses demonstrating special aptitude for the CS or CE curriculum. Applications for exceptional admission must include submission of a course plan demonstrating ability to satisfy graduation requirements and a personal statement addressing the applicant's motivation to join the CS or CE major, in addition to other criteria established by the department. ENROLLMENT IN CSE COURSES Student demands exceed capacity in many CSE courses. Accordingly, many
CSE courses may have enrollment restrictions which give priority to students
in the following order:
Where these restrictions apply, the registrar will not enroll low-priority students in the course. ENROLLING IN UPPER-DIVISION COURSES The Department of Computer Science and Engineering will attempt to provide sufficient sections of all lower-division courses. Students will, however, be screened to ensure that they meet all course enrollment restrictions. Admission to upper-division courses will be restricted to students having completed all prerequisites with a C- or better (or consent of the instructor.) Courses have enrollment restrictions which give priority in the following order: students admitted by the department to a major or minor curriculum; students fulfilling a requirement for another major; all others. Within these categories, priority is determined on the basis of graduation date and/or credits completed. Where these restrictions apply, the registrar will not enroll nonmajors except by department approval. Students who are undeclared will not be admitted to upper-division computer science and engineering courses. Those students not in compliance with the above restrictions should be forewarned that they will automatically be dropped from course rosters (at any time during the quarter) when it comes to the attention of the department that a student is enrolled in a course without being eligible because of restrictions and/or the performance standards have not been met. Admission to all computer science and engineering courses will require obtaining either authorization through telephone registration or department stamps on an add/drop card, and it will be given only by the student affairs personnel. GRADUATION REQUIREMENTS All upper-division major requirements and technical electives except CSE 197, 198, or 199 must be taken for a letter grade. To graduate, a grade-point average of 2.0 will be required in upper-division courses in the major, including technical electives. In addition, each student must satisfy general-education course requirements determined by the student's college, as well as major requirements determined by the department. The five colleges at UCSD require widely different numbers of general-education courses. Each student should choose his or her college carefully, considering the special nature of the college and breadth of education, realizing that some colleges require considerably more courses than others. Five-Year Bachelor's-Master's ProgramUndergraduate students in the Department of Computer Science and Engineering who are enrolled in the B.S. or B.A. computer science or B.S. computer engineering degree programs, and who have a cumulative GPA of a 3.4 and also a GPA of 3.4 in at least seven of the nine core courses, are eligible to apply for the Five Year Bachelor's-Master's Degree Program. The deadline to apply is the fourth week of the fourth quarter before graduation. Acceptance into this program is an honor which carries with it practical benefitsthe graduate application process is simplified (no GREs required), students accepted into this program can be admitted fall, winter, and spring quarter, based upon availability of openings in the program. Advanced students are given access to graduate level courses and have the opportunity to do graduate level research earlier under the direct supervision of UCSD's faculty, and students are able to complete the B.A., B.S., and M.S. degree within a five-year time period. Courses taken can be used toward either the B.A., B.S., or M.S. degree, but not counted toward both degrees. Additional information and applications can be obtained by contacting the CSE Student Affairs Office, APM 3402. The Graduate ProgramThe graduate program offers master of science and doctor of philosophy degrees in computer science and computer engineering. To be accepted into either course of study, a student must have a B.A./B.S. degree in computer science, computer engineering, or a related area. The graduate program is concerned with fundamental aspects of computation; emphasis is divided among the areas of theory, hardware, software systems, and artificial intelligence. The computer engineering specialization places a greater emphasis on hardware and the design of computer systems. Admission to the graduate program is done through the Office of Graduate
Admissions, Department of CSE. Deadline for application is January 8.
Admissions are always effective the following fall quarter. For admission
requirements, please refer to the departmental Web page: Admission decisions for the M.S. and Ph.D. programs are made separately. An M.S. student who wishes to enter the Ph.D. program must submit a new application to the CSE admissions committee. Computer Science ProgramMaster of Science Program The department offers the master of science degree in computer science. The degree can be pursued under either the Thesis Plan I or the Comprehensive Examination Plan II. Each plan requires forty-nine units of work. For full-time students, all the requirements must be completed within two years. Students with an adequate background in computer science can complete the M.S. program within four to five quarters of full-time study. THESIS OR COMPREHENSIVE EXAM There are two plans of study for the master's degree: Plan I, in which the student writes a thesis, and Plan II, in which the student takes a set of comprehensive exams. Plan I: Thesis Option, No Comprehensive Exam This plan involves both course work and research, culminating in the preparation of a thesis. The student must take twelve units of CSE 298 (Independent Study) to fulfill the research requirement, and a thesis based on research must be written and subsequently reviewed by the thesis committee. This committee, which is appointed by the dean of Graduate Studies and Research, consists of three faculty members, with at least two members from within the CSE department. Plan II: Comprehensive Examination, No Thesis Under this plan, the student must pass a written comprehensive examination designed to test the student's knowledge in basic computer science material. The examination can normally be passed with a thorough knowledge of topics covered in the undergraduate and first-year graduate computer science programs. It is offered every year in the first few weeks of the fall quarter and in the first few weeks of the spring quarter. Each student is allowed three attempts to pass the examination. The student must secure at least a master's-level pass in the written comprehensive examination. More information regarding the comprehensive examination can be found in a separate document provided by the CSE graduate office. In particular, the written examination is structured around the three CSE core areas: algorithms and data structures; operating systems; and computer architecture and digital logic design. Required Courses Students entering the M.S. Program in Computer Science will choose an area of concentration from among twelve areas. Each concentration is an area in which the faculty has significant research expertise. The typical concentration is a collection of three courses which are designed to give the student in-depth training in the chosen field. Additionally, to ensure breadth, all students are required to take four core courses. Core courses must be completed with an average grade of B and no grade
below B. The four core courses required of all students are as follows: CSE 202. Algorithms Design and Analysis The department expects to offer concentrations in the following areas: Artificial Intelligence The specific courses involved in each of the concentrations are detailed in a separate bulletin which is available in the Graduate Student Affairs Office, 3402 AP&M. Project Students electing Plan II are required to execute a project while enrolled in four units of CSE 293. Electives In addition to completing the required core courses and fulfilling either the thesis or comprehensive examination requirements described above, the student must also complete additional approved courses to bring the total number of units to forty-nine. The number of units of electives depends upon whether the student chooses Plan I or Plan II. The electives consist of other CSE graduate courses or courses from a list of approved electives. Units obtained in the courses CSE 293, 298, 299, 501, 502, and any of the seminar courses CSE 209, 229, 259, 269, 290, and 294 do not count toward the elective requirement. Doctoral ProgramThe general requirements for the Ph.D. program are stated in the Graduate Studies section of the catalog. A brief summary of the general requirements is also provided in the section titled All Doctoral Programs. Consistent with these requirements, the department has established a set of requirements to be fulfilled in the first two to three years of the Ph.D. program as described below. COURSE REQUIREMENTS Ph.D. students are expected to complete the course requirements in the first two years of the program. They are expected to maintain, on an annual basis, a 3.4 grade-point average for the core courses. Ph.D. students entering with a master's degree may petition for a waiver of the core courses or for substitution by alternative courses. CORE COURSES Each Ph.D. student must take all of the following courses. A student
typically completes all the core courses within the first year of the
graduate study. CSE 200 ELECTIVES Each Ph.D. student must take sixteen units of technical electives consisting of other CSE graduate courses or approved alternatives. TEACHING ASSISTANTSHIP REQUIREMENT Effective fall 1998, all students enrolled in the Ph.D. program must
have one quarter of training as a teaching assistant. This is a formal
degree requirement and must be completed before the student is permitted
to graduate. The requirement is met in one of two ways:
COMPREHENSIVE EXAMINATION REQUIREMENT The comprehensive examination for Ph.D. students consists of two parts. The first part is a written examination, identical to that required for master's degree students. This examination tests the student's knowledge of basic computer science and can be passed with a thorough knowledge of undergraduate and first-year graduate computer science material. The written examination is structured around the following five CSE core areas: algorithms and data structures; computability, complexity and logic; programming languages; operating systems; and computer architecture and digital logic design. It is offered every year in the first few weeks of the fall quarter and in the first few weeks of the spring quarter. Each student is allowed three attempts to pass the examination. All Ph.D. students should complete their written comprehensive examination successfully within two years following the quarter in which they are admitted to the Ph.D. program. However, a student typically completes the written part of the comprehensive examination successfully by the fall quarter of the second year. More information regarding the comprehensive examination can be found in a separate document provided by the CSE graduate office. RESEARCH EXAMINATION REQUIREMENT The second part of the examination for Ph.D. students is an oral research examination designed to get an early assessment of the Ph.D. student's research ability in some field in computer science. The content of this exam is developed by the student in collaboration with a faculty adviser in CSE. Students are expected to take this examination within one year following the quarter in which they pass the written comprehensive examination. Computer Engineering ProgramComputer engineering, jointly administered between the CSE and ECE departments, offers the master of science and doctoral degrees with the degree title computer science and engineering (computer engineering). Computer engineering explores the engineering analysis and design aspects of algorithms and technology. Specific research areas include computer systems, signal processing systems, architecture, networks, computer-aided design, fault tolerance, and data storage systems. Master of Science ProgramThe degree can be pursued under either the Thesis Plan I or the Comprehensive Examination Plan II. Each plan requires forty-nine units of work. For full-time students, all the requirements must be completed within two years. Students with an adequate background in computer engineering can complete the M.S. program within four to five quarters of full-time study. PLAN I: THESIS OPTION, NO COMPREHENSIVE EXAM This plan of study involves both course work and research, culminating in the preparation of a thesis. A total of forty-nine units of credit is required, as follows: Core Courses The following core courses must be completed with an average grade of B, and no grade below B: Three Software Courses:
CSE 221 CSE 231 Three Hardware Courses:
ECE 260A CSE 243 or ECE 251A or ECE 263A Two Analysis Courses:
CSE 222 or ECE 257A and:
Electives Students must elect at least four technical units among graduate courses within the Departments of AMES, CSE, ECE, Mathematics, and Physics. Thesis Twelve units of CSE 298 must be taken with a faculty member in CSE or ECE who agrees to act as adviser for the thesis to fulfill the research requirement. A thesis based on research must be written and subsequently reviewed by a committee, consisting of three faculty members, with at least two members from within the CSE department. The committee is appointed by the dean of Graduate Studies. PLAN II: COMPREHENSIVE EXAMINATION, NO THESIS In order to receive the M.S. degree in computer engineering under this plan, a student must complete the course requirements listed below and pass a written comprehensive examination. The written examination is structured around the following three CSE core areas: algorithms and data structures; operating systems; and computer architecture and digital logic design. Core Courses Three Software Courses:
CSE 221 CSE 231 Three Hardware Courses:
ECE 260A CSE 243 or ECE 251A or ECE 263A Two Analysis Courses:
CSE 222 or CSE 257A and:
Electives Students must elect at least twelve technical units among graduate courses within the Departments of MAE, CSE, ECE, Mathematics, and Physics. Project
Comprehensive Examination The comprehensive examination is designed to test the student's knowledge in basic computer science and engineering material. The examination can normally be passed with a thorough knowledge of topics covered in the undergraduate and the first-year graduate computer science or computer engineering programs. It is offered every year in the first few weeks of the fall quarter and in the first few weeks of the spring quarter. If fewer than seven people sign up, then the department may cancel the examination in the spring quarter. Each student is allowed three attempts to pass the examination. The student must secure at least a master's-level pass in the written comprehensive examination. This examination is the same for both the computer science and the computer engineering graduate programs. More information about the comprehensive examination can be obtained in a separate document from the CSE graduate office. Doctoral ProgramThe general requirements for the Ph.D. program are stated in the Graduate Studies section of the catalog. A brief summary of the general requirements is also provided in the section titled All Doctoral Programs. Consistent with these requirements, the department has established a set of requirements to be fulfilled in the first two to three years of the Ph.D. program as described below. COURSE REQUIREMENTS Ph.D. students are expected to complete the following computer engineering curriculum of forty-nine unit course requirement within the first two years. Ph.D. students entering with a master of science degree may petition to waive individual core course requirements or to substitute approved alternative courses. All Ph.D. students must attain a cumulative grade-point average of 3.4 in the core courses. CORE COURSES Each Ph.D. student must complete the following core requirements: Three Software Courses:
CSE 221 CSE 231 Three Hardware Courses:
ECE 260A CSE 243 or ECE 251A or ECE 263A Two Analysis Courses:
CSE 222 or ECE 257A and:
ELECTIVES Students must take sixteen units of technical electives from among graduate courses within the Departments of MAE, CSE, ECE, Mathematics, and Physics. TEACHING ASSISTANTSHIP REQUIREMENT Effective fall 1998, all students enrolled in the Ph.D. program must have one quarter of training as a teaching assistant. This is a formal degree requirement and must be completed before the student is permitted to graduate. The requirement is met in one of two ways:
COMPREHENSIVE EXAMINATION REQUIREMENT The comprehensive examination for Ph.D. students consists of two parts. The first part is a written examination, identical to that required for master's degree students. This examination tests the student's knowledge of basic computer science and engineering and can be passed with a thorough knowledge of undergraduate and first-year graduate computer science and engineering material. The written examination is structured around the following five CSE core areas: algorithms and data structures; computability, complexity, and logic; programming languages; operating systems; and computer architecture and digital logic design. This examination is the same for both the computer science and the computer engineering graduate programs. It is offered every year in the first few weeks of the fall quarter and in the first few weeks of the spring quarter. Each student is allowed three attempts to pass the examination. All Ph.D. students should complete their written comprehensive examination successfully within two years following the quarter in which they are admitted to the Ph.D. program. However, a student typically completes the written part of the comprehensive examination successfully by the fall quarter of the second year. More information regarding the comprehensive examination can be found in a separate document provided by the CSE Graduate Office. RESEARCH EXAMINATION REQUIREMENT The second part of the examination for Ph.D. students is an oral research examination designed to get an early assessment of the Ph.D. student's research ability in some field in computer science. The content of this exam is developed by the student in collaboration with a faculty adviser in CSE or ECE. Students are expected to take this examination within one year following the quarter in which they pass the written comprehensive examination. All Doctoral ProgramsQualifying Examination and Advancement to CandidacyThe qualifying examination is the second examination (the first being the written and the oral comprehensive examination) taken by the Ph.D. students and is a requirement to advancement to candidacy. Prior to taking the qualifying examination a student must have satisfied the departmental graduate requirements and have been accepted by a CSE faculty member as a Ph.D. thesis candidate. All doctoral students must be advanced to candidacy by the end of four years from the first quarter of registration. It is administered by a doctoral committee appointed by the dean of Graduate Studies and Research and consists of faculty from CSE and other departments. More information on the composition of the committee can be obtained from the CSE graduate office. The examination is taken after the student and his or her adviser have identified a topic for the dissertation and initial progress has been made. The candidate is expected to describe his or her accomplishments to date and plans for future work. DissertationThe dissertation defense is the final Ph.D. examination. A candidate for the Ph.D. is expected to write a dissertation and defend it in an oral examination conducted by the doctoral committee. Financial AidFinancial support is available to qualified graduate students in the form of fellowships, loans, and assistantships. Anticipated stipends for half-time research assistantships are $1542 per month, with the possibility of full-time employment during the summer months. For a half-time teaching assistantship, the anticipated stipend will be $1540 per month. Requests for application forms for admission and financial support should be directed to the Department of Computer Science and Engineering. The department offers support to graduate students in the Ph.D. program only. Departmental Ph.D. Time Limit PoliciesStudents must be advanced to candidacy by the end of four years. Total university support cannot exceed seven years. Total registered time at UCSD cannot exceed eight years. Courses Student demand exceeds capacity in many CSE courses. Accordingly, many
CSE undergraduate courses may have enrollment restrictions which give
priority to students in the following order:
A tentative schedule of course offerings is available from the department, APM 3402, each spring for the following academic year. The tentative schedule for 19992000 is also found at http://www-cse.ucsd.edu/ugrad/offerings99-2000.html Lower-Division CSE 1. Introduction to Computers (4) CSE 5A. Introduction to Programming I (4) CSE 5B. Introduction to Programming II (4) CSE 8A. Introduction to Computer Science: Java (4) CSE 8B. Introduction to Computer Science: Java (4) CSE 11. Introduction to Computer Science and Object-Oriented Programming:
Java (4) CSE 12. Basic Data Structures and Object-Oriented Design (4) CSE 20. Introduction to Discrete Mathematics (4) CSE 21. Mathematics for Algorithms and Systems (4) CSE 30. Computer Organization and Systems Programming (4) CSE 80. UNIX Lab (2) CSE 81. The Internet and the World Wide Web (4) Upper-Division CSE 100. Advanced Data Structures (4) CSE 101. Design and Analysis of Algorithms (4) CSE 102. File and Storage Structures (4) CSE 105. Theory of Computability (4) CSE 107. Introduction to Modern Cryptography (4) CSE 111. Object Oriented Software Design (4) CSE 112. Software Engineering (4) CSE 120. Principles of Computer Operating Systems (4) CSE 121. Operating Systems: Architecture and Implementation (4) CSE 123A. Computer Networks (4) CSE 123B. Communications Software (4) CSE 126. Multimedia Systems (4) CSE 127. Introduction to Computer Security (4) CSE 128. Concurrency (4) CSE 130. Programming Languages: Principles and Paradigms (4) CSE 131A. Compiler Construction I (4) CSE 131B. Compiler Construction II (4) CSE 132A. Database System Principles (4) CSE 132B. Database Systems Applications (4) CSE 133. Information Retrieval (4) CSE 134A. Web Server Languages (4) CSE 134B. Web Client Languages (4) CSE 140. Components and Design Techniques for Digital Systems (4)
CSE 140L. Digital Systems Laboratory (2) CSE 141. Introduction to Computer Architecture (4) CSE 141L. Project in Computer Architecture (2) CSE 142. Advanced Digital Logic Design (4) CSE 143. Microelectronic System Design (4) CSE 144. Computer-Aided Design of VLSI Circuits (4) CSE 150. Programming Languages for Artificial Intelligence (4) CSE 151. Introduction to Artificial Intelligence (4) CSE 160. Introduction to Parallel Computation (4) CSE 164. Solving Problems with High Performance Computers (4) CSE 167. Computer Graphics (4) CSE 171. User Interface Design (4) CSE 190. Topics in CSE (4) CSE 191. Seminar in CSE (14) CSE 195. Teaching (4) CSE 197. Field Study in Computer Science and Engineering (4, 8, 12,
or 16) CSE 198. Directed Group Study (2 or 4) CSE 199. Independent Study for Undergraduates (2 or 4) Graduate CSE 200. Computability and Complexity (4) CSE 201. Applied Computability and Complexity (4) CSE 202. Algorithm Design and Analysis (4) CSE 203. Combinatorial Algorithms (4) CSE 204. Mathematical Programming (4) CSE 205. Complexity of Intractability (4) CSE 206. Automata, Formal Languages, andComputability (4) CSE 207. Cryptography and Network Security (4) CSE 208A. Topics in Complexity of Algorithms and Data Structures (4) CSE 208C. Topics in Theoretical Computer Science (1-4) CSE 208D. Logic in Computer Science (4) CSE 209. Seminar in Theoretical Computer Science (1-4) CSE 210. Principles of Software Engineering (4) CSE 211. Software Testing and Analysis (4) CSE 218. Advanced Topics in Software Engineering (4) CSE 220. Computer Systems (4) CSE 221. Operating Systems (4) CSE 222. Communication Networks (4) CSE 223. Distributed Systems (4) CSE 224. Computer System Performance Analysis (4) CSE 225. High Performance Distributed Computing (and Computational
Grids) (4) CSE 227. Computer Security (4) CSE 228B. Storage Systems (4) CSE 228C. Communications Software (4) CSE 228D. Real-Time Systems (4) CSE 228E. Fault-Tolerant Systems (4) CSE 228F. Multimedia Systems (4) CSE 228G. Wireless Networks (4) CSE 229. Seminar in Computer Systems (1-4) CSE 230. Principles of Programming Languages (4) CSE 231. Advanced Compiler Design (4) CSE 232. Principles of Database Systems (4) CSE 232B. Database System Implementation (4) CSE 233. Database Theory (4) CSE 238. Topics in Programming Language Design and Implementation
(4) CSE 240. Principles in Computer Architecture I (4) CSE 241. Advanced Computer Architecture (4) CSE 242. Design Systems for VLSI Circuits (4) CSE 243. Computer-Aided Design for VLSI (4) CSE 248A. Application of Combinatorial Algorithms toCAD (4) CSE 250A. Artificial Intelligence I (4) CSE 250B. Artificial Intelligence II (4) CSE 251. Natural Language Processing (4) CSE 252. Computer Vision (4) CSE 253. Neural Networks (4) CSE 254. Machine Learning (4) CSE 255. Intelligent Systems (4) CSE 256. Statistical Natural Language Processing (4) CSE 257. Computational Biology (4) CSE 257A. Bioinformatics II: Sequence and Structure AnalysisMethods
and Applications (4) CSE 257B. Algorithms in Computational Biology (4) CSE 258A. Connectionists Natural Language Processing (4) CSE 259. Seminar in Artificial Intelligence (1) CSE 260. Parallel Computation (4) CSE 261. Parallel and Distributed Computation (4) CSE 262. System Support for Applications of Parallel Computation (4) CSE 263. Parallel Algorithms (4) CSE 268A. Topics in Parallel Computation (4) CSE 268C. Topics in High-Performance Programming (4) CSE 269. Seminar in Parallel Computation (1-4) CSE 270. Statistics and Probability for Manufacturing (4) CSE 271. User Interface Design: Social and Technical Issues (4) CSE 275. Social Aspects of Technology and Science (4) CSE 290. Seminar in Computer Science and Engineering (1-4) CSE 291. Topics in Computer Science and Engineering (1-8) CSE 292. Faculty Research Seminar (1) CSE 293. Special Project in Computer Science and Engineering (1-8) CSE 294. Research Meeting in CSE (2) CSE 298. Independent Study (1-16) CSE 299. Research (1-16) CSE 501. Teaching Assistantship (2-4) CSE 502. Teaching Experience (2) |