Purpose

This document outlines the course requirements that one must meet when completing a PhD program at the University of California at San Diego (UCSD) in the Computer Science and Engineering (CSE) department. Unlike the official listing of requirements, this document contains links to the courses.

Course Requirements

Breadth

Students must take two courses from each of three areas of study:

  • Theory

  • Systems

  • Applications

Theory (select only two)

  • CSE 200: Computability and Complexity
  • 201A (Advanced Complexity)
  • CSE 202: Algorithm Design and Analysis
  • CSE 203A: Advanced Algorithms
  • CSE 205A: Logic in Computer Science
  • CSE 207: Modern Cryptography

Systems (select only two)

  • CSE 221: Operating Systems
  • CSE 222A: Computer Communication Networks
  • CSE 231: Advanced Compiler Design
  • An Embedded Systems course (select only one)
  • CSE 240A: Principles of Computer Architecture
  • A Very-Large-Scale Integration (VLSI) course (select only one)
    • CSE 241A: VLSI Integration of Computing Circuitry
    • CSE 243A: Introduction to Synthesis Methodologies in VLSI CAD
    • CSE 244A: VLSI Test

Applications (select only two)

  • CSE 210: Principles of Software Engineering 
  • CSE 216: (Human-Computer Interaction)
  • CSE 230: (Programming Languages)
  • CSE 232: Principles of Database Systems
  • A course in Computation Intellegence (select only one)
    • CSE 250A: Pricinples of Artificial Intelligence: Probablistic Reasoning and Learning
    • CSE 250B (Machine Learning)
  • A course in Computer Vision (select only one)
  • CSE 260: Parallel Computation
  • CSE 280A: Algorithms in Computational Biology (Bioinformatics) 

Depth

Students must take three courses in one of the following nine “depth areas”.

  • Theoretical Computer Science
  • Programming Languages, Compilers, and Software Engineering
  • Human-Computer Interaction
  • Computer Systems
  • Database Systems
  • Computer Engineering
  • Artificial Intelligence
  • Graphics and Vision
  • Bioinformatics

Theoretical Computer Science (CSE 200-203, 205-208)

  • CSE 200: Computability and Complexity
  • CSE 201: not found
  • CSE 203A: Advanced Algorithms
  • CSE 205A: Logic in Computer Science
  • CSE 206A: Lattice Algorithms and Applications
  • CSE 207: Modern Cryptography
  • CSE 208: Advanced Cryptography

Progamming Languages, Compilers, and Software Engineering (CSE 210, 218, 230, 231)

  • CSE 210: Principles of Software Engineering
  • CSE 218: Advanced Topics in Software Engineering
  • CSE 230: Principles of Programming Languages
  • CSE 231: Advanced Compiler Design

Human-Computer Interaction (CSE 170, 216, 218, 250A, COGS 220, CSE 219)

  • CSE 170: Introduction to Human-Computer Interaction Design
  • CSE 216: Research Topics in Human-Computer Interaction
  • CSE 218: Advanced Topics in Software Engineering
  • CSE 250A: Principles of Artificial Intelligence: Probablistic Reasoning and Learning
  • COGS 220: Information Visualization
  • CSE 219: Design at Large

Computer Systems (CSE 221-228, 260-262)

  • CSE 221: Operating Systems
  • CSE 222A: Computer Communication Networks
  • CSE 222B: Internet Algorithmics
  • CSE 223A: Priciniples of Distributed Computing
  • CSE 223B: Distributed Computing and Systems
  • CSE 227: Computer Security
  • CSE 260: Parallel Computation
  • CSE 262: System Support for Applications of Parllel Computation

Database Systems (CSE 232, 232B, 233)

Computer Engineering (CSE 231, 237A-D, 240A-248, ECE 260A-C, ECE 284)

  • CSE 231: Advanced Compiler Design
  • CSE 237A: Introduction to Embedded
  • CSE 237B: Software for Embedded Systems
  • CSE 237C: Validation and Testing of Embedded Systems
  • CSE 237D: Design Automation and Prototyping for Embedded Systems
  • CSE 240A: Principles of Computer Architecture
  • CSE 240B: Parallel Computer Architecture
  • CSE 240C: Advanced Microarchitecture
  • CSE 240D: Application Specific Processors
  • CSE 241A: VLSI Integration of Computing Circuitry
  • CSE 242A: Integrated Circuit Layout Automation
  • CSE 243A: Introduction to Synthesis Methodologies in VLSI CAD
  • CSE 244A: VLSI Test
  • CSE 245: Computer Aided Circuit Simulation and Verification
  • CSE 247: Application Specific and Reconfigurable Computer Architecture
  • CSE 248: Algorithmic and Optimization Foundations for VLSI CAD

Artificial Intelligence (CSE 250A-C, 253-258A, COGS 200, COGS 260)

  • CSE 250A: Principles of Artificial Intelligence: Probablistic Reasoning and Learning
  • CSE 250B (Machine Learning)
  • CSE 250C: Machine Learning Theory
  • CSE 254: Statistical Learning
  • CSE 255: Data Mining and Predictive Analytics
  • CSE 256: Statistical Natural Language Processing
  • CSE 258A: Cognitive Modeling
  • COGS 200: Cognitive Science Seminar
  • COGS 260: Seminar on Special Topics

Graphics and Vision (CSE 252A, 252B, 252C, 272, 274)

Bioinformatics (CSE 280A, 282, 283, MATH 283)

  • CSE 280A: Algorithms in Computational Biology (Bioinformatics) 
  • CSE 282: Bioinformatics II: Sequence and Structure Analysis
  • CSE 283: Bioinformatics III: Functional Genomics
  • MATH 283: Statistical Methods in Bioinformatics