Computer Science and Engineering (CSE)
[ graduate program  courses  faculty ]
Undergraduate Affairs Room 1200D
Graduate Affairs Room 1200D
Engineering Building Unit 3B, Warren College
http://www.cse.ucsd.edu
All courses, faculty listings, and curricular and degree requirements described herein are subject to change or deletion without notice. Updates to curricular sections may be found on the Academic Senate website: http://senate.ucsd.edu/Curriculum/Updates.htm.
The Undergraduate Program
Computer Science and Engineering Undergraduate Admission
Because of the large number of students interested in computer science undergraduate programs, and the limited resources available to accommodate this demand, the university has declared these majors in the Department of Computer Science and Engineering as “impacted”: BA computer science, BS computer science, and BS computer engineering.
Effective fall 2013, freshman admission to the BA computer science, BS computer science and BS computer engineering majors will be limited. Students will be selected by the UC San Diego Office of Undergraduate Admissions based on the students’ holistic review scores and availability of slots in the Department of Computer Science and Engineering. All potential freshmen must indicate on the UC application if they wish to major in computer science or computer engineering.
Effective fall 2015, new transfer students will be selected by the UC San Diego Office of Undergraduate Admissions based on the students’ holistic review scores and availability of slots in the Department of Computer Science and Engineering. All potential transfer students must indicate on the UC application if they wish to major in computer science or computer engineering.
The BS computer science with a specialization in bioinformatics major remains an open major. Please note, however, that the department has requested impacted status for this major. This request is currently under review. If approved, admission to the major will be impacted; please plan accordingly. Please check the department website for more information on the status of this request, including the effective dates.
Continuing Student Undergraduate Admission
UC San Diego continuing students may apply to the Department of Computer Science and Engineering for admission into the BA computer science, BS computer science, or BS computer engineering majors.
Eligibility requirements:
 Minimum of eight units of courses completed at UC San Diego for a letter grade, drawn from the following courses: CSE 8B, CSE 11, CSE 12, CSE 15L, CSE 20, CSE 21, CSE 30, and CSE 100
 All of the following courses (or their accepted equivalent) must have been completed prior to application: CSE 8B or 11, CSE 12, CSE 15L, and CSE 20.
Application Process
Students may apply in any quarter after they have completed the above eligibility requirements. They will be ranked according to grades received in the UC San Diego courses from the above list. All courses will be weighted equally.
Applicants will be chosen from this ranking until all open slots in the major are filled.
Transfer Student Preparation for Success
To reduce the amount of time needed to complete degree requirements, transfer students should try to complete as many prerequisite courses they can take at a community college before starting at UC San Diego.
Recommended courses and recommended 3.0 GPA
 Calculus I—for Science and Engineering (Math 20A)
 Calculus II—for Science and Engineering (Math 20B)
 Calculus and Analytic Geometry (Math 20C)
 Differential Equations (Math 20D)
 Linear Algebra (Math 20F)
 Complete calculusbased physics series (Phys 2ABC) [For computer engineering majors]
 Highest level of introductory computer programming language (i.e. Java, C or C++) course offerings at the community college
Degree and Program Options
The Department of Computer Science and Engineering (CSE) offers four degree programs: the BS degree in computer science, the BA degree in computer science, the BS degree in computer engineering, and the BS degree in computer science with a specialization in bioinformatics. The BA degree in computer science is a flexible program that allows comprehensive studies beyond computer science and engineering.
All CSE programs of study provide a broad and rigorous curriculum and are designed to provide students with the strong technical education necessary for placement in the competitive hightech job market as well as for advanced studies in graduate school.
CSE offers courses in the following areas:
 theory
 artificial intelligence
 software
 hardware
 computer security and cryptography
 computer vision and graphics
 databases and XML
 systems and networking
 bioinformatics
 software engineering
