Undergraduate Degree Programs


Computer science is embedded in all aspects of our daily life. Computer science and computer engineering jobs are well-known to be the fastest growing and most recession-proof professions. CSE's undergraduate programs build a strong foundation in software and hardware engineering, as well as the fundamentals of all major fields in computer science.  We offer a supportive environment for our students and prepare them well for solving our society’s most important and challenging problems.  

Lower division classes

In their first two years of study at UC San Diego, CSE students are prepared for advanced studies in programming. As part of this preparation, students will complete the following courses whether they are following the computer science curriculum or the computer engineering curriculum.  Please see CSE Course Placement Advice for assistance in choosing your first CSE course.  Course descriptions can be found in the UCSD Catalog

  • CSE 8A - Introduction to Computer Science:  Java (I)
  • CSE 8B - Introduction to Computer Science:  Java (II)
  • CSE 11 - Introduction to Computer Science & Object-Oriented Programming:  Java
  • CSE 12 - Basic Data Structures and Object-Oriented Design
  • CSE 15L - Software Tools and Techniques Laboratory
  • CSE 20 - Introduction to Discrete Mathematics
  • CSE 21 - Mathematics, Algorithms, and Systems Analysis
  • CSE 30 - Computer Organization and System Programming

Upper division classes, advanced studies

In their junior and senior years, CSE students study advanced topics across the spectrum of computer science. The core set of upper division courses first establishes depth of knowledge in theory, software, and hardware, and then builds students' breadth of knowledge in computer systems, programming systems, security/cryptography, and machine learning, vision, or graphics.  Students then build further breadth and depth through several elective courses, including opportunities for industry internships and research with faculty. Course descriptions can be found in the UCSD Catalog


  • Data structures and programming: CSE 100
  • Algorithms/theory: CSE 101 and CSE 105
  • Software engineering: CSE 110
  • Systems/networks: CSE 120 or CSE 123 or CSE 124
  • PL/databases: CSE 130 or CSE 132A
  • Security/cryptography: CSE 107 or CSE 127
  • Learning/vision/graphics: CSE 150A or CSE 150B or CSE 151A or CSE 151B or CSE 152A or CSE 158 or CSE 158R or CSE 167
  • Hardware/architecture: CSE 140 and CSE 141 or CSE 142, along with CSE 140L and CSE141L or CSE 142L


Major restrictions - The following majors may NOT double major or minor in CSE: 

- Any majors that fall under the Jacob's School of Engineering

- Data Science majors (DS25)

- Math-Computer Science majors (MA30) 


"Computer Science is no more about computers than astronomy is about telescopes." – Edsger Dijkstra