Computer Science and Engineering (CSE)

[ graduate program | courses | faculty ]

OFFICES:
Undergraduate Affairs Room 1200D
Graduate Affairs Room 1200D
Engineering Building Unit 3B, Warren College
http://www.cse.ucsd.edu

The Undergraduate Program

Degree and Program Options

The Department of Computer Science and Engineering (CSE) offers four degree programs: the B.S. degree in computer science, the B.A. degree in computer science, the B.S. degree in computer engineering, and the B.S. degree in computer science with a specialization in bioinformatics. The B.A. 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 high-tech job market as well as for advanced studies in graduate school.

CSE offers courses in the following areas:

In addition, CSE seniors can participate in challenging project-courses 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 the California Institute for Telecommunications and Information Technology (Calit2). 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 high-tech industry, where students can earn course credit while applying their academic knowledge toward exciting commercial technologies in paid internships.

B.S. Computer Science Program

The 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 upper-division 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 B.S. computer science program (not including the general-education requirements). There are three varieties of requirements: lower-division, upper-division, 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 the following Web site: http://www-cse.ucsd.edu/undergraduate-education.html. Contact the CSE student affairs advising office at ugradinfo@cs.ucsd.edu if further assistance is needed.

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 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 faster paced 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. 4A-B-C for Phys. 2A-B-C.

Probability and Statistics

Math. 183 or CSE 103; four units.

2. Upper-Division Requirements

All B.S. 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

B.S. computer science students are required to complete one upper-division cluster of three to five CSE courses. The three to five CSE courses are part of the nine technical electives required for a total of thirty-six 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 www.ucsd.edu or see an advisor in the CSE advising offices.

  1. Choose one upper-division cluster consisting of three to five CSE courses. A three-course cluster is permitted when the cluster is a natural extension of one of the core upper-division requirements.
  2. A five-course cluster will be permitted when an additional foundational course may be required by other courses in the cluster.
  3. Within a cluster there can be choices, such as “take four of the five” or a choice between two course alternatives.
  4. May use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upper-division technical requirement.
  5. Twelve credits of non-198, 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 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 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 100 or Math. 176 CSE 140
CSE 21 or Math. 15B Major General Science CSE 140L (2 units)
Major General Science GE GE
JUNIOR YEAR
CSE 101 or Math. 188 CSE 105 or Math. 166 CSE 103 or Math. 183
CSE 141 CSE 120 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.
CSE Tech. Elec. CSE Tech. Elec. CSE Tech. Elec.
GE GE GE

B.S. 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 CSE 103 or Math. 183
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  

B.S. Computer Science, Sample Program starting with CSE 11

FALL WINTER SPRING
FRESHMAN YEAR
CSE 11 CSE 12 CSE 30
CSE 91 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 CSE 103 or Math. 183
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 B.S. Computer Science

(All courses must be taken for a letter grade.)

  1. Advisory placement exam: Students may self-select which course they wish to take and are encouraged to take the advisory placement exam to help decide. Students with little computer experience are encourage 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 faster paced version of CSE 8A, CSE 8AL, and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.
  2. 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.
    • Score of 5 exempts CSE 11. Student should take CSE 12.
  3. 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 ugradinfo@cs.ucsd.edu.
  4. CSE 15L and CSE 70 are new courses starting fall 2007.
  5. Effective fall 2010, CSE 70 is renumbered to CSE 110.
  6. CSE 15L must be taken prior to or concurrently with CSE 12.
  7. The CSE Undergraduate Committee would like students to start taking technical electives as soon as possible after completing CSE 30. Effective fall 2010, students must complete nine technical electives. Students must complete one cluster consisting of three to five courses. Students may 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 197may be used toward technical elective credit.
  8. Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upper-division technical requirement.
  9. 12 credits of non-198, 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. If you want to deviate from this list of approved electives, you must petition the CSE student advisor at ugradinfo@cs.ucsd.edu.

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 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 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 the program.

B.S. computer engineering program requires a total of 152 units (not including the general-education requirements). There are three varieties of requirements: lower-division, upper-division, 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 the following Web site: http://www-cse.ucsd.edu/undergraduate-education.html. Contact the CSE student affairs advising office at ugradinfo@cs.ucsd.edu if further assistance is needed.

1. Lower-Division Requirements

Students are expected to complete the following seventy-six 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, CSE 8AL, 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, Math. 20B, Math. 20C, Math. 20D, and Math. 20F; twenty units.

Physics

Phys. 2A, Phys. 2B, Phys. 2C, Phys. 2D; 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.

Introduction to Electrical Engineering

ECE 35, 45, 65; twelve units. These courses give a comprehensive introduction to electrical engineering.

Probability and Statistics

ECE 109; four units. This course can be taken in the sophomore year.

2. Upper-Division Requirements

All B.S. Computer engineering 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.

In addition, all B.S. Computer engineering students have to fulfill the following upper-division ECE requirements.

Linear Systems

ECE 101; four units. The department recommends that this course be taken in the junior year.

Electronic Circuits and Systems

ECE 102, ECE 108; eight 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, 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, CSE 8AL,
or CSE 11
CSE 15L CSE 21 or
Math. 15B
Math. 20A CSE 12 Math. 20C
GE Math. 20B GE
CSE 91 CSE 20 or
Math. 15A
GE
SOPHOMORE YEAR
CSE 30 CSE 110 CSE 140
Math. 20D CSE 100 or
Math. 176
CSE 140L
Phys. 2A ECE 45 ECE 65
ECE 35 Phys. 2B Phys. 2C
JUNIOR YEAR
CSE 101 or
Math. 188
CSE 120 CSE 105 or
Math. 166
CSE 141 Phys. 2D (Req. Tech. Elec.-
ECE 111 or
ECE 118)
CSE 141L ECE 102 ECE 108
ECE 101 Math. 20F CSE/ECE Tech. Elec.
SENIOR YEAR
CSE 130 CSE 131 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 B.S. Computer Engineering

(All courses must be taken for a letter grade.)

  1. Advisory placement exam: Students may self-select 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 faster paced version of CSE 8A, CSE 8AL, and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.
  2. 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.
    • Score of 5 exempts CSE 11. Students should take CSE 12, CSE 8A/8AL, or CSE 8B, or CSE 11 may be taken concurrently with and CSE 20/Math. 15A. Please obtain department approval for enrollment permission in CSE 20/Math. 15A at ugradinfo@cs.ucsd.edu. CSE 15L and CSE 70 are new courses starting fall 2007.
  3. CSE 15L must be taken prior to or concurrently with CSE 12.
  4. Effective fall 2006, ECE 35 and ECE 45 are new courses in computer engineering. These courses replace ECE 35A and 35B, respectively.
  5. Students must complete six technical electives. Four of the six technical electives must be CSE or ECE upper-division courses.
  6. Students must complete ECE 111 or ECE 118 to meet the design requirement.
  7. 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 either a CSE 197, 198, or 199 may be used toward technical elective credit.
  8. One 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 advisor at: ugradinfo@cs.ucsd.edu.

B.S. 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. Lower-Division Requirements

Lower-division requirements, sixty-four units: Students are expected to complete all lower-division requirements by the end of their sophomore year.

  1. Math. 20A, Math. 20B, Math. 20C, and Math. 20F, (16 units)
  2. Chem. 6A, Chem. 6B, Chem. 6C, and one Chem. lab (15 units)
  3. BILD 1, BILD 2, and BILD 94 (9 units)
  4. CSE 11, CSE 12, and CSE 21 or Math. 15B (12 units)
  5. Phys. 2A, Phys. 2B, and Phys. 2C (12 units)

2. Upper-Division Requirements

Upper-division requirements, eighty-eight units (includes five CSE technical electives)

  1. CSE 100 or Math. 176 (Data Structures), (4 units)
  2. CSE 101 or Math. 188 (Algorithms), (4 units)
  3. Chem. 140A–140B (Organic Chemistry), (8 units)
  4. Chem. 114B (Biochemical Energetics and Metabolism) or BIBC 102 (Structural and Metabolic Biochemistry), (4 units)
  5. BIBC 103 (Biochemical Techniques), (4 units)
  6. BICD 100 (Genetics), (4 units)
  7. BIMM 100 (Molecular Biology) or Chem. 114D (Molecular and Cellular Biochemistry), (4 units)
  8. BIMM 101 (Recombinant DNA Lab), (4 units)
  9. BICD 110 (Cell Biology), (4 units)
  10. BIBC 110 (Physical Biochemistry) or Chem. 127 (Physical Chemistry), (4 units)
  11. Five additional CSE upper-division 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, 134A

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

    • Group III: CSE 132A, 132B, 133

    The bioinformatics series comprises the following six courses, twenty-four units:

  12. CSE 181 or BIMM 181 or BENG 181 (Molecular Sequence Analysis), (4 units)
  13. CSE 182 or BIMM 182 or BENG 182 or Chem. 182 (Biological Databases), (4 units)
  14. BENG 183 (Applied Genomic Technologies), (4 units)
  15. CSE 184 or BIMM 184 or BENG 184 (Computational Molecular Biology), (4 units)
  16. BIMM 185 (Bioinformatics lab), (4 units)
  17. Math. 186 (Probability and Statistics), (4 units)

3. B.S. Computer science with a specialization in bioinformatics, sample program

FALL WINTER SPRING
FRESHMAN YEAR
CSE 8A/8AL +
8B or 111
CSE 12 BILD 942
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. 1763
CSE 101 or
Math. 188
CSE 1814
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. 15 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 UCSD. This course gives an overview of issues and topics in bioinformatics.

3 CSE 30 prerequisite will be waived.

4 New courses for the bioinformatics program: CSE 181 is cross-listed with BIMM 181 and BENG 181; CSE 182 is cross-listed with BIMM 182, Chem. 182, and BENG 182; CSE 184 is cross-listed with BIMM 184 and BENG 184; and (BENG 183, BIMM 185, and Math. 186 are not cross-listed with any other courses).

5 Students must complete five CSE technical electives from the approved list.

B.A. Computer Science Program

The 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 116 units for the B.A. computer science program (not including the general-education requirements). There are three varieties of requirements: lower-division, upper-division, 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 the following Web site: http://www-cse.ucsd.edu/undergraduate-education.html. Contact the CSE student affairs advising office at ugradinfo@cs.ucsd.edu if further assistance is needed.

1. Lower-Division Requirements

Students are expected to complete the following forty-eight 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 faster paced 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. 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, 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

B.A. computer science students are required to take seven technical electives for a total of twenty-eight units. Five technical electives must be computer science and engineering upper-division 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 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 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 100 or Math. 176 CSE 140
CSE 21 or Math. 15B Major General Science CSE 140L (2 units)
Major General Science GE GE
JUNIOR YEAR
CSE 101 or Math. 188 CSE 105 or Math. 166 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

B.A. 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

B.A. Computer Science, Sample Program starting with CSE 11

FALL WINTER SPRING
FRESHMAN YEAR
CSE 11 CSE 12 CSE 20 or Math. 15A
CSE 91 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 B.A. Computer Science

(All courses must be taken for a letter grade.)

  1. Advisory placement exam: Students may self-select 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 faster paced version of CSE 8A, CSE 8AL, and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.
  2. 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.
    • Score of 5 exempts CSE 11. Student should take CSE 12.
  3. 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 ugradinfo@cs.ucsd.edu.
  4. CSE 15L and CSE 70 are new courses starting fall 2007.
  5. CSE 15L must taken prior to or concurrently with CSE 12.
  6. Effective fall 2010, CSE 70 is renumbered to CSE 110.
  7. Effective fall 2010, students must complete seven technical electives. Four of the severn technical electives must be CSE upper-division 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 197may be used toward technical elective credit.
  8. Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upper- division technical requirement.
  9. 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 advisor at ugradinfo@cs.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 upper-division courses from these and other disciplines that can be counted as technical electives.

Restrictions

  1. At most four units of CSE 197 may be used towards technical elective requirements.
  2. CSE 195 cannot be used towards course requirements.
  3. Undergraduate students must get instructor’s permission and departmental stamp to enroll in a graduate course.
  4. Students may not get duplicate credit for equivalent courses.
  5. The UC San Diego General Catalog should be consulted for equivalency information and any restrictions placed on the courses.
  6. 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 upper-division 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. 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.

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 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-C, Game Theory 109, Macroeconomics 110A-B-C, Mathematical Economics 113, Econometrics 120A-B-C, Applied Econometrics 121, 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, Principles of Discourse and Dialog 169, Psycholinguistics 170, Language and the Brain 172, and Sociolinguistics 175.

Engineering

Principles of Team Engineering 100, Team Engineering Laboratory 100L, Team Engineering 101.

Computer Science and Computer Engineering