In addition, CSE seniors can participate in challenging projectcourses in software systems, where teams create multiplayer games; Internet systems, where students create sophisticated web transaction systems; and mobile wireless computing, where teams create applications for handheld devices.
The CSE department supports and encourages students to explore opportunities outside the classroom. Students assist in many CSE courses as paid lab tutors and readers, getting an excellent opportunity to interact more closely with faculty and other students. In addition, CSE students participate in research projects with graduate students and faculty in CSE, the San Diego Supercomputer Center, and Calit2’s Qualcomm Institute. Under the direction of our faculty, CSE students may also earn credit by participating in independent research projects. The CSE department has strong ties with local and national hightech industry, where students can earn course credit while applying their academic knowledge toward exciting commercial technologies in paid internships.
BS Computer Science Program
The lowerdivision BS computer science program is designed to provide a strong foundation in mathematics, physics, electrical engineering, programming methodology and skills, and computer organization. Upperdivision 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 upperdivision 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 the program.
The department requires a total of 128 units for the BS computer science program (not including the generaleducation requirements). There are three varieties of requirements: lowerdivision, upperdivision, and technical electives.
Advisory placement exam for CSE 3, CSE 8A/8AL and CSE 11: An advisory placement test is encouraged of all CSE majors to help accurately place students into the right starting point in the CSE undergraduate curriculum. This information is found at http://wwwcse.ucsd.edu/undergraduateeducation.html. Contact the CSE student affairs advising office at the Virtual Advising Center (vac.ucsd.edu) or csepeeradviser@eng.ucsd.edu if further assistance is needed.
1. LowerDivision Requirements
Students are expected to complete the following fiftytwo units by the end of their sophomore year.
Computer Science and Engineering
CSE 8B or CSE 11, CSE 12, CSE 15L, CSE 20 or Math 15A, CSE 21 or Math 15B, CSE 30, and CSE 91; twentyfour units.
Note: Students with little computer experience are encouraged to take CSE 3. Students without prior programming experience are advised to take CSE 8A, CSE 8AL, and then CSE 8B, instead of CSE 11. CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL, and CSE 8B, and requires experience in programming with a compiled language.
Mathematics
Math 20A, Math 20B, Math 20C, and Math 20F; sixteen units.
General Science
Phys 2A. and Phys 2B, or Chem 6A and Chem 6B, or Chem 6AH and Chem BH, or BILD 1 and BILD 2, or BILD 3 and BICD 100; eight units.
Students who received high grades in both calculus and physics in high school may substitute the major’s sequence, Phys 4ABC for Phys 2ABC.
Probability and Statistics
Math 183 or CSE 103; four units.
2. UpperDivision Requirements
All BS computer science students are required to take CSE 100 or Math 176, CSE 101 or Math 188, CSE 105 or Math 166, CSE 110, CSE 120, 130, 131, 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
BS computer science students are required to complete one upperdivision cluster of three to five CSE courses. Three to five CSE courses are part of the nine technical electives required for a total of thirtysix units. The purpose of the clusters is to help students identify groups of complementary courses, thus improving their education. Clusters are designed by the CSE faculty by grouping existing courses. Students who wish can also design their own clusters, with approval by the CSE Undergraduate Committee. For a complete list of clusters, visit http://cse.ucsd.edu/node/37 or see an adviser in the CSE advising offices.
 Choose one upperdivision cluster consisting of three to five CSE courses. A threecourse cluster is permitted when the cluster is a natural extension of one of the core upperdivision requirements.
 A fivecourse cluster will be permitted when an additional foundational course may be required by other courses in the cluster.
 Within a cluster there can be choices, such as “take four of the five” or a choice between two course alternatives.
 May use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upperdivision technical requirement.
 Twelve credits of non198, CSE 199, or CSE 199H must be completed.
