Computability review, including halting problem, decidable sets, r.e. sets, many-one reductions; TIME(t(n)), SPACE(s(n)) and general relations between these classes; L, P, PSPACE, NP; NP—completeness; hierarchy theorems; RP, BPP. Prerequisites: CSE 105 or equivalent.
Polynomial-time hierarchy (PH); BPP in second level of PH; Savitch's theorem; NL=coNL; non-uniform and circuit complexity; some circuit lower bounds; IP=PSPACE; probabilistic proof checking (PCP); Application of PCP to approximation hardness; Complexity of proof systems; Parallel complexity classes NC and AC; P-completeness. Recommended preparation: CSE 200 is recommended. Prerequisites: graduate standing.
The basic techniques for the design and analysis of algorithms. Divide-and-conquer, dynamic programming, data structures, graph search, algebraic problems, randomized algorithms, lower bounds, probabilistic analysis, parallel algorithms. Prerequisites: CSE 101 or equivalent.
Modern advances in design and analysis of algorithms. Exact syllabus varies. Topics include approximation, randomized algorithms, probabilistic analysis, heuristics, online algorithms, competitive analysis, models of memory hierarchy, parallel algorithms, number-theoretic algorithms, cryptanalysis, computational geometry, computational biology, network algorithms, VLSI CAD algorithms. Prerequisites: CSE 202.
CSE 203B. Convex Optimization Formulations and Algorithms (4)
We study the formulations and algorithms solving convex optimization problems. The topics include convex sets, functions, optimality conditions, duality concepts, gradient descent, conjugate gradient, interior-point methods, and applications. The objective of the course is to provide students the background and techniques for scientific computing and system optimization. Prerequisites: Linear Algebra is recommended. Students cannot receive credit for CSE 203B if they have taken either ECE 273 or MATH 245B. Students may not receive credit for CSE 203B and CSE 291 (A00) taught Fall 2017 with the same subtitle.
(Formerly CSE 208D) Mathematical logic as a tool in computer science. Propositional logic, resolution, first-order logic, completeness and incompleteness theorems with computational viewpoint, finite model theory, descriptive complexity, logic programming, nonmonotonic reasoning, temporal logic. Applications to databases, automatic theorem proving, program verification, and distributed systems. Prerequisites: CSE 200 or consent of instructor.
(Formerly CSE 207C) Introduction to the algorithmic theory of point lattices (aka algorithmic geometry of numbers), and some of its most important applications in cryptography and cryptanalysis. Topics usually include: LLL basis reduction algorithm, cryptanalysis of broadcast RSA, hardness of approximating lattice problems. Prerequisites: CSE 202, CSE 200, or concurrent.
Private and public key cryptography, introduction to reduction based proofs of security, concrete security, block ciphers, pseudorandom functions and generators, symmetric encryption, asymmetric encryption, computational number theory, RSA and discrete log systems, message authentication, digital signatures, key distribution and key management. Prerequisites: CSE 202 or consent of instructor.
Zero-knowledge, secure computation, session-key distribution, protocols, electronic payment, one-way functions, trapdoor permutations, pseudorandom bit generators, hardcore bits. Prerequisites: CSE 202, CSE 200, and CSE 207 or consent of instructor.
Topics of special interest in algorithms, complexity, and logic to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
Topics of special interest in cryptography to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
(Formerly CSE 264A.) General principles in modern software engineering. Both theoretical and practical topics are covered. Theoretical topics include proofs of correctness, programming language semantics, and theory of testing. Practical topics include structured programming, modularization techniques, design of languages for reliable programming, and software tools. Prerequisites: CSE 100, 131A, 120, or consent of instructor.
Survey of testing and analysis methods. Introduction to advanced topics in area as well as traditional production methods. Topics include inspections and reviews, formal analysis, verification and validation standards, nonstatistical testing, statistical-testing and reliability models, coverage methods, testing and analysis tools, and organization management and planning. Methods special to special development approaches such as object-oriented testing will also be described. Prerequisites: undergraduate major in computer science or extensive industrial experience.
Prepares students to conduct original HCI research by reading and discussing seminal and cutting-edge research papers. Topics include design, social software, input techniques, mobile, and ubiquitous computing. Student pairs perform a quarter-long mini research project that leverages campus research efforts. Cross-listed with COGS 230. Prerequisites: none.
This course will cover a current topic in software engineering in depth. Topics in the past have included software tools, impacts of programming language design, and software system structure. (S/U grades permitted.) Prerequisites: none.
New societal challenges, cultural values, and technological opportunities are changing design—and vice versa. The seminar explores this increased scale, real-world engagement, and disruptive impact. Invited speakers from UC San Diego and beyond share cutting-edge research on interaction, design, and learning. Cross-listed with COGS 229. (S/U grades only.) Prerequisites: none.
Operating system structures, concurrent computation models, scheduling, synchronization mechanisms, address spaces, memory management protection and security, buffering, streams, data-copying reduction techniques, file systems, naming, caching, disk organization, mapped files, remote file systems, case studies of major operating systems. Prerequisites: CSE 120 and 121, or consent of instructor.
(Formerly CSE 222.) Computer communication network concepts, protocols, and architectures, with an emphasis on an analysis of algorithms, protocols, and design methodologies. Topics will include layering, error control, flow control, congestion control, switching and routing, quality of service management, mobility, naming, security, and selected contemporary topics. Prerequisites: CSE 123A or consent of instructor.
(Formerly CSE 228H.) Techniques for speeding up Internet implementations, including system restructuring, new algorithms, and hardware innovations. Topics include: models for protocols, systems and hardware; efficiency principles; applying these principles to deriving techniques for efficient implementation of common endnode and router functions. Prerequisites: CSE 123A or CSE 222A, or consent of instructor.
Former CSE Course is no longer offered.
Efficient primitives for distributed operating systems and high-performance network servers, including concurrent and event-driven server architectures, remote procedure calls, and load shedding. Distributed naming, directory, and storage services, replication for fault tolerance, and security in distributed systems. Prerequisites: CSE 221.
CSE 224. Graduate Networked Systems (4)
This course will provide a broad understanding of network design and implementation. Topics include techniques for building distributed applications, sockets programming, Remote Procedure Calls, scale-out distributed directories, distributed consensus and state management, fault tolerance, networked storage, indirection, overlay networks, load balancing, and datacenter design. Prerequisites: Advanced undergraduates can take the course with approval of instructor. This course is intended for MS students. Ph.D. students can only take the course if they are not in systems/networking concentrations.
Security and threat models, risk analysis, authentication and authorization, auditing, operating systems security, access control mechanisms, protection mechanisms, distributed systems/network security, security architecture, electronic commerce security mechanisms, security evaluation. Prerequisites: CSE 221 or consent of instructor.
Discussion on problems of current research interest in computer systems. Possible areas of focus include: distributed computing, computational grid, operating systems, fault-tolerant computing, storage systems, system services for the World Wide Web. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
Former CSE Course is no longer offered.
Discussion on problems of current research interest in computer security. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
(Formerly CSE 273.) Functional versus imperative programming. Type systems and polymorphism; the ML language. Higher order functions, lazy evaluation. Abstract versus concrete syntax, structural and well-founded induction. The lambda calculus, reduction strategies, combinators. Denotational semantics, elementary domain theory. Prerequisites: CSE 130 or equivalent, or consent of instructor.
(Formerly CSE 264C.) Advanced material in programming languages and translator systems. Topics include compilers, code optimization, and debugging interpreters. Prerequisites: CSE 100, 131A–B, or consent of instructor.
(Formerly CSE 264D.) Database models including relational, hierarchic, and network approaches. Implementation of databases including query languages and system architectures. Prerequisites: CSE 100 or consent of instructor.
A hands-on approach to the principles of databases implementation. Algebraic rewriters/optimizers, query processors, triggers. Beyond centralized relational databases. Prerequisites: CSE 232.
Theory of databases. Theory of query languages, dependency theory, deductive databases, incomplete information, complex objects, object-oriented databases, and more. Connections to logic and complexity theory including finite model theory and descriptive complexity. Prerequisites: CSE 200.
Embedded system technologies including processors, DSP, memory, and software. System interfacing basics, communication strategies, sensors, and actuators. Mobile and wireless technology in embedded systems. Using predesigned hardware and software components. Design case studies in wireless, multimedia, and/or networking domains. Prerequisites: basic courses in digital hardware, algorithms and data structures, elementary calculus, and probability; or consent of instructor.
Embedded computing elements, device interfaces, time-critical IO handling. Embedded software design under size, performance, and reliability constraints. Software timing and functional validation. Programming methods and compilation for embeddable software. Embedded runtime systems. Case studies of real-time software systems. Prerequisites: CSE 237A; or basic courses in programming, algorithms and data structures, elementary calculus, discrete math, computer architecture; or consent of instructor.
Embedded system building blocks including IP cores. Cosimulation. Formal verification using model checking. Verification environments. Test challenges in core integration: compliance, feature, random, and collision testing. Core access and test integration. Interface-based verification and standards. Prerequisites: CSE 237A; or basic courses in algorithms and data structures, elementary calculus, discrete math, symbolic logic, computer architecture; or consent of instructor.
System representation and modeling. Abstract and language models. Simulation as a modeling activity. Computational and hw/sw system prototypes. System analysis using models. Constraint and interface modeling. Behavioral compilation and synthesis. Prerequisites: CSE 237A; or basic courses in digital logic design, algorithms and data structures, elementary calculus, discrete math, symbolic logic, computer architecture; or consent of instructor.
Discussion on problems of current research interest in databases. Possible areas of focus include: core database issues, data management on the web, data integration, new database models and applications, formal methods in databases. Topics to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
(Formerly CSE 240.) This course will cover fundamental concepts in computer architecture. Topics include instruction set architecture, pipelining, pipeline hazards, bypassing, dynamic scheduling, branch prediction, superscalar issue, memory-hierarchy design, advanced cache architectures, and multiprocessor architecture issues. Prerequisites: CSE 141 or consent of instructor.
This course covers advanced topics in parallel computer architecture, including on-chip and off-chip interconnection networks, cache coherence, cache consistency, hardware multithreading, multi-core and tiled architectures. It incorporates the latest research and development on parallel architectures and compilation techniques for those architectures. CSE 240A recommended. Prerequisites: graduate standing.
This course covers advanced topics in computer architecture. It incorporates the latest research and development on topics such as branch prediction, instruction-level parallelism, cache hierarchy design, speculative multithreading, reliable architectures, and power-management techniques. CSE 240A recommended. Prerequisites: graduate standing.
Deep learning is set to revolutionize medicine, robotics, commerce, transportation and numerous other aspects of our lives. However, these impacts are contingent upon providing high-performance compute capabilities alongside restrained power consumption. Significant effort has been made both by modifying hardware and software in the direction of enhancing the speed of neural networks and their consumed energy. The compute intensity of neural networks and the inability of general purpose processors to meet this high demand accentuate the need for applications specific hardware accelerators that are custom designed for deep neural network computations. In this course, you will gain insight on the design process of these accelerators, as well as deep neural network architectures and characteristics by discussing the prevalent literature in the area. This is a project-based course, so you will also acquire hands-on knowledge on how to actually construct an accelerator through the project. The project will step by step guide you through outlining your architecture and developing a functional and timing simulator for it. Prerequisites: None
VLSI integrated-circuit building blocks of computing systems, and their implementation. Computer-aided design and performance simulations, design exercises and projects. Devices, standard cells and interconnects, clocking, power/ground distribution, arithmetic modules, memories. Methodologies and tradeoffs in system implementation. Prerequisites: layout (CSE 165 or ECE 260A) and logic design (CSE 140 or ECE 111), or consent of instructor.
Former CSE Course is no longer offered.
Hardware software co-design, architectural level synthesis, control synthesis and optimization, scheduling, binding, register and bus sharing, interconnect design, module selection, combinational logic optimization, state minimization, state encoding, and retiming. Prerequisites: none.
Design for test, testing economics, defects, failures and faults, fault models, fault simulation, automatic test pattern generation, functional testing, memory, PLA, FPGA, microprocessor test, and fault diagnosis. Prerequisites: none.
This course is about computer algorithms, techniques, and theory used in the simulation and verification of electrical circuits. Prerequisites: CSE 241A or consent of instructor.
Former CSE Course is no longer offered.
Algorithmic techniques and optimization frameworks for large-scale, difficult optimizations. Primal-dual multicommodity flow approximations, approximations for geometric and graph Steiner formulations, continuous placement optimization, heuristics for Boolean satisfiability, multilevel methods, semidefinite programming, and application to other formulations (e.g., scheduling). Prerequisites: CSE 241A or CSE 242A, or consent of instructor.
Topics of special interest in computer architecture to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
Topics of special interest in VLSI to be presented by faculty and students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. Prerequisites: consent of instructor.
Former CSE Course is no longer offered.
Methods based on probability theory for reasoning and learning under uncertainty. Content may include directed and undirected probabilistic graphical models, exact and approximate inference, latent variables, expectation-maximization, hidden Markov models, Markov decision processes, applications to vision, robotics, speech, and/or text. Recommended preparation: CSE 103 or similar course. Prerequisites: graduate standing in CSE or consent of instructor.
(Formerly CSE 250B) Algorithms for supervised and unsupervised learning from data. Content may include maximum likelihood; log-linear models, including logistic regression and conditional random fields; nearest neighbor methods; kernel methods; decision trees; ensemble methods; optimization algorithms; topic models; neural networks; and backpropagation. Recommended preparation: CSE 103 or similar course. Prerequisites: graduate standing or consent of instructor.
(Formerly CSE 253) This course covers Hopfield networks, application to optimization problems layered perceptrons, recurrent networks, and unsupervised learning. Programming exercises explore model behavior, with a final project or exam on a cognitive science, artificial intelligence, or optimization problem of the student's choice. Prerequisites: graduate standing.
(Formerly CSE 250C) Theoretical foundations of machine learning. Topics include concentration of measure, the PAC model, uniform convergence bounds, and VC dimension. Possible topics include online learning, learning with expert advice, multiarmed bandits, and boosting. Recommended preparation: CSE 103 and CSE 101 or similar course. Prerequisites: graduate standing or consent of instructor.
Comprehensive introduction to computer vision providing broad coverage including low-level vision (image formation, photometry, color, image feature detection), inferring 3-D properties from images (shape-from shading, stereo vision, motion interpretation) and object recognition. Companion to CSE 252B covering complementary topics. Prerequisites: Math 10D and Math 20A–F or equivalent.
Comprehensive introduction to computer vision providing focused coverage of multiview geometry, structure from motion, image segmentation, motion segmentation, texture analysis and recognition, object detection, and image-based rendering. Companion to CSE 252A covering complementary topics. Prerequisites: Math 10D and Math 20A–F or equivalent.
Selected topics in computer vision and statistical pattern recognition, with an emphasis on recent developments. Possible topics include: grouping and segmentation, object recognition and tracking, multiple view geometry, kernel-based methods, dimensionality reduction, and mixture models. Prerequisites: CSE 252 or equivalent and CSE 250B or equivalent.
Learning algorithms based on statistics. Possible topics include minimum-variance unbiased estimators, maximum likelihood estimation, likelihood ratio tests, resampling methods, linear logistic regression, feature selection, regularization, dimensionality reduction, manifold detection. An upper-division undergraduate course on probability and statistics such as Math 183 or 186, or any graduate course on statistics, pattern recognition, or machine learning is recommended. Prerequisites: graduate standing.
Learning methods for applications. Content may include data preparation, regression and classification algorithms, support vector machines, random forests, class imbalance, overfitting, decision theory, recommender systems and collaborative filtering, text mining, analyzing social networks and social media, protecting privacy, A/B testing. Recommended preparation: CSE 103 or similar. Prerequisites: graduate standing or consent of instructor.
An introduction to modern statistical approaches to natural language processing: part of speech tagging, word sense disambiguation and parsing, using Markov models, hidden Markov models and probabilistic context-free grammars. Recommended prep: one of LIGN 165, LIGN 245, CSE 151, CSE 250A, or CSE 254.
Current methods for data mining and predictive analytics. Emphasis is on studying real-world data sets, building working systems, and putting current ideas from machine learning research into practice. Prerequisites: graduate standing.
Connectionist models and a sampling of other cognitive modeling techniques. Models of language processing, memory, sequential processes, and vision. Areas covered may vary depending on student and faculty interests. Can be repeated for credit. CSE 151 or CSE 250B or CSE 253 or CSE 254, or equivalent experience recommended. Prerequisites: graduate standing.
A weekly meeting featuring local (and occasional external) speakers discussing their current research in Artificial Intelligence Neural Networks, and Genetic Algorithms. (S/U grades only.) Prerequisites: none.
Former CSE Course is no longer offered.
(Formerly CSE 274A.) This course provides an overview of parallel hardware, algorithms, models, and software. Topics include Flynn’s taxonomy, interconnection networks, memory organization, a survey of commercially available multiprocessors, parallel algorithm paradigms and complexity criteria, parallel programming environments and tools for parallel debugging, language specification, mapping, performance, etc. Prerequisites: graduate standing or consent of instructor.
This course will explore design of software support for applications of parallel computation. Topics include: programming languages, run time support, portability, and load balancing. The course will terminate in a project. Prerequisites: consent of instructor.
Computer graphics techniques for creating realistic images. Topics include ray tracing, global illumination, subsurface scattering, and participating media. CSE 168 or equivalent recommended.
Computational photography overcomes the limitations of traditional photography using computational techniques from image processing, computer vision, and computer graphics. This course provides a comprehensive introduction to computational photography and the practical techniques used to overcome traditional photography limitations (e.g., image resolution, dynamic range, and defocus and motion blur) and those used to produce images (and more) that are not possible with traditional photography.
Selected topics in computer graphics, with an emphasis on recent developments. Possible topics include computer animation, shape modeling and analysis, image synthesis, appearance modeling, and real-time rendering. CSE 168 or CSE 169 recommended. Prerequisites: graduate standing or consent of instructor.
This course provides an introduction to the fundamentals of robotics across kinematics, sensor systems, estimation, control, and planning. The contents include: Introduction to robotics in general, kinematics of robot systems, robot arm systems, sensors for robots, basic vision for robots, estimation methods, perception, robot localization and navigation, control of robot systems, robot motion planning, robot task planning, robot architectures, and evaluation of robot systems. Prerequisites: It is expected that students have a solid understanding of linear algebra, can program in python or C++ and have a basic understanding of methods for reasoning under uncertainty. Students may not receive credit for CSE 276A and CSE 291 (D00) taught Spring 2018 with the same subtitle.
Robots are entering human spaces. How do we make them functional, useful, and acceptable? This course explores the core computational, engineering, and experimental challenges in human-robot interaction. Course topics include: shared autonomy, perception of people and context, coordination, collaboration, human-guided learning, robot design, and experimental robotics. Students will review seminal and recent papers in the field, and engage in team-based projects with physical, mobile robots. Prerequisites: This class requires expertise in software development. Prior exposure to robotics, computer vision, or machine learning is recommended. Students should be comfortable reading and analyzing scientific papers at the graduate level. Students may not receive credit for CSE 276B and CSE 291 (A00) taught Winter 2017 or CSE 291 (F00) taught Winter 2018 with the same subtitle.
The course will provide a comprehensive introduction to the key mathematical concepts used for modeling, implementing and evaluation of robot systems. The course will use small home assignments tasks and a larger robot project to exercise the topics covered in class. Prerequisites: The students should have a basic knowledge of mathematics and know one or more programming languages such as Python or Matlab for completion of homework assignments. Students may not receive credit for CSE 276C and CSE 291 (G00) taught Winter 2018 with the same subtitle.
Robotics has the potential to improve well-being for millions of people, support caregivers, and aid the clinical workforce. This course brings together engineers, clinicians, and end-users to explore this exciting new field. It is project-based, interactive, and hands-on, and involves working closely with stakeholders to develop prototypes that solve real-world problems. Students will explore the latest research in healthcare robotics, human-robot teaming, and health design. Prerequisites: JSOE students should be comfortable building and experimenting within their area of expertise (e.g., CSE, software dev., MAE, rapid prototyping). Students with clinical backgrounds should be familiar with translational research methods. Students may not receive credit for CSE 276D and CSE 291 (H00) taught Spring 2017 with the same subtitle. Program or Material Fee may apply.
End-to-end system design of embedded electronic systems including PCB design and fabrication, software control system development, and system integration. The course is an intensive capstone project course that provides students a chance to integrate knowledge from a wide range of domains into a single project.
CSE 276F. Machine Learning for Robotics (4)
The first half of this course covers basic concepts and algorithms of robotics, and the second half introduces the basic concepts, algorithms, and research trends of reinforcement learning. We assume that the course takers are interested in how to train a robot that can interact with the physical world by machine learning methods. We will instruct the students to build an armed robot in a simulated virtual environment through programming assignments. Prerequisites: instructor approval required.
(Formerly CSE 206B.) The course focuses on algorithmic aspects of modern bioinformatics and covers the following topics: computational gene hunting, sequencing, DNA arrays, sequence comparison, pattern discovery in DNA, genome rearrangements, molecular evolution, computational proteomics, and others. Prerequisites: CSE 202 preferred or consent of instructor.
(Formerly CSE 257A/BENG 202.) Introduction to methods for sequence analysis. Applications to genome and proteome sequences. Protein structure, sequence-structure analysis. Prerequisites: Pharm 201 or consent of instructor.
Annotating genomes, characterizing functional genes, profiling, reconstructing pathways. Prerequisites: Pharm 201, BENG 202/CSE 282, or consent of instructor.
CSE 284. Personal Genomics for Bioinformaticians (4)
This course provides an introduction to bioinformatics techniques for analyzing and interpreting human genomes. Topics covered include an introduction to medical and population genetics, ancestry, finding and interpreting disease-causing variants, genome-wide association studies, genetic risk prediction, analyzing next-generation sequencing data, how to scale current genomics techniques to analyze hundreds of thousands of genomes, and the social impact of the personal genomics revolution. Prerequisites: Programming experience, familiarity with the UNIX command line, and a basic course in probability and statistics are strongly recommended. Students may not receive credit for CSE 284 and CSE 291 (E00) taught Winter 2017 with the same subtitle.
(Formerly CSE 280A.) A seminar course in which topics of special interest in computer science and engineering will be presented by staff members and graduate students under faculty direction. Topics vary from quarter to quarter. May be repeated for credit. (S/U grades only.) Prerequisites: consent of instructor. (Offered as faculty resources permit.)
Topics of special interest in computer science and engineering. Topics may vary from quarter to quarter. May be taken for credit nine times with the consent of instructor. Prerequisites: consent of instructor. (S/U grades permitted.) (Offered as faculty resources permit.)
(Formerly CSE 282.) Computer science and engineering faculty will present one-hour seminars of the current research work in their areas of interest. Prerequisites: CSE graduate status.
The student will conceive, design, and execute a project in computer science under the direction of a faculty member. The project will typically include a large programming or hardware design task, but other types of projects are possible. Prerequisites: CSE graduate student status. (CS 75, 76, 77, 78, 79, 80, 81) (S/U grades only.)
Advanced study and analysis of active research in computer science and computer engineering. Discussion of current research and literature in the research specialty of the staff member teaching the course. Prerequisites: consent of instructor.
CSE 298. Independent Study (1–16)
Open to properly qualified graduate students who wish to pursue a problem through advanced study under the direction of a member of the staff. (S/U grades only.) Prerequisites: consent of instructor.
CSE 299. Research (1–16)
Research. Prerequisites: consent of faculty.
A course in which teaching assistants are aided in learning proper teaching methods by means of supervision of their work by the faculty: handling of discussions, preparation and grading of examinations and other written exercises, and student relations. May be used to meet teaching experience requirement for candidates for the PhD degree. Number of units for credit depends on number of hours devoted to class or section assistance. Prerequisites: graduate standing and consent of instructor.
Training in teaching methods in the field of computer science. This course examines theoretical and practical communication and teaching techniques particularly appropriate to computer science. Prerequisites: consent of faculty.