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
The Undergraduate Program
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 high-tech 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 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.
BS Computer Science Program
The lower-division BS 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 BS 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 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 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 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 http://www.ucsd.edu or see an adviser in the CSE advising offices.
- 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.
- A five-course 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 upper-division technical requirement.
- 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. 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 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 |
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 | 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 |
BS 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 BS Computer Science
(All courses must be taken for a letter grade.)
- 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.
- 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.
- 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.
- 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 prior to or concurrently with CSE 12.
- 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 197 may be used toward technical elective credit.
- Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upper-division technical requirement.
- Twelve 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 adviser at ugradinfo@cs.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 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.
The BS computer engineering program requires a total of 136 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 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 sixty-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, 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; twelve units. Math 20A is a prerequisite for Phys 2A. Students whose performance on the Department of Mathematics placement test permits them to start with Math 20B or a higher course may take Phys 2A in the fall quarter of the freshman year; all others will take Phys 2A in the winter quarter of the freshman year. Students who received high grades in both calculus and physics in high school may substitute the major’s sequence, Phys 4A-B-C for Phys 2A-B-C.
Introduction to Electrical Engineering
ECE 35, 45, 65; twelve units. These courses give a comprehensive introduction to electrical engineering.
2. Upper-Division 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; twenty-eight units.
In addition, all BS Computer engineering students have to fulfill the following upper-division 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 twenty-eight 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 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. 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 faster-paced version of CSE 8A, CSE 8AL and CSE 8B. CSE 8B or CSE 11 must be taken before CSE 12.* Students may self-select 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 ugradinfo@cs.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 upper-division technical elective credit.
-
Students must complete seven technical electives for a total of twenty-eight 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 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 ugradinfo@cs.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. 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.
- 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. Upper-Division Requirements
Upper-division requirements, eighty-eight 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 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
-
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, twenty-four units:
3. BS 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 |
1Students may take the slower paced version, CSE 8A + CSE 8AL + CSE 8B, instead of CSE 11.
2BILD 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.
3CSE 30 prerequisite will be waived.
4New 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).
5Students 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 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 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 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 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 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 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. 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 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 |
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 | 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: 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.
- 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.
- 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.
- 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 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 197 may be used toward technical elective credit.
- Students may take use up to eight units of CSE 198, CSE 199, or CSE 199H to meet the CSE upper-division technical requirement.
- 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 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
- 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 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:
- Junior-level 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 upper-division 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:
- 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., Calit2, 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. Lower-division 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 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 | |
3rd Year | ||
CSE 100 | CSE Elective | 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 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 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 Nonmajors
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
BA Computer Science (CS28)
BS Computer Science (CS26)
BS Computer Science with a Specialization in Bioinformatics (CS27)
BS 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
BA Computer Science (CS28)
BS Computer Science (CS26)
BS Computer Science with a Specialization in Bioinformatics (CS27)
BS 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
- 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 calculus-based physics series (Phys 2A-B-C) [For computer engineering majors]
- Highest level of introductory computer programming language (i.e. Java, C or C++) course offerings at the community college
BS 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 BS 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 adviser 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).
- Computer Science A Exam (Java Programming), two units:
- Score of 4 = exempt CSE 8A and 8AL; student should take CSE 11
- Score of 5 = exempt CSE 11
- Computer Science AB Exam (Java Programming, and Data Structures and Object-Oriented Programming), four units:
- Score of 4 or 5 = exempt CSE 11
- Score of 5 = exempt CSE 12 with department approval
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:
- CSE MS and CSE PhD students.
- 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 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 see a CSE undergraduate program adviser 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 website 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 UC San Diego 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.