Two technical electives (of the required nine technical electives) can be chosen from the wider set of courses that includes computer science and engineering upperdivision 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. BS Computer Science, Sample Program Starting with CSE 3
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 3  CSE 8A and 8AL  CSE 8B 
Math 20A  CSE 91 (2 units)  CSE 20 or Math 15A 
GE  Math 20B  Math 20C 
GE  GE  
SOPHOMORE YEAR  
CSE 12  CSE 30  CSE 110 
CSE 15L (2 units)  CSE 105 or Math 166  CSE 100 
CSE 21 or Math 15B  Major General Science  CSE 101 
Major General Science  GE  GE 
JUNIOR YEAR  
CSE 140  CSE 101 or Math 188  CSE 103 or Math 183 
CSE 140L (2 units)  CSE 120  CSE Tech Elec 
Math 20F  CSE 141  CSE Tech Elec 
GE  CSE 141L (2 units)  GE 
SENIOR YEAR  
CSE 130  CSE 131  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
GE  GE  GE 
BS Computer Science, Sample Program Starting with CSE 8A/8AL
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 8A and CSE 8AL  CSE 8B  CSE 12 
CSE 91 (2 units)  CSE 20 or Math 15A  CSE 15L (2 units) 
Math 20A  Math 20B  Math 20C 
GE  GE  GE 
SOPHOMORE YEAR  
CSE 30  CSE 100 or Math 176  CSE 101 or Math 188 
CSE 21 or Math 15B  CSE 110  Math 20F 
Major General Science  Major General Science  CSE Tech Elec 
GE  GE  GE 
JUNIOR YEAR  
CSE 105 or Math 166  CSE 120  Math 183 or CSE 103 
CSE 140  CSE 141  CSE Tech Elec 
CSE 140L (2 units)  CSE 141L (2 units)  CSE Tech Elec 
GE  GE  GE 
SENIOR YEAR  
CSE 130  CSE 131  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  GE 
GE  GE 
BS Computer Science, Sample Program Starting with CSE 11
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 11  CSE 12  CSE 30 
CSE 91 (2 units)  CSE 15L (2 units)  CSE 20 or Math 15A 
Math 20A  Math 20B  Math 20C 
GE  GE  GE 
SOPHOMORE YEAR  
CSE 21 or Math 15B  CSE 100 or Math 176  CSE 101 or Math 188 
CSE 140  CSE 110  CSE 141 
CSE 140L  CSE Tech Elec  CSE 141L (2 units) 
GE  Major General Science  Major General Science 
JUNIOR YEAR  
CSE 105 or Math 166  CSE 130  CSE 131 
CSE 120  CSE Tech. Elec  Math 183 or CSE 103 
CSE Tech Elec  CSE Tech Elec  GE 
GE  GE  GE 
SENIOR YEAR  
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  GE 
GE  GE  GE 
GE  GE  GE 
Notes for Selecting and Scheduling Classes for BS Computer Science
(All courses must be taken for a letter grade.)
 Advisory placement exam (http://cse.ucsd.edu/node/43): Students may selfselect which course they wish to take and are encouraged to take the advisory placement exam to help decide. Students with little computer experience are encouraged to take CSE 3. Students without experience in programming in a compiled language are advised to take CSE 8A and CSE 8AL, and then CSE 8B, instead of CSE 11. CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL, and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.
 Computer Science Advanced Placement Credit: A Exam (Java Programming) two units
 Score of 4 exempts CSE 8A and CSE 8AL. Student should take CSE 11.
 CSE 8A/8AL, or CSE 8B, or CSE 11 may be taken concurrently with CSE 20/Math 15A. Please obtain department approval for enrollment permission for CSE 20/Math 15A at csepeeradviser@eng.ucsd.edu.
 CSE 15L and CSE 70 were new courses as of fall 2007.
 Effective fall 2010, CSE 70 was renumbered to CSE 110.
 CSE 15L must be taken concurrently with CSE 12.
 The CSE Undergraduate Committee would like students to start taking technical electives as soon as possible after completing CSE 30.
 Technical Electives: Effective fall 2010, students must complete nine technical electives. Students must complete one cluster consisting of three to five courses (http://cse.ucsd.edu/node/37). Students may also use a CSE graduate course for technical elective credit with approval. Once a graduate course is used for an undergraduate degree, that course may not be reused for a graduate degree. In addition, only four units of CSE 197 may be used toward technical elective credit.
 Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H (http://cse.ucsd.edu/undergrad_courses) to meet the CSE upperdivision technical requirement.
 Twelve credits of non198, CSE 199, or CSE 199H must be completed. Two of the technical electives may be chosen from a list of approved electives. This list is at http://www.cse.ucsd.edu/undergrad/degreeprograms/electives.html (http://cse.ucsd.edu/node/244). If you want to deviate from this list of approved electives, you must petition the CSE student adviser at the Virtual Advising Center (vac.ucsd.edu).
BS Computer Engineering Program
(Curriculum is the same in both the CSE and ECE departments.)
The BS computer engineering program is jointly administered by the Departments of Computer 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 lowerdivision computer engineering program is designed to provide a strong foundation in mathematics, physics, electrical engineering, programming methodology and skills, and computer organization. Upperdivision 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 the program.
The BS computer engineering program requires a total of 136 units (not including the generaleducation requirements). There are three varieties of requirements: lowerdivision, upperdivision, and technical electives.
Advisory placement exam for CSE 3, CSE 8A/8AL, and CSE 11: An advisory placement test is encouraged of all CSE majors to help accurately place students into the right starting point in the CSE undergraduate curriculum. This information is found at http://cse.ucsd.edu/node/43. Contact the CSE student affairs advising office at the Virtual Advising Center (vac.ucsd.edu) or csepeeradviser@eng.ucsd.edu if further assistance is needed.
1. LowerDivision Requirements
Students are expected to complete the following sixtyeight units by the end of their sophomore year.
Computer Science and Engineering
CSE 8B or CSE 11, CSE 12, CSE 15L, CSE 20 or Math 15A, CSE 21 or Math 15B, CSE 30, and CSE 91; twentyfour units.
Note: Students with little computer experience are encouraged to take CSE 3. Students without prior programming experience are advised to take CSE 8A, CSE 8AL, and then CSE 8B, CSE 8AL, instead of CSE 11. CSE 11 is a fasterpaced version of CSE 8A and CSE 8B, and requires experience in programming with a compiled language.
Mathematics
Math 20A, Math 20B, Math 20C, Math 20D, and Math 20F; twenty units.
Physics
Phys 2A, Phys 2B, Phys 2C; 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 4ABC for Phys 2ABC.
Introduction to Electrical Engineering
ECE 35, 45, 65; twelve units. These courses give a comprehensive introduction to electrical engineering.
2. UpperDivision Requirements
All BS Computer engineering students are required to take CSE 100 or Math 176, CSE 101 or Math 188, CSE 110, CSE 120, 140, 140L, 141, and 141L; twentyeight units.
In addition, all BS Computer engineering students have to fulfill the following upperdivision ECE requirements.
Probability and Statistics
ECE 109; four units. This course can be taken in the sophomore year.
Linear Systems
ECE 101; four units. The department recommends that this course be taken in the junior year.
Electronic Circuits and Systems
ECE 108; four units. The department recommends that these courses be taken in the junior year.
If students want to accelerate their program, they should consider taking CSE 100 or Math 176, and/or CSE 140 and 140L in the sophomore year.
3. Technical Electives
All BS Computer engineering students are required to take seven technical electives for a total of twentyeight units. One of these courses must be either ECE 111 or ECE 118. Of the remaining six courses, five must be computer science and engineering or electrical and computer engineering upperdivision or graduate courses.
The remaining course can be any computer science and engineering or electrical and computer engineering upperdivision 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. BS Computer Engineering, Sample Program
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 8A, CSE 8AL, or CSE 11  CSE 15L  CSE 21 or Math 15B 
Math 20A  CSE 12  Math 20C 
GE  Math 20B  CSE 30 
CSE 91  CSE 20 or Math 15A  GE 
SOPHOMORE YEAR  
CSE 100 or Math 176  CSE 110  CSE 140 
Math 20D  CSE 101 or Math 188  CSE 140L 
Phys 2A  ECE 45  ECE 65 
ECE 35  Phys 2B  Phys 2C 
JUNIOR YEAR  
CSE 105 or Math 166  CSE 120  CSE 110 
CSE 141  (Req. Tech Elec ECE 111 or ECE 118) 

CSE 141L  ECE 108  
ECE 101  Math 20F  CSE/ECE Tech Elec 
SENIOR YEAR  
CSE/ECE Tech Elec  CSE/ECE Tech Elec  
CSE/ECE Tech Elec  CSE/ECE Tech Elec  ECE 109 
GE  CSE/ECE Tech Elec  GE 
GE 
Notes for Selecting and Scheduling Classes for BS Computer Engineering
(All courses must be taken for a letter grade.)

First Programming Course: CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.* Students may selfselect which course they wish to take. Students without experience in programming in a compiled language are advised to take CSE 8A and CSE 8AL, and then CSE 8B, instead of CSE 11.

CSE 11, and CSE 20/Math 15A, can be taken in the same quarter. Please obtain department approval for enrollment permission at csepeeradviser@eng.ucsd.edu.

CSE 15L and CSE 70 were new courses as of fall 2007.

CSE 15L must be completed before CSE 12.

Effective fall 2006, ECE 35 and ECE 45 were new courses in computer engineering. These courses replace ECE 35A and 35B, respectively.

Effective fall 2010, CSE 70 was renumbered to CSE 110 and is required for all CE majors. If a student completes CSE 70, they do not have to take CSE 110.

Effective fall 2011, students no longer must take PHYS 2D, CSE 105, CSE 130, CSE 131 and ECE 102.

For students admitted before fall 2011, CSE 105, CSE 130, CSE 131 and ECE 102 may be taken for upperdivision technical elective credit.

Students must complete seven technical electives for a total of twentyeight units. Five of the seven technical electives must be CSE or ECE upper division courses. Students must obtain approval to use a CSE graduate course for technical elective credit. Once a graduate course is used for an undergraduate degree, that course may not be reused for a graduate degree. In addition, only four units of CSE 197 may be used toward technical elective credit.

Furthermore, students may take up to eight units of only CSE 198, or 199, or 199H (http://cse.ucsd.edu/undergrad_courses) toward technical elective credit.

Two of the technical electives may be chosen from a list of approved electives. This list is at http://www.cse.ucsd.edu/undergrad/degreeprograms/electives.html. If you want to deviate from this list of approved electives, you must petition the CSE student adviser at the Virtual Advising Center (vac.ucsd.edu).
BS Computer Science with a Specialization in Bioinformatics
The explosion in biological knowledge spawned by the various genome projects has created entirely new fields and industries, and a need for trained computational biologists who are familiar with biology, mathematics, and computer sciences. The computer science and engineering department offers rigorous, interdisciplinary training in the new and rapidly evolving field of bioinformatics.
Bioinformatics refers to advanced computational and experimental methods that model the flow of information (genetic, metabolic, and regulatory) in living systems to provide an integrated understanding of the system properties of organisms.
This interdisciplinary major is offered by three other programs (Division of Biological Sciences, Department of Chemistry and Biochemistry, and Department of Bioengineering). The computer science and engineering requirements comprise of 152 units to be taken from the divisions of physical sciences, biology, and engineering.
1. LowerDivision Requirements
Lowerdivision requirements, sixtyfour units: Students are expected to complete all lowerdivision requirements by the end of their sophomore year.
 Math 20A, Math 20B, Math 20C, and Math 20F, (16 units)
 Chem 6A, Chem 6B, Chem 6C, and one Chem lab (15 units)
 BILD 1, BILD 2, and BILD 94 (9 units)
 CSE 11, CSE 12, and CSE 21 or Math 15B (12 units)
 Phys 2A, Phys 2B, and Phys 2C (12 units)
2. UpperDivision Requirements
Upperdivision requirements, eightyeight units (includes five CSE technical electives)
 CSE 100 or Math 176 (Data Structures), (4 units)
 CSE 101 or Math 188 (Algorithms), (4 units)
 Chem 140A–140B (Organic Chemistry), (8 units)
 Chem 114B (Biochemical Energetics and Metabolism) or BIBC 102 (Structural and Metabolic Biochemistry), (4 units)
 BIBC 103 (Biochemical Techniques), (4 units)
 BICD 100 (Genetics), (4 units)
 BIMM 100 (Molecular Biology) or Chem 114D (Molecular and Cellular Biochemistry), (4 units)
 BIMM 101 (Recombinant DNA Lab), (4 units)
 BICD 110 (Cell Biology), (4 units)
 BIBC 110 (Physical Biochemistry) or Chem 127 (Physical Chemistry), (4 units)

Five additional CSE upperdivision electives (electives 1, 2, 3, 4, and 5).
At least one course from each of the three groups for a total of five electives

Group I: CSE 30, 111, 131A, 131B

Group II: CSE 105, 150, 151, Math 184A

Group III: CSE 132A, 132B, 133
 CSE 181 or BIMM 181 or BENG 181 (Molecular Sequence Analysis), (4 units)
 CSE 182 or BIMM 182 or BENG 182 or Chem 182 (Biological Databases), (4 units)
 BENG 183 (Applied Genomic Technologies), (4 units)
 CSE 184 or BIMM 184 or BENG 184 (Computational Molecular Biology), (4 units)
 BIMM 185 (Bioinformatics lab), (4 units)
 Math 186 (Probability and Statistics), (4 units)
The bioinformatics series comprises the following six courses, twentyfour units:
3. BS Computer Science with a Specialization in Bioinformatics, Sample Program
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 8A/8AL + 8B or 11^{1} 
CSE 12  BILD 94^{2} 
Math 20A  Math 20B  Math 20C 
Chem 6A  Chem 6B  Chem 6C 
GE 1  BILD 1  Chem 6BL 
GE 2  GE 3  
SOPHOMORE YEAR  
CSE 21 or Math 15B 
Math 20F  Chem 140B 
BILD 2  Phys 2B  BIBC 103 
Phys 2A  Chem 140A  Phys 2C 
GE 4  GE 5  GE 6 
JUNIOR YEAR  
CSE 100 or Math 176^{3} 
CSE 101 or Math 188 
CSE 181^{4} 
BICD 100  Math 186  BIMM 101 or Chem 112B 
GE 7  BIBC 102 or Chem 114B 
BICD 110 
GE 8  BIMM 100 or Chem 114D 
Chem 127 
SENIOR YEAR  
CSE 182  CSE 184  BIMM 185 
BENG 183  Elec 2  Elec 4 
Elec 1^{5}  Elec 3  Elec 5 
GE 9  GE 10  GE 11 
^{1}Students may take the slower paced version, CSE 8A + CSE 8AL + CSE 8B, instead of CSE 11.
^{2}BILD 94 (1 unit seminar) is recommended in students first spring quarter of study at UC San Diego. This course gives an overview of issues and topics in bioinformatics.
^{3}CSE 30 prerequisite will be waived.
^{4}Courses for the bioinformatics program: CSE 181 is crosslisted with BIMM 181 and BENG 181; CSE 182 is crosslisted with BIMM 182, Chem 182, and BENG 182; CSE 184 is crosslisted with BIMM 184 and BENG 184; and (BENG 183, BIMM 185, and Math 186 are not crosslisted with any other courses).
^{5}Students must complete five CSE technical electives from the approved list.
BA Computer Science Program
The BA computer science program gives students more latitude in designing their course of study. The lowerdivision program is designed to provide a strong foundation in mathematics, physics, programming methodology and skills, and computer organization. Upperdivision 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 BA computer science program serves those students desiring more time for undergraduate studies outside their major subject.
The department requires a total of 116 units for the BA computer science program (not including the generaleducation requirements). There are three varieties of requirements: lowerdivision, upperdivision, and technical electives.
Advisory placement exam for CSE 3, CSE 8A/8AL, and CSE 11: An advisory placement test is encouraged of all CSE majors to help accurately place students into the right starting point in the CSE undergraduate curriculum. This information is found at http://cse.ucsd.edu/node/43. Contact the CSE student affairs advising office at the Virtual Advising Center (vac.ucsd.edu) or csepeeradviser@eng.ucsd.edu if further assistance is needed.
1. LowerDivision Requirements
Students are expected to complete the following fortyeight units by the end of their sophomore year.
Computer Science and Engineering
CSE 8B or CSE 11, CSE 12, CSE 15L, CSE 20 or Math 15A, CSE 21 or Math 15B, CSE 30, and CSE 91; twenty four units.
Note: Students with little computer experience are encouraged to take CSE 3. Students without prior programming experience are advised to take CSE 8A, CSE 8AL, and then CSE 8B, instead of CSE 11. CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL, and CSE 8B, and requires experience in programming with a compiled language.
Mathematics
Math 20A, Math 20B, Math 20C, and Math 20F; sixteen units.
General Science
Phys 2A and Phys 2B, or Chem 6A and Chem 6B, or Chem 6AH and Chem BH, or BILD 1 and BILD 2, or BILD 3 and BICD 100; eight units.
Students who received high grades in both calculus and physics in high school may substitute the major’s sequence, Phys 4ABC for Phys 2ABC.
2. UpperDivision Requirements
All BA computer science students are required to take CSE 100 or Math 176, CSE 101 or Math 188, CSE 105 or Math 166, CSE 110, CSE 120, 131, 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 or Math 166, and/or CSE 140 and 140L in the sophomore year.
3. Technical Electives
BA computer science students are required to take seven technical electives for a total of twentyeight units. Five technical electives must be computer science and engineering upperdivision or graduate courses.
Two technical electives (of the required seven technical electives) can be chosen from a wider set of courses that includes computer science and engineering upperdivision courses, graduate courses, and other electives as listed under the section titled “Electives” or at http://cse.ucsd.edu/node/244. Other restrictions in the selection of technical electives are also given in the section “Electives.”
4. BA Computer Science, Sample Program Starting with CSE 3
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 3  CSE 8A and 8AL  CSE 8B 
Math 20A  CSE 91 (2 units)  CSE 20 or Math 15A 
GE  Math 20B  Math 20C 
GE  GE  
SOPHOMORE YEAR  
CSE 12  CSE 30  CSE 110 
CSE 15L (2 units)  CSE 105 or Math 66  CSE 140 
CSE 21 or Math 15B  Major General Science  CSE 140L (2 units) 
Major General Science  GE  GE 
JUNIOR YEAR  
CSE 100 or Math 176  CSE 101 or Math 188  CSE 120 
CSE 141  CSE Tech Elec  CSE Tech Elec 
CSE 141L (2 units)  Math 20F  CSE Tech Elec 
GE  GE  GE 
SENIOR YEAR  
CSE 130  CSE 131  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
GE  GE  GE 
BA Computer Science, Sample Program Starting with CSE 8A/8AL
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 8A and 8AL  CSE 8B  CSE 12 
CSE 91 (2 units)  CSE 20 or Math 15A  CSE 15L (2 units) 
Math 20A  Math 20B  Math 20C 
GE  GE  GE 
SOPHOMORE YEAR  
CSE 21 or Math 15B  CSE 100 or Math 176  CSE 101 or Math 188 
CSE 30  CSE 110  CSE 140 
Major General Science  Major General Science  CSE 140L (2 units) 
GE  GE  GE 
JUNIOR YEAR  
CSE 105 or Math 166  CSE 120  CSE Tech Elec 
CSE 141  CSE Tech Elec  CSE Tech Elec 
CSE 141L (2 units)  Math 20F  GE 
GE  GE  
SENIOR YEAR  
CSE 130  CSE 131  CSE Tech Elec 
CSE Tech Elec  CSE Tech Elec  CSE Tech Elec 
GE  GE  GE 
BA Computer Science, Sample Program Starting with CSE 11
FALL  WINTER  SPRING 

FRESHMAN YEAR  
CSE 11  CSE 12  CSE 20 or Math 15A 
CSE 91 (2 units)  CSE 15L (2 units)  CSE 30 
Math 20A  Math 20B  Math 20C 
GE  GE  GE 
SOPHOMORE YEAR  
CSE 21 or Math 15B  CSE 100 or Math 176  CSE 141 
Math 20F  CSE 140  CSE 141L (2 units) 
Major General Science  CSE 140L (2 units)  CSE Tech Elec 
GE  Major General Science  GE 
JUNIOR YEAR  
CSE 105  CSE 130  CSE 131 
CSE 120  CSE Tech Elec  CSE Tech Elec 
CSE Tech. Elec  GE  GE 
GE  
SENIOR YEAR  
CSE Tech. Elec  CSE Tech Elec  CSE Tech Elec 
GE  GE  GE 
GE  GE  GE 
Notes for Selecting and Scheduling Classes for BA Computer Science
(All courses must be taken for a letter grade.)
 Advisory placement exam (http://cse.ucsd.edu/node/43): Students may selfselect which course they wish to take and are encouraged to take the advisory placement exam to help decide. Students with little computer experience are encouraged to take CSE 3. Students without experience in programming in a compiled language are advised to take CSE 8A and CSE 8AL, and then CSE 8B, instead of CSE 11. CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL, and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.
 Computer Science Advanced Placement Credit: A Exam (Java Programming) two units
 Score of 4 exempts CSE 8A and CSE 8AL. Student should take CSE 11.
 CSE 8A/8AL, or CSE 8B, or CSE 11 may be taken concurrently with CSE 20/Math 15A, Please obtain department approval for enrollment permission in CSE 20/Math 15A at csepeeradviser@eng.ucsd.edu.
 CSE 15L and CSE 70 were new courses as of fall 2007.
 CSE 15L must be taken prior to or concurrently with CSE 12.
 Effective fall 2010, CSE 70 was renumbered to CSE 110.
 Effective fall 2010, students must complete seven technical electives. Four of the seven technical electives must be CSE upperdivision courses. Students can use a CSE graduate course for technical elective credit with approval. Once a graduate course is used for an undergraduate degree that course may not be reused for a graduate degree. In addition, only four units of CSE 197 may be used toward technical elective credit.
 Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H (http://cse.ucsd.edu/undergrad_courses) to meet the CSE upperdivision technical requirement.
 Two of the technical electives may be chosen from a list of approved electives. This list is at “Electives” (http://cse.ucsd.edu/node/244). If you want to deviate from this list of approved electives, you must petition the CSE student adviser at the Virtual Advising Center (vac.ucsd.edu).
Electives
The 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 upperdivision courses from these and other disciplines that can be counted as technical electives.
Restrictions
 At most four units of CSE 197 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 UC San Diego 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.
Computer Science with a Specialization in Bioinformatics
Students must petition department for technical elective credit not on approved list.
Mathematics
All upperdivision courses except Math 168A (Math 183—Computer Engineering majors only), 184A, 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 105AB, CENG 100, MAE 107. No credit for any of these courses will be given if Math 170ABC 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 upperdivision courses except 195–199.
Students may not get credit for both CSE 123A and ECE 158A or CSE 143 and ECE 165. Credit will be given for only one of the following: ECE 109 or Math 183 or Econ 120A.
Cognitive Science
Sensation and Perception 101A, Learning, Memory, and Attention 101B, Language 101C, Distributed Cognition 102A, Cognitive Ethnography 102B, Cognitive Engineering 102C, Neuroanatomy and Physiology 107A, Systems Neuroscience 107B, Cognitive Neuroscience 107C, Programming Methods for Cognitive Science 108D, Neural Network Models of Cognitive I 108E, Advanced Programming Methods for Cognitive Science 108F, Human Computer Interaction 120, Human Computer Interaction Programming 121, Natural and Artificial Symbolic Representational Systems 170, Neural Network Models of Cognition II 181, Representation, Search, and the Web 188.
Students may not get credit for both CSE 150 and Advanced Programming Methods for Cognitive Science 108F.
Mechanical and Aerospace Engineering
All upperdivision 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 105AB, CENG 100, MAE 107. Students may only get credit for one of the two courses, CSE 167 or MAE 152.
Economics
Microeconomics 100ABC, Game Theory 109, Macroeconomics 110ABC, Mathematical Economics 113, Econometrics 120ABC, Applied Econometrics 121, Decisions Under Uncertainty 171, Introduction to Operations Research 172ABC, 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, Principles of Discourse and Dialog 169, Psycholinguistics 170, Language and the Brain 172, and Sociolinguistics 175.
Engineering
Principles of Team Engineering 100A and Team Engineering Laboratory 100L. Students are eligible to receive eight units of technical elective credit for completing a combination of ENG 100A (two units) and ENG 100L (two units). Students must complete one quarter of ENG 100 for two units, and two quarters of ENG 100L for a total of four units. Students may complete two more ENG 100L courses (four units) to receive one more technical elective.
Music
Computer Music II 172, Audio Production: Mixing and Editing 173.
Psychology
Introduction to Engineering Psychology 161.
Rady School of Management
Product Marketing and Management 103, Business: Enterprise Creations and Management 110, Innovation to Market A 121A, Organizational Leadership 164, Ethic and Corporate Responsibility 166, Business Project Management 172, Supply Chain & Operations Management 174, and Enterprise Finance 181.
CSE Honors Program
The CSE Honors Program encourages eligible undergraduate students to perform advanced study in their major. Students in the honors program work closely with faculty on an undergraduate research project, typically completed over two quarters. As a result, the honors program is excellent preparation for further study in a graduate program. Students who complete the honors program also have an honors distinction officially bestowed upon them upon graduation.
Eligibility for Admission
In accordance with university Honors Program guidelines, to apply for the CSE honors program students must meet the following prerequisites:
 Juniorlevel standing in a CSE major
 3.5 GPA in CSE major courses, 3.25 GPA overall
 Completion of CSE 101, CSE 105, and CSE 110
 Completion of at least twelve units of upperdivision CSE courses at UC San Diego
Application Procedure
To apply for admission to the CSE Honors Program, students must submit a formal application that includes the following information (http://cse.ucsd.edu/node/40):
 Name of CSE faculty adviser sponsoring the project
 Project proposal (one page)
 Signature from the faculty adviser acknowledging that the faculty member has agreed to advise the student in the honors program, and corroborates the specifics of the project
 Submit the application no later than the end of fall quarter of senior year. Submission during spring quarter of the junior year is strongly encouraged.
The application form is available online from the CSE department website and from the CSE undergraduate advising office. Admission to the honors program will be formally approved by the CSE honors committee based upon the materials provided in the application.
Completion Requirements
In accordance with university Honors Program guidelines, to complete the CSE Honors Program students must meet the following requirements upon graduation:
 3.25 GPA in a CSE major
 Eight units of CSE 199H with a GPA of 3.0 (letter grade of B) or higher
 Written honors thesis
 Presentation of honors project
 Signature from faculty adviser on an honors completion form
 Completion of requirements by the end of the spring quarter of graduation
Depending on students’ performance on their honors project, students are eligible to receive the following honors designations on their diploma:
 “With distinction”: Complete the eight units of CSE 199H with a GPA of 3.0 or higher
 “With high distinction”: Complete the eight units of CSE 199H with a GPA of 3.5 or higher
 “With highest distinction”: Complete the eight units of CSE 199H with a GPA of 3.8 or higher
Students must write a thesis describing their honors research project. The thesis must have the content, rigor, and format of scholarly publications in computer science and engineering. The faculty adviser must have reviewed and approved the honors thesis prior to submission by the student.
Students must orally present their project as a requirement for the honors program. Students have many opportunities for fulfilling this requirement:
 UC San Diego Annual Undergraduate Research Conference
 JSOE Engineering Undergraduate Research Konference and Assembly (EUReKA)
 An ORU research review or workshop (e.g., the Qualcomm Institute, CNS, CWC, CCMS, ITA Center)
 A conference or workshop presentation
 A graduate research seminar
The faculty adviser can also provide an alternative presentation opportunity.
Unit Considerations
The CSE Honors Program does not increase the units required for graduation in a CSE major. Students participating in the Honors Program may apply eight units in CSE 199H for the equivalent of two technical elective courses for their major. Students may also apply unit credit in CSE 199H towards the cluster requirement in the undergraduate program.
Minor and Program of Concentration
Program Description
The computer science minor is designed to provide basic proficiency in computer science. The requirements focus on programming methodology and skills, computer organization, relevant mathematical skills, structure techniques, laboratory courses with programming projects, and design and analysis of algorithms. Completing these requirements provides a strong foundation in computer science.
The CSE minor requires successful completion of a total of eight CSE courses taken for a letter grade. Lowerdivision courses are CSE 8B or CSE 11, CSE 12, CSE 20, and CSE 21.The remaining four CSE courses are CSE 100, and three additional CSE upperdivision courses subject to enforcement of prerequisites.
CS Minor
Threeyear plan for students starting with CSE 8A
FALL  WINTER  SPRING 

1st Year  
CSE 8A and CSE 8AL 
CSE 8B  CSE 12 
2nd Year  
CSE 20  CSE 21  
3rd Year  
CSE 100  CSE Elective  CSE Elective 
CSE Elective 
CS Minor
Threeyear plan for students starting with CSE 11
FALL  WINTER  SPRING 

1st Year  
CSE 11  CSE 20  CSE 12 
2nd Year  
CSE 21  CSE 100  
3rd Year  
CSE Elective  CSE Elective  CSE Elective 
Scheduling Notes
Students without any programming experience are advised to take CSE 3 and CSE 5A before taking CSE 8A and CSE 8AL. Concurrent enrollment is required in CSE 8A and CSE 8AL. Students may also start with CSE 11, but they should be aware that CSE 11 is a fasterpaced version of CSE 8A, CSE 8AL, 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.
Restriction
Effective fall 2000, mathematics/computer science majors will not be allowed the minor in computer science.
Computing Courses for Nonmajors
The department offers a slowpace course providing a practical introduction to computers, computation, and programming: CSE 5A—an introduction to structured programming using the C/Java programming language. We also offer an introduction in fluency in information technology: CSE 3—an introduction to basic information students need to deal with information technology. It is more of a concepts course than a programming course, but some simple programming will be done as part of the teaching of concepts: CSE 7—fundamentals of computer programming and basic software design covering topics related to variables, functions, and control structures; writing, testing, and debugging programs in Matlab. Examples focus on scientific applications. Recommended preparation: high school algebra and familiarity with the computing milieu.
Advanced Placement Credit: Application to Major Requirements
Effective Fall 2010, the following CSE advanced placement equivalency has been approved.
 Computer Science A Exam (Java Programming), two units:
 Score of 4 = exempt CSE 8A and 8AL; student should take CSE 11
Enrollment in CSE courses
All CSE and nonCSE majors may enroll in lower and upperdivision CSE courses. Students must meet course prerequisites.
Please note: Student demands exceeds capacity in many CSE graduate courses. Accordingly, many CSE graduate courses may have enrollment restrictions, which give priority to students in the following order:
 CSE MS and CSE PhD students.
 All others, with permission of the Department of Computer Science and Engineering.
Enrolling in UpperDivision Courses
The Department of Computer Science and Engineering will attempt to provide sufficient sections of all lowerdivision courses. Students will, however, be screened to ensure that they meet all course enrollment restrictions.
UC Education Abroad Program (EAP) and UC San Diego’s Opportunities Abroad Program (OAP)
CSE majors are encouraged to participate in the UC Education Abroad Program (EAP) or UC San Diego’s Opportunities Abroad Program (OAP). Subject to approval by the faculty director of the major, courses taken through EAP/OAP will be accepted for credit toward the major. Students interested in studying abroad should contact a CSE undergraduate program adviser to discuss appropriate courses and programs for their plan of study at the Virtual Advising Center (vac.ucsd.edu). A list of approved transferrable courses can be found at http://cse.ucsd.edu/node/267.
Information on EAP/OAP is given in the “Education Abroad Program” section of the UC San Diego General Catalog. Interested students should contact the Programs Abroad Office in the International Center and visit its website at http://programsabroad.ucsd.edu. Financial aid can be used for EAP/OAP study, and special studyabroad scholarships are also available.
Graduation Requirements
All major requirements and technical electives except CSE 197, 198, or 199 must be taken for a letter grade. To graduate, a gradepoint average of 2.0 will be required in upperdivision courses in the major, including technical electives. In addition, each student must satisfy generaleducation course requirements determined by the student’s college, as well as major requirements determined by the department. The five colleges at UC San Diego require widely different numbers of generaleducation 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.