Students are eligible to receive six units of technical elective credit for completing a combination of ENG 100 (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. With this combination, students will get credit for one technical elective. To receive credit for two technical electives, students must complete one more quarter of ENG 100L. This credit can be applied to fulfill the technical elective requirements.

Music

Computer Music II 172, Audio Production: Mixing and Editing 173.

Psychology

Introduction to Engineering Psychology 161.

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:

Application Procedure

To apply for admission to the CSE Honors Program, students must submit a formal application that includes the following information:

The application form is available online from the CSE department Web site 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:

Depending on students’ performance on their honors project, students are eligible to receive the following honors designations on their diploma:

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 advisor 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:

The faculty advisor can also provide an alternative presentation opportunity.

Unit Considerations

The CSE HonorsP 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

The CSE minor requires successful completion of a total of nine CSE courses. Lower-division courses are CSE 8B or CSE 11, CSE 12, CSE 20, CSE 21, and CSE 30. The remaining four CSE courses are CSE 100, CSE 101, and two additional CSE upper-division courses subject to enforcement of prerequisites.

CS Minor

Three-year 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 CSE 30
3rd Year
CSE 100 CSE 101 CSE Elective
CSE Elective    
CS Minor

Three-year plan for students starting with CSE 11

FALL WINTER SPRING
1st Year
CSE 11 CSE 20 CSE 12
2nd Year
CSE 21 CSE 30 CSE 100
3rd Year
CSE 101 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 faster paced 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 Non-Majors

The department offers a slow-pace 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.

Admission to Major

Freshmen Students

Freshmen students are invited to declare the CSE computer science, computer engineering, or computer science with a specialization in bioinformatics major. Starting fall 2008 the Department of CSE removed the “Impacted/Closed Status” and admission restrictions for freshmen applicants. This means the Department of CSE will accept all students that apply to the Department of CSE and are admitted by the UC San Diego Admissions Office.

Furthermore, freshmen students that start at UC San Diego as undeclared or in another major may also switch into a computer science or computer engineering major. Students may use the Major/Minor link under Tools at http://tritonlink.ucsd.edu to make this change.

Major choices for your selection

B.A. Computer Science (CS28)

B.S. Computer Science (CS26)

B.S. Computer Science with a Specialization in Bioinformatics (CS27)

B.S. Computer Engineering (CS25)

Admission to the department as a major, transfer, or minor is in accordance with the general requirements established by the Jacobs School of Engineering.

Transfer Students

Transfer students are invited to declare the CSE computer science, computer engineering, or computer science with a specialization in bioinformatics majors. Starting fall 2008 the Department of CSE removed the “Impacted/Closed Status” and admission restrictions for transfer applicants. This means the Department of CSE will accept all students that apply to the Department of CSE and are admitted by the UC San Diego Admissions Office.

Furthermore, transfer students that start at UC San Diego as undeclared or in another major may also switch into a computer science or computer engineering major. Students may use the Major/Minor link under Tools at http://tritonlink.ucsd.edu to make this change.

Major choices for your selection

B.A. Computer Science (CS28)

B.S. Computer Science (CS26)

B.S. Computer Science with a Specialization in Bioinformatics (CS27)

B.S. Computer Engineering (CS25)

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

B.S. in Computer Science with a Specialization in Bioinformatics

Freshmen and transfer students are invited to declare the CSE bioinformatics major. Starting fall 2008 the Department of CSE has removed the “Impacted/Closed Status” and admission restrictions for freshman and transfer applicants. This means the Department of CSE will accept all students that apply to the Department of CSE and are admitted by the UC San Diego Admissions Office.

Furthermore, freshmen and transfer students that start at UC San Diego as undeclared or in another major may also switch into the B.S. in Computer Science with a Specialization in Bioinformatics major (major code CS27). Students may use the Major/Minor link under Tools at http://tritonlink.ucsd.edu to make this change.

It is strongly recommended that students meet with an advisor in the Department of CSE to discuss requirements for the bioinformatics program.

Advanced Placement Credit: Application to Major Requirements

Effective January 14, 2005, the following CSE advanced placement equivalencies have been approved (a four-unit maximum for both tests).

Enrollment in CSE courses

All CSE and non-CSE majors may enroll in lower- and upper-division CSE courses. Students must meet course prerequisites.

Please note: Student demands exceed capacity in many CSE graduate courses. Accordingly, many CSE graduate courses may have enrollment restrictions, which give priority to students in the following order:

  1. CSE M.S. and CSE Ph.D. students.
  2. All others, with permission of the Department of Computer Science and Engineering.

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.) You may also contact ugradinfo@cs.ucsd.edu for more information.

UC Education Abroad Program (EAP) and UCSD’s Opportunities Abroad Program (OAP)

CSE majors are encouraged to participate in the UC Education Abroad Program (EAP) or UCSD’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 see a CSE undergraduate program advisor to discuss appropriate courses and programs for their plan of study. The advising office is located in Engineering Building Unit #3 (EBU 3B), Room 1231.

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 Web site at http://programsabroad.ucsd.edu. Financial aid can be used for EAP/OAP study, and special study-abroad 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 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.