Provides an introduction to computers. Personal computing is emphasized, and students are introduced to word processing, spreadsheets, database management, graphics, and programming. Covers fundamentals of computing and current and future uses of computer technology, PC hardware, Windows operating system, applications software, networking and the Internet, and developments in the computer industry. Designed for students with little or no experience using computers. Students cannot receive credit for this course and Computer Science 2. (Formerly Computer Engineering 3.)
Quarter offered
Fall, Winter, Spring, Summer
Introduces programming in Java for students who have no prior programming experience. Students learn programming and documentation skills, as well as algorithmic problem-solving, and programming methodologies. Introduces computers, compilers, and editors. Students write small to medium-sized programs. This course and CSE 5C and CSE 5P cover similar concepts, but use different programming languages. Because
CSE 5J followed by CSE 11 is a two-quarter alternative to the accelerated course CSE 12A and
CSE 12L, engineering majors and students planning on continuing the programming sequence are encouraged to take
CSE 5J rather than CSE 5C or CSE 5P. Students may not receive credit for
CSE 5J taken concurrently or subsequently to CSE 12A, CSE 12B, or Computer Engineering 13. (Formerly CMPS 5J.)
General Education Code
MF
An overview of the theory, foundations, and practice of computer science with emphasis on what computers can and cannot do, now and in the future. Topics include algorithms and data, correctness and efficiency of algorithms, hardware, programming languages, limitations of computation, applications, and social issues. No programming skills are required as a prerequisite. Major concepts and open problems in computer science are presented without reliance on sophisticated mathematical tools. Students cannot receive credit for this course after completing CSE 15. (Formerly CMPS 10.)
Instructor
The Staff, Patrick Tantalo, Marilyn Walker
General Education Code
MF
Introduction to computer systems and assembly language and how computers compute in hardware and software. Topics include digital logic, number systems, data structures, compiling/assembly process, basics of system software, and computer architecture. May include C language. Students with no prior programming experience are strongly recommended to take CSE 3, Computer Science 5J, Computer Science 5P, Computer Science 10, or equivalent before taking this course. (Formerly Computer Engineering 12.)
Instructor
The Staff, Tracy Larrabee, Darrell Long, Jose Renau Ardevol, Matthew Guthaus, Max Dunne
Quarter offered
Fall, Winter, Spring, Summer
Introduction to computer systems and assembly language and how computers compute in hardware and software. Topics include digital logic, number systems, data structures, compiling/assembly process, basics of system software, and computer architecture. May include C language. Students with no prior programming experience are strongly recommended to take CSE 3, Computer Science 5J, Computer Science 5P, Computer Science 10, or equivalent before taking this course. (Formerly Computer Engineering 12L.)
Instructor
The Staff, Tracy Larrabee, Darrell Long, Jose Renau Ardevol, Matthew Guthaus, Max Dunne
Quarter offered
Fall, Winter, Spring, Summer
Introduction to the C programming language as a means for controlling embedded computing systems. Continuing the exploration begun in course 12, students move to higher levels of abstraction in the control of complex computer systems. Students cannot receive credit for both
CSE 13E and
CSE 13S. Course is 7 credits with integrated laboratory. (Formerly Computer Engineering 13, Computer Systems and C Programming, and Computer Engineering 13L, Computer Systems and C Programming Lab.)
Instructor
The Staff, Ethan Miller, Darrell Long, Gabriel Elkaim, Maxwell Dunne
Quarter offered
Winter, Spring
Focuses on C programming, command line, shell programming, editors, debuggers, source code control, and other tools. Examines basic computer systems, algorithm design, and development, data types, and program structures. Develops understanding of process model, compile-link-execute build cycle, language-machine interface, memory, and data representation. Students cannot receive credit for both
CSE 13S and
CSE 13E. Course is 7 credits with integrated laboratory.
Instructor
Darrell Long, Peter Alvaro, Faisal Nawab
Quarter offered
Fall, Winter, Spring
Introduction to applications of discrete mathematical systems. Topics include sets, functions, relations, graphs, predicate calculus, mathematical proof methods (induction, contraposition, contradiction), counting methods (permutations, combinations), and recurrences. Examples are drawn from computer science and computer engineering. Knowledge of computer programming is useful before taking this course. Students who do not have prior programing experience are strongly recommended to take Computer Science 5C, 5J, or 5P before taking this course. (Formerly Computer Engineering 16.)
Instructor
Tracy Larrabee, Martine Schlag, William Dunbar, Chen Qian, Alvaro Cardenas
General Education Code
MF
Quarter offered
Fall, Winter, Spring, Summer
Provides students with Python programming skills and the ability to design programs and read Python code. Topics include data types, control flow, methods and advanced functions, built-in data structures, and introduction to OOP. No prior programming experience is required. Students may not receive credit for
CSE 20 after receiving credit for
CSE 30. (Formerly CMPS 5P, Introduction to Programming in Python.)
Instructor
Narges Alvaro, Narges Norouzi, Tracy Larrabee, Faisal Nawab, Patrick Tantalo, Benedict Paten, Marilyn The Staff
General Education Code
MF
Quarter offered
Fall, Winter, Spring
Introduction to software development in Python focusing on structuring software in terms of objects endowed with primitive operations. Introduces concepts and techniques via a sequence of concrete case studies. Coursework consists of programming assignments and a final examination. Note that CSE 30 assumes some Python experience, students trained in a different language should self-study Python to prepare for CSE 30. See CSE Testout Exam for resources and further information.
Instructor
L. De Alfaro, P. Alvaro, D. Bailey, L. Kuper, A. Pang
Quarter offered
Fall, Winter, Spring
Addresses the use of information systems (IS) within a business enterprise. Subjects include computer hardware and software concepts, system design and implementation, telecommunications, data management, transaction-based systems, management information systems, and the use of IS to compete. Intended for technology and information management and business management economics majors. (Formerly TIM 50.)
Instructor
Ramakrishna Akella, John Musacchio, Yihsu Chen
Quarter offered
Fall, Winter, Spring
Students learn how information technology is used to deal with business requirements and/or solve business problems. Provides an understanding of structured computer systems analysis and design methodologies and techniques and their application to business information systems. Intended for technology and information management and business management economics majors. (Formerly TIM 58.)
Overview of human-centered technology and of its potential for increasing the quality of life and independence of disabled individuals. A substantial portion of the course is devoted to studying physical, psychological, and psychosocial aspects of disability. Topics include: diversity and integration, legislation, accessibility, and universal design. (Formerly Computer Engineering 80A.)
Instructor
Roberto Manduchi, Sri Kurniawan
General Education Code
PE-T
Focuses on the creation and management of technology start-ups and small companies, using case studies and team projects as the basis for learning and applying the course materials. (Formerly TIM 80C.)
Instructor
Subhas Desa, David Lee
Course examines: social data analytics--veracity, consistency, uncertainty, volume; statistical computation--misuse, bias, dispersion, correlation, regressions, differential scales, normal distributions, factor and cluster analysis, extrapolation, inference, simple programming; visual representations--communication, critique and design of infographics; applications--environment, energy, economics, education, empowerment. (Formerly Computer Science 80L.)
General Education Code
SR
Introduction to the evolution, technological basis, and services of the Internet, with descriptions of its underlying communications structure, routing algorithms, peer-to-peer hierarchy, reliability, and packet switching. Network security, mail, multimedia and data compression issues, HTML, and digital images. Students who have completed CSE 150 cannot receive credit for this course. (Formerly Computer Engineering 80N.)
Instructor
Chris Parsa, Tracy Larrabee, Patrick Mantey, Chen Qian
General Education Code
PE-T
Quarter offered
Fall, Winter, Spring
Introduction to social networks and game theory. Topics include the structure of social networks; the world wide web; the flow of information and behavior through networks; and the principles behind modern web search and search-ad placement. (Formerly Computer Science 17.)
Instructor
Phokion Kolaitis, Lise Getoor
General Education Code
SR
Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Provides a means for a small group of students to study a particular topic in consultation with a faculty sponsor. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Boolean algebra, logic minimization, finite-state machine design, sequential circuits, common logic elements, programmable logic devices, and an introduction to system level design. The electrical behavior of circuits including three state outputs, propagation delay, logic levels, and fanout. (Formerly Computer Engineering 100.)
Instructor
Scott Beamer, Martine Schlag
Quarter offered
Fall, Winter, Spring
Laboratory sequence illustrating topics covered in course 100. Two 2-hour laboratory sessions per week. Weekly laboratory assignments which require the use of the oscilloscopes, TTL circuits, computer-aided design and simulation tools, and programmable logic. Students are billed a materials fee. (Formerly Computer Engineering 100L.)
Instructor
Scott Beamer, Martine Schlag
Quarter offered
Fall, Winter, Spring
Introduction to abstract data types and basics of algorithms. Linked lists, stacks, queues, hash tables, trees, heaps, and graphs will be covered. Students will also be taught how to derive big-Oh analysis of simple algorithms. All assignments will be in C/C++. (Formerly Computer Science 101 Algorithms and Abstract Data Types.)
Instructor
The Staff, Patrick Tantalo, Manfred Warmuth, Allen Van Gelder, David Helmbold, Seshadhri Comandur, James Davis, Alex Pang
Quarter offered
Fall, Winter, Spring, Summer
Methods for the systematic construction and mathematical analysis of algorithms. Order notation, the RAM model of computation, lower bounds, and recurrence relations are covered. The algorithm design techniques include divide-and-conquer, branch and bound, and dynamic programming. Applications to combinatorial, graph, string, and geometric algorithms. (Formerly Computer Science 102.)
Instructor
The Staff, Manfred Warmuth, Allen Van Gelder, Suresh Lodha, David Helmbold, Daniel Fremont, Abhradeep Guha Thakurta
Quarter offered
Fall, Winter, Spring
Various representations for regular languages, context-free grammars, normal forms, simple parsing, pumping lemmas, Turing machines, the Church-Turing thesis, intractable problems, the P-NP question. (Formerly CMPS 130.)
Instructor
Delbert Bailey, Patrick Tantalo, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold, Seshadhri Comandur
Quarter offered
Fall, Winter, Spring
Turing machines, general phase-structure grammars, the Chomsky hierarchy, recursive functions, diagonalization, the Halting problem, computability and unsolvability, computational complexity, time and space bounds, NP-completeness with emphasis on reductions between problems from various areas. (Formerly CMPS 132.)
Instructor
Delbert Bailey, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold
Quarter offered
Fall, Spring
Disciplinary Communication (DC) course to be taken concurrently with course 132. Students satisfy the DC requirement by writing a survey paper on a topic related to computability and computational complexity. Possible topics include: an overview of a different model of computation (e.g., quantum computing); an overview of a major complexity class; a critical analysis of the Church-Turing thesis. Prerequisite(s): CSE 130; satisfaction of the Entry Level Writing and Composition requirements.Concurrent enrollment in CSE 132 required. Enrollment by permission of instructor.(Formerly CMPS 132W.)
Instructor
Delbert Bailey, Manfred Warmuth, Allen Van Gelder, Phokion Kolaitis, David Helmbold
Basic concepts and algorithms are reviewed including trees, Eulerian and Hamiltonian graphs, and graph transversal. Algorithms are explored to solve problems in connectivity, routing, matching, and embedding of graphs. Graph theory and algorithms are developed around applications in computer engineering. (Formerly Computer Engineering 177.)
Instructor
Martine Schlag
Introduction to fundamental tools of stochastic analysis. Probability, conditional probability; Bayes Theorem; random variables and transforms; independence; Bernnoulli trials. Statistics, inference from limited data; outcomes of repeated experiments; applications to design; assessment of relative frequency and probability; law of large numbers; precision of measurements. Elements of stochastic processes, Poisson processes; Markov chains. Students cannot receive credit for this course and Applied Mathematics and Statistics 131. (Formerly Computer Engineering 107.)
Instructor
Jose Garcia-Luna-Aceves, Mircea Teodorescu
General Education Code
SR
Quarter offered
Winter, Spring
Focuses on some of the foundational aspects of modern cryptography, namely, private and public key cryptography, digital signatures, pseudorandom generators and functions, message authentication codes, hash functions, and random oracles. Course also connects the formal concepts with some real-world applications, like RA, SSL, and bitcoin, exposing students to general concepts of probability theory, number theory, and rigorous proofs. (Formerly Computer Science 118.)
Instructor
Abhradeep Guha Thakurta
An introduction to the basic techniques used in compiler design. Topics include compiler structure, symbol tables, regular expressions and languages, finite automata, lexical analysis, context-free languages, LL(1), recursive descent, LALR(1), and LR(1) parsing; and attribute grammars as a model of syntax-directed translation. Students use compiler building tools to construct a working compiler. (Formerly Computer Science 104A.)
Instructor
Wesley Mackey, Owen Arden
Quarter offered
Winter, Spring
Advanced study of compiler implementation. Topics include compiler structure back end, run-time environments, storage management, garbage collection, register allocation, code generation, basic blocks, control flow, data flow, local and global optimization, interpretation, and machine-code generation. Students may not receive credit for this course and CSE 211. Taught in conjunction with CSE 211. (Formerly Computer Science 104B.)
An introduction to object-oriented techniques of software development including data abstraction, inheritance, polymorphism, and object-oriented design. Extensive practice using a computer to solve problems, including construction of graphical user interfaces and a multithreaded client/server applications. (Formerly Computer Science 109.)
Instructor
The Staff, Wesley Mackey
Quarter offered
Fall, Winter, Spring
Covers several programming languages and compares styles, philosophy, and design principles. Principles underlying declarative, functional, and object-oriented programming styles are studied. Students write programs emphasizing each of these techniques. (Formerly Computer Science 112.)
Instructor
W. Mackey, D. Long, C. Flanagan, A. Van Gelder, O. Arden, D. Harrison
Quarter offered
Fall, Winter, Spring
Introduction to parallel and concurrent programming. Topics include: types of parallel computers and programming platforms; design, implementation, and optimization of programs for parallel and multicore processors; basic and advanced programming techniques; performance analysis and load balancing; and selected parallel algorithms. (Formerly Computer Engineering 113 and Computer Science 113.)
Instructor
Tyler Sorensen
An in-depth study of the functional style of programming and functional abstraction, including the study of applicative functors and monads, and monadic parsers. (Formerly CMPS 153.)
Instructor
Cormac Flanagan
Emphasizes the characteristics of well-engineered software systems. Topics include requirements analysis and specification, design, programming, verification and validation, maintenance, and project management. Practical and research methods are studied. Imparts an understanding of the steps used to effectively develop computer software. (Formerly Computer Science 115.)
Instructor
The Staff, Jim Whitehead, Cormac Flanagan, Linda Werner, Richard Jullig, Narges Norouzi
Quarter offered
Fall, Winter, Spring
Students in teams specify, design, construct, test, and document a complete software system in a specialized application domain. Class time is spent in technical discussions and ongoing design reviews. A formal presentation and demonstration of each project is required. An organizational meeting will be held during the preceding quarter. Projects may be drawn from industry and campus research groups. (Formerly Computer Science 116.)
Instructor
Jim Whitehead, Luca De Alfaro, Linda Werner, Richard Jullig
General Education Code
PR-E
Continuation of
CSE 116. Students work in teams to develop, test, document, and deploy a substantial software project. Teams give a formal presentation and demonstration of each project. (Formerly Computer Science 117.)
Instructor
The Staff, Jim Whitehead, Luca De Alfaro, Linda Werner, Richard Jullig
Accelerated version of
CSE 115B and
CSE 115C. Students work in teams to develop, test, document and deploy a substantial software project. Each team gives a formal presentation and demonstration of their project. Students cannot receive credit for both
CSE 115D and any part of the 115B-115C sequence.
General Education Code
PR-E
Problem solving emphasizing recursion, data abstraction, and higher-order functions. Introduction to types and type checking, modular programming, and reasoning about program correctness.
Instructor
Owen Arden, Lindsey Kuper
Presents an opportunity to participate in Linux Kernel development--one of the preeminent open source projects. Through community involvement, students accelerate comprehension of computer science fundamentals and display their understanding and experience relevant to other programming projects. (Formerly Computer Science 107.)
Instructor
The Staff, Carl Maltzahn
Introduces programming and application development for mobile devices. Covers the SDK and main programming platforms available on mobile devices, methodologies for developing native applications, division of computation between the mobile platform and servers, and mobile-to-server communications. Introduces platforms based on JavaScript and HTML5 for the development of applications that are portable across platforms. Students develop components of applications, leading to fully functional applications by the end of the course. Course based on emulators and SDK tools, so ownership of a cellphone/tablet is not required for the course. (Formerly CMPS 121.)
Instructor
David Harrison, Luca De Alfaro, Narges Norouzi
Provides experience with applying computing to social issues. Case studies on multiple issues. For example: privacy, copyright, voting, education, poverty, energy, activism. Team project in which students develop software to address a pre-identified need of a global or local non-profit. (Formerly Computer Science 119.)
Instructor
Suresh Lodha, James Davis
General Education Code
PE-T
Introduction to computer architecture including examples of current approaches and the effect of technology and software. Computer performance evaluation, basic combinatorial and sequential digital components, different instruction set architectures with a focus on the MIPS ISA and RISC paradigm. Evolution of CPU microarchitecture from single-cycle to multi-cycle pipelines, with overview of super-scalar, multiple-issue and VLIW. Memory system, cache, virtual memory and relationship between memory and performance. Evolution of PC system architecture. May include advanced topics, such as parallel processing, MIMD, and SIMD. (Formerly Computer Engineering 110.)
Instructor
Scott Beamer, Ethan Miller, Jose Renau Ardevol, Heiner Litz, Sagnik Nath
Quarter offered
Fall, Winter, Spring
The design and use of microprocessor-based systems. Covers microprocessor and microcontroller architecture, programming techniques, bus and memory organization, DMA, timing issues, interrupts, peripheral devices, serial and parallel communication, and interfacing to analog and digital systems. (Formerly Computer Engineering 121.)
Instructor
Anujan Varma, David Harrison
Quarter offered
Fall, Spring
Laboratory sequence illustrating topics covered in CSE 121. Two 2-hour laboratory sessions per week. Students design, build, program, debug, document, and demonstrate a microprocessor-based system. Students are billed a materials fee. (Formerly Computer Engineering 121L.)
Instructor
Anujan Varma, David Harrison
Quarter offered
Fall, Spring
Introduces very large scale integrated (VLSI) custom integrated circuits. Topics include: semiconductor manufacturing, logic families, field-effect transistors (FETs), interconnect models, simulation, and circuits. Introduces the design flow from logic design to layout with a focus on high performance and low power. Students cannot receive credit for this course and
CSE 222A. (Formerly Computer Engineering 122.)
Instructor
Matthew Guthaus
First of a two-course sequence that is the culmination of the engineering program. Students apply knowledge and skills gained in elective track to complete a major design project. Students complete research, specification, planning, and procurement for a substantial project. Includes technical discussions, design reviews, and formal presentations; engineering design cycle, engineering teams, and professional practices. Formal technical specification of the approved project is presented to faculty. Students are billed a materials fee. (Formerly Computer Engineering 123A.)
Instructor
The Staff, Anujan Varma
General Education Code
PR-E
Second of two-course sequence in engineering system design. Students fully implement and test system designed and specified in
CSE 123A. Formal written report, oral presentation, and demonstration of successful project to review panel of engineering faculty required. Students are billed a materials fee. (Formerly Computer Engineering 123B.)
Instructor
The Staff, Anujan Varma, David Harrison
Verilog digital logic design with emphasis on ASIC and FPGA design. Students design and verify large-scale systems. Assignments and project use the Verilog Hardware Description Language with emphasis on verification and high-frequency ASIC/FPGA targets. (Formerly Computer Engineering 125.)
Instructor
Jose Renau Ardevol, Matthew Guthaus, Heiner Litz
Laboratory sequence illustrating topics covered in course 125. Two 2-hour laboratory sessions per week. Students are billed a materials fee. (Formerly Computer Engineering 125L.)
Instructor
Jose Renau Ardevol, Matthew Guthaus, Heiner Litz
First of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this first course, students complete the specification and planning for a substantial project. Topics covered: engineering design cycle, engineering teams, and professional practices. (Formerly Computer Engineering 129A.)
Instructor
Patrick Mantey, Gabriel Elkaim
Second of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this second course, students complete the research and procurement for a substantial project and a preliminary implementation. Students are billed a materials fee. Prerequisite(s):
CSE 121,
CSE 121L, and
CSE 129A. Previous or concurrent enrollment in CSE 185. Enrollment by permission of instructor. (Formerly Computer Engineering 129B.)
Instructor
Patrick Mantey, Gabriel Elkaim
General Education Code
PR-E
Third of a three-course sequence in which students apply knowledge and skills gained in elective track to complete a major design project. In this third course, students work in teams to complete the project specified and advanced in the first two courses. A formal written report, oral presentation, and demonstration of the successful project to a review panel of engineering faculty is required. Students are billed a materials fee. Prerequisite(s):
CSE 129B and CSE 185. Enrollment by permission of instructor. (Formerly Computer Engineering 129C.)
Instructor
Patrick Mantey, Gabriel Elkaim
Covers the principles governing computer-systems design and complexity; familiarity with memory, storage, and networking; concurrency and synchronization; layering (abstraction and modularity); naming; client-server and virtualized system models; and performance. Requires significant programming projects demonstrating mastery of these concepts. (Formerly Computer Engineering 105.)
Instructor
Ethan Miller, Gabriel Elkaim, Faisal Nawab, Peter Alvaro, David Harrison
Quarter offered
Fall, Winter, Spring
Fundamental principles of operating systems: process synchronization, deadlocks, memory management, resource allocation, scheduling, storage systems, and study of several operating systems. A major programming project will be required. (Formerly Computer Science 111.)
Instructor
The Staff, Ethan Miller, Wesley Mackey, Darrell Long, Peter Alvaro, Faisal Nawab
Introduction to computer security (including selected topics in network security). Access control. Security in programming languages. Basic cryptography. Security protocols. (Formerly CMPS 122.)
Instructor
Ethan Miller, Owen Arden, Alvaro Cardenas
Quarter offered
Fall, Spring
Detailed exploration of the internal design of an embedded operating systems kernel. Covers kernel structure and organization, device drivers, I/O systems, file systems, memory management, and security. Students complete significant programming projects that extend or modify existing operating systems. (Formerly Computer Engineering 114.)
Instructor
Ethan Miller, Darrell Long
Covers topics in distributed computing including communication, naming, synchronization, consistency and replication, fault tolerance, and security. Examples drawn from peer-to-peer systems, online gaming, the World Wide Web; other systems also used to illustrate approaches to these topics. Students implement simple distributed systems over the course of the quarter. (Formerly CMPS 128, Distributed Systems: File Sharing, Online Gaming, and More.)
Instructor
L. Kuper, E. Miller, D. Long, P. Alvaro
Quarter offered
Fall, Spring
Introduction to the contemporary concepts and techniques of artificial intelligence, including any or all of: machine perception and inference, machine learning, optimization problems, computational methods and models of search, game playing and theorem proving. Emphasis may be on any formal method of perceiving, learning, reasoning, and problem solving which proves to be effective. This includes both symbolic and neural network approaches to artificial intelligence. Issues discussed include symbolic versus nonsymbolic methods, local versus global methods, hierarchical organization and control, and brain modeling versus engineering approaches. Lisp or Prolog may be introduced. Involves one major project or regular programming assignments. (Formerly CMPS 140.)
Instructor
Narges Norouzi, Marilyn Walker, Lise Getoor, Yang
Quarter offered
Fall, Winter
Introduction to machine learning algorithms and their applications. Topics include classification learning, density estimation and Bayesian learning regression, and online learning. Provides introduction to standard learning methods such as neural networks, decision trees, boosting, and nearest neighbor techniques. (Formerly CMPS 142.)
Instructor
Manfred Warmuth, David Helmbold, Snigdha Chaturvedi, Yang Liu, Xin Wang
Quarter offered
Fall, Winter, Spring
Introduces the theory and practice of natural language processing (NLP)--the creation of computer programs that can understand, generate, and learn natural language. Introduces the three major subfields of NLP: syntax (the structure of a sentence); semantics (the explicit meaning of a single sentence); and pragmatics (the implicit meaning of a sentence when it is used in a specific discourse). Projects focus on the techniques useful for a particular application area, alternating in different years. Project application areas include information extraction, narrative understanding, sentiment analysis, dialogue systems, and question answering. (Formerly CMPS 143.)
Instructor
The Staff, Marilyn Walker
Provides a practical and project-oriented introduction to machine learning, with an emphasis on neural networks and deep learning. Starts with a discussion of the foundational pieces of statistical inference, then introduces the basic elements of machine learning: loss functions and gradient descent. Using these, presents logistic regression, or one-layer networks, and then moves on to more complex models: deep neural networks, convolutional networks for image recognition, and recurrent networks and LSTM for temporal and sequence data. Also covers the basics of dataset preparation and visualization and the performance characterization of the models created. Includes weekly homework and a final project that can be done in groups. (Formerly CMPS 144.)
Instructor
Luca De Alfaro, Narges Norouzi, Benedict Paten, Josh Stuart, David Haussler
Quarter offered
Winter, Spring
Covers the techniques, algorithms, and applications of data mining, including data preprocessing, data exploration, classification, clustering, mining text, and sequential and social data. (Formerly TIM 145.)
Provides an introduction to data-driven and algorithmic decision making, and ethical frameworks for evaluating automated systems. Emphasis on algorithmic literacy, critical analysis, and fundamental limitations of automated decision making. Covers concepts including predictive and causal modeling. Discusses bias, fairness, interpretability, privacy, and accountability. Finally, discusses notions of autonomy and algorithmic auditing.
Addresses issues arising in organizing communications among autonomous computers. Network models and conceptual layers; Internet-working; characteristics of transmission media; switching techniques (packet switching, circuit switching, cell switching); medium access control (MAC) protocols and local area networks; error-control strategies and link-level protocols; routing algorithms for bridges and routers; congestion control mechanisms; transport protocols; application of concepts to practical wireless and wireline networks and standard protocol architectures. Students who have completed
CSE 80N can take this course for credit. (Formerly CMPE 150.)
Concurrent enrollment in CSE 150L is required.
Instructor
Quian Chen, Katia Obraczka
Quarter offered
Fall, Winter, Spring
Illustrates the concepts covered in
CSE 150 and provides students with hands-on experience in computer networks. Students are billed a materials fee. (Formerly CMPE 150L.)
Instructor
Chris Parsa, Katia Obraczka, Chen Qian
Quarter offered
Fall, Winter, Spring
Provides an in-depth coverage of fundamental topics introduced in course 150 including routing, transport, and internetworking. Also introduces advanced concepts not covered in
CSE 150 including wireless, application-layer services, security, etc. (Formerly Computer Engineering 151.)
Instructor
The Staff, Bradley Smith, Jose Garcia-Luna-Aceves
Laboratory illustrating the concepts covered in
CSE 151: provides students with hands-on experience in computer networks. (Formerly Computer Engineering 151L.)
Instructor
The Staff, Bradley Smith, Jose Garcia-Luna-Aceves
Course focuses on the design and analysis of protocols for computer communication. Topics include: the safety, liveliness, and performance of communication protocols for medium access control (MAC); link control; routing and switching; multicasting; and end-to-end transport. Students cannot receive credit for this course and
CSE 250B.
Instructor
Jose Garcia-Luna-Aceves
Methods and tools used for network programming. Topics include: operating system (OS) support for network protocols; inter-process communication (IPC) facilities, such as pipes, sockets, and remote procedure call (RPC); design of client and server sides of network applications; network security; and programming projects. (Formerly Computer Engineering 156.)
Instructor
The Staff, Mehrdad Parsa, Anujan Varma
Laboratory sequence illustrating concepts taught in
CSE 156. Students learn use of network programming tools and methods via programming exercises. (Formerly Computer Engineering 156L.)
Instructor
The Staff, Mehrdad Parsa, Anujan Varma
Introduces the key concepts and techniques in the design of Internet of Things (IoT). Topics include dominant architectures and protocols for IoT, wireless infrastructure for IoT, hardware and software development methodologies, embedded software design for IoT, cloud software for IoT, and network and system security. Students work in teams on a project to design, prototype, and test a complete IoT system. Students are billed a materials fee.
Introduces techniques of modeling, transformation, and rendering for computer-generated imagery. Topics: 2D/3D primitives, projections, matrix composition, and shading algorithms. Programming assignments and major project required. Students cannot receive credit for both this course and course 260 in quarters when they are offered concurrently. Mastery of materials in the prerequisite courses will be verified with a quiz or assignment during the first two weeks of the course. (Formerly Computer Science 160.)
Instructor
Alex Pang, James Davis
Quarter offered
Fall, Spring
Complements
CSE 160, gaining additional competence with a number of important software development tools, graphics libraries, and graphical user interfaces. Topics include OpenGL, WebGL, rubberbanding, picking, sliders, buttons, dialog, event handling, double buffering, lighting, shading, materials, and textures. The topic list may be updated to reflect technological changes. (Formerly CMPS 160L.)
Instructor
Alex Pang, James Davis
Quarter offered
Fall, Spring
Concepts and methods for data analysis, information and scientific visualization, and effective communication of technical data. Topics include: mathematical foundations; scalar, vector, and tensor field visualization; multivariate visualization; and tree and graph visualizations. Applications are drawn from social-network analysis; environmental and space science; and medical imaging. Evaluation based on examinations, programming exercises, and a project. (Formerly CMPS 161.)
Instructor
Alex Pang, Suresh Lodha
Complements
CSE 161. Students gain additional competence with a number of important software development tools and techniques. Included are Paraview, Visualization Toolkit (VTK), and Insight Toolkit (ITK). Students get hands-on experience with designing transfer functions, isosurfacing, direct volume rendering, vector-field visualization techniques, as well as methods for dealing with non-spatial data. (Formerly CMPS 161L.)
Instructor
Alex Pang, Suresh Lodha
Covers concepts and methods for modeling and rendering static and dynamic scenes Topics include: mathematical foundations (e.g., splines and numerical integration; global illumination models; texture mapping; morphing; physically based animation; behavioral animations; and procedural animations. Evaluation based on examinations, programming exercises, and a project. (Formerly CMPS 162.)
Instructor
Alex Pang, James Davis
Complements CSE 162. Students gain additional competence in a hands-on computational laboratory setting. Representative examples include topics, such as interactive curve and surface design; shaders for advanced effects; crowd and behavioral animation; experiments with particle systems; facial animation; and motion and planning. (Formerly CMPS 162L.)
Instructor
Alex Pang, James Davis
Presents the basics of open-source programming tools to perform data analysis and create interactive visualizations and maps for the web, data integrity and scraping, statistical computation, simple and novel visualizations, and geomapping. The examples are drawn from social science, public policy, and data journalism. (Formerly CMPS 165.)
Theory and hands-on practice to understand what makes user interfaces usable and accessible to diverse individuals. Covers human senses and memory and their design implications, requirement solicitation, user-centered design and prototyping techniques, and expert and user evaluations. Interdisciplinary course for social science and engineering majors. Students cannot receive credit for this course and
CSE 265 or DANM 231. (Formerly Computer Engineering 131.)
Provides hands-on knowledge and experience with modern mobile computing platforms for sensing and interactions tasks. Students learn how to create usable applications on a sensor-laden, mobile computing platform with adequate level of user interface. (Formerly Computer Engineering 161.)
Instructor
Roberto Manduchi
Covers the concepts and methods needed to develop augmented reality (AR) and virtual reality (VR) applications. Topics include 3D modeling, graphics rendering, image compositing, occlusion handling, sensors, computer vision and image analysis, toolkits for AR, different display options, dynamics, interaction, and navigation. Prerequisite(s):
CSE 160 and
CSE 160L. Some knowledge of mobile platforms (e.g.,
CSE 118 or
CSE 167) is helpful, but not required. Enrollment is by instructor permission. Enrollment is restricted to juniors and seniors. (Formerly CMPS 168.)
Instructor
Alex Pang, James Davis
Uses weekly talks by leading industry practitioners and university researchers to provide in-depth exposure to the management of technology. Topics covered include product development, operations, strategy, finance, and marketing for technologies such as software and information systems. (Formerly TIM 101.)
Quarter offered
Fall, Winter, Spring
An in-depth examination of technological, strategic, marketing, and financial methods and analytical tools for the management of technology to enable cost-effective and rapid development of profitable and high quality technologies. Includes case studies and a comprehensive project. (Formerly TIM 105.)
High-technology enterprises must understand and operate effectively within their technology-business value chains in order to maximize profitability. This course develops and applies methods and tools for the design, optimization, selection, and management of these value chain networks. (Formerly TIM 125.)
Addresses methods and tools for financing technology development and projects. Includes approaches for coordinating finance and accounting with strategy and operations of firms; discounted cash-flow analysis; activity-based costing; financial planning; and elements of financial account and investment science. (Formerly TIM 130.)
Instructor
Ramakrishna Akella
Presents decision tools/theory with a focus on investment, finance, management, technology, and policy. Often, irreversible decisions are made without enough information to analyze the possible consequences. Course uses systematic approaches to analyze these types of situations to enable rational decisions. (Formerly TIM 165.)
Analysis of effective use of information systems within a business enterprise, with emphasis on gaining a competitive advantage. Integration of information systems with business strategy, financial justification, personnel, and organizational considerations are highlighted. Intended for technology and information management majors or senior engineering majors who have a business interest. (Formerly TIM 158.)
Introduction to the concepts, approaches, tools, and methodology of database design. Covers the entity-relationship model, the relational model, relational algebra, relational calculus, commercial languages (such as SQL and QBE), functional dependencies, normal forms, and design theory. Other topics may include knowledge-bases, constraint databases, and alternative database models. Students that have taken and passed
CSE 182 may not take
CSE 180 for credit. (Formerly CMPS 180.)
Quarter offered
Fall, Winter
Disciplinary Communication (DC) course to be taken concurrently with course 180. Students satisfy the DC requirement by producing a database design document, a document with comments on the source code for complex queries, and a literature survey or systems survey. (Formerly CMPS 180W.)
Instructor
Phokion Kolaitis
Introduction to the architecture and implementation of database systems. Topics covered include data storage, tree and hash indexes, storage management, query evaluation and optimization, transaction management, concurrency control, recovery, and XML data management. (Formerly CMPS 181.)
Instructor
The Staff, Sheldon Finkelstein
Concepts, approaches, tools, and methodology of database design. Topics include the entity-relationship model; the relational data model; normal forms; commercial languages such as SQL (SQL constraints, SQL triggers, and update languages); query-by-example (QBE); XML data model, and XML query language (XQuery); as well as relational database-management support for XML and object-relational features in database-management systems. Involves a database -application development project. Students that have taken and passed
CSE 180 cannot receive credit for
CSE 182 (Formerly CMPS 182).
The World-Wde Web is one of the main mechanisms by which computer applications are delivered to users. This course introduces the design of Web applications. Students learn the main technologies involved, and build web applications as part of homework assignments and group class projects.(Formerly CMPS 183.)
Instructor
The Staff, Jim Whitehead, Luca De Alfaro, Richard Jullig, David Harrison
General Education Code
PR-E
Quarter offered
Fall, Spring
Python basics; data extraction from CSV, JSON, XML, Excel, PDF, encoded text files; data cleaning, finding duplicates, missing data, fuzzy matching; data exploration, joining, aggregating, separating, correlation, clustering; web scraping, APIs, scraping data from social media, open data network. (Formerly CMPS 184.)
Writing by engineers and computer scientists to technical audiences. Writing exercises include: cover letter and resume for job application, tutorial writing, grant proposal, document specification, literature review, and a final technical report. Two oral presentations are also required, an in-class presentation and a poster presentation. Students also receive instruction in the use of UC library and journal database resources, and in the writing of a statement of purpose for graduate school application. Also offered as CSE 185S. (Formerly Computer Engineering 185, Technical Writing for Computer Engineers.)
Prerequisite(s):
CSE 101, one additional upper-division CSE course, and satisfaction of the Entry Level Writing and Composition requirements. Enrollment is restricted to computer science majors, or by permission of the instructor.
Cross Listed Courses
CSE 185S
Quarter offered
Fall, Winter, Spring
Weekly talks by industry experts, university researchers, field practitioners, and video presentations provide an in-depth exposure to a specific or a broad area of computer science and technology. Topics include emerging ideas, opportunities, challenges, and future of the industry. (Formerly CMPS 191.)
Instructor
The Staff, Suresh Lodha, James Davis, Marilyn Walker
Students hold tutoring hours, run a lab, or lead discussion section in conjunction with a regularly offered course and under close supervision by the course's instructor. Weekly meetings with a regular faculty member to discuss teaching techniques, pedagogy, sensitivity to students' needs, maintaining a comfortable learning environment, and strategies for handling difficult situations. Students submit a report on their teaching experience. Enrollment by permission of instructor and restricted to sophomores, juniors, and seniors. (Formerly CMPS 192.)
Instructor
David Helmbold
Students hold tutoring hours, run a lab, or lead discussion section in conjunction with a regularly offered course and under close supervision by the course's instructor. Weekly meetings with a regular faculty member to discuss teaching techniques, pedagogy, sensitivity to students' needs, maintaining a comfortable learning environment, and strategies for handling difficult situations. Students submit a report on their teaching experience. Enrollment by permission of instructor and restricted to sophomores, juniors, and seniors. (Formerly CMPS 192F.)
Instructor
David Helmbold
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not be repeated for credit. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Provides for individual programs of study with specific academic objectives carried out under the direction of a faculty member of the Computer Engineering Department and a willing sponsor at the field site using resources not normally available on campus. Credit is based on the presentation of evidence of achieving the objectives by submitting a written and oral presentation. May not be repeated for credit. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
A program of independent study arranged between a group of students and a faculty member. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency. Prerequisite(s): satisfaction of the Entry Level Writing and Composition requirements. Computer Engineering majors, CSE 123A or CSE 129A.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency. Consent of instructor required. Prerequisite:
CSE 123A.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
For fourth-year students majoring in computer engineering. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
For fourth-year students majoring in computer engineering. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Basic teaching techniques for teaching assistants, including responsibilities and rights of teaching assistants, resource materials, computer security, leading discussion or lab sessions, presentation techniques, maintaining class records, electronic handling of homework, and grading. The course examines research and professional training, including use of the library and online databases, technical typesetting, writing journal and conference papers, publishing in computer science and computer engineering, giving talks in seminars and conferences, and ethical issues in science and engineering. Required for all teaching assistants. Formerly CMPS 200 and CMPE 200.)
Instructor
The Staff, Katia Obraczka, Alex Pang, Suresh Loda
Rigorous analysis of the time and space requirements of important algorithms, including worst case, average case, and amortized analysis. Techniques include order-notation, recurrence relations, information-theoretic lower bounds, adversary arguments. Analysis of the key data structures: trees, hash tables, balanced tree schemes, priority queues, Fibonacci and binomial heaps. Algorithmic paradigms such as divide and conquer, dynamic programming, union-find with path compression, augmenting paths. Selected advanced algorithms. Introduction to NP-completeness. (Formerly Computer Science 201.)
Instructor
Sheldon Finkelstein, Patrick Tantalo, Allen Van Gelder, David Helmbold
Quarter offered
Fall, Winter
Fundamental combinatorial algorithms, graph algorithms, flow problems, matching problems, linear programming, integer programming, NP-completeness, approximation algorithms for optimization problems. (Formerly Computer Science 211.)
Instructor
Allen Van Gelder, Phokion Kolaitis, Seshiri Comandur
Finite automata and regular expressions, universal models of computation, computability and unsolvability, relations between complexity classes, hierarchy theorems, reductions, complete problems for the major complexity classes (L, NL, P, NP, PSPACE). Other topics may include complexity of counting and enumeration problems, complexity of approximation, randomized complexity classes. (Formerly Computer Science 210.)
Instructor
Manfred Warmuth, Phokion Kolaitis, David Helmbold, Sesh Comandur, Allen Van Gelder
The applications and uses of formal systems to computer science. Covers the syntax and semantics of propositional logic and first-order logic, normal forms, soundness and completeness theorems, Herbrand's theorem, unification and resolution, foundations of logic programming, automated theorem proving. Other topics may include deductive databases, database query languages, nonmonotonic reasoning. (Formerly Computer Science 217.)
Instructor
Allen Van Gelder, Phokion Kolaitis
Explores graph theory and algorithms for solving problems in engineering. A review of basic graph concepts and algorithms is followed by topics in network flow, partitioning, spectral analysis of graphs, graph isomorphism, and intractability. (Formerly Computer Engineering 277.)
Instructor
Martine Schlag
Covers current issues in programming languages. Language topics include object oriented, concurrent, functional, and logic programming, and other programmable applications such as symbolic manipulators and simulation. (Formerly Computer Science 203.)
Instructor
The Staff, Cormac Flanagan, Allen Van Gelder, Kuper Lindsey
Quarter offered
Winter, Spring
Covers issues in the design, implementation, analysis, and specification of programming languages. Topics include formal semantics (including operational, axiomatic, and denotational semantics), advanced type systems, program analysis (including abstract interpretation and model checking), specification, and verification. (Formerly Computer Science 253.)
Instructor
Cormac Flanagan, Owen Arden
Advanced study of compiler implementation. Topics include compiler structure back end, run-time environments, storage management, garbage collection, register allocation, code generation, basic blocks, control flow, data flow, local and global optimization, interpretation, machine code generation. Students may not receive credit for this course and
CSE 110B. Taught in conjunction with
CSE 110B. (Formerly Computer Science 204.)
Instructor
Wesley Mackey, Tyler Sorensen
Introduction to the general principles of software engineering. Covers current and classical topics from both practical and theoretical viewpoints. Topics include software evolution, project management, software inspections, design methods, requirements analysis and specification, software testing, maintenance, software implementation, human interfaces, and software engineering experimentation. (Formerly CMPS 276.)
Instructor
The Staff, Jim Whitehead, Luca De Alfaro, David Harrison
Detailed study of interlocking business, organizational, and technical issues in large-scale software reuse and component-based software engineering. Topics include architecture, design for reuse, domain engineering, model-driven development, domain-specific kits, components, frameworks, software agents, generators, problem-oriented languages, library design, reuse tools, patterns, and aspects. Assumes prior exposure to software engineering topics. (Formerly Computer Science 279.)
Advanced course on principles of database systems. Main topics include overview of the relational data model and relational query languages; recursive queries, datalog, and fixed-points; query processing and optimization; database design, dependencies, normal forms, and the chase procedure. Additional topics may include information integration, complex objects, semistructured data, and XML. (Formerly Computer Science 277.)
Instructor
Faisal Nawab, Phokion Kolaitis, Sheldon Finkelstein, Narges Norouzi
Advanced course in implementation techniques for database systems. For students who wish to do research in databases or to learn more about large-scale data processing. Topics include: indexing of complex data; techniques for high-volume concurrency control; query processing and optimization; database recovery; parallel database system architectures; database systems for streaming data; approximate query answering. Additional topics may include: self-managing database systems; advanced query optimization techniques; and query processing techniques for semi-structured data. (Formerly Computer Science 278.)
Instructor
The Staff, Phokion Kolaitis, Peter Alvaro, Sheldon Finkelstein
Mathematical techniques for analyzing systems to prove rigorous guarantees about their behavior. Fundamental algorithms for and advanced topics in modeling, specification, verification, correct-by-construction synthesis, and testing. Applications to hardware/software design, cybersecurity, robotics, machine learning. Course includes a final project.
Instructor
Daniel Fremont
Provides a thorough and fundamental treatment of the art of computer architecture. Topics include concepts of von Neumann architectures, methods of evaluating CPU performance, instruction-set design and examples, compiler issues, instruction pipelining, superscalar processors, methods for reduction of branch penalty, memory hierarchies, I/O systems, floating-point arithmetic, and current issues in parallel processing. (Formerly CMPE 202.)
Instructor
Scott Beamer, Jose Renau Ardevol, Heiner Litz
Quarter offered
Fall, Winter
Introduction to latest advances in computer architecture. Focuses on processor core design. Topics include simultaneous multithreading, thread level speculation, trace caches, novel out-of-order mechanisms, and energy-efficient processor core designs. Final project is modification/enhancement of an out-of-order processor on an FPGA development system. (Formerly Computer Engineering 221.)
Instructor
Jose Renau Ardevol
Laboratory sequence illustrating topics covered in course 221. (Formerly Computer Engineering 221L.)
Instructor
Jose Renau Ardevol
Advanced Very Large Scale Integrated (VLSI) custom integrated circuits. Topics include: semiconductors; field-effect transistors (FETs); circuits; and interconnect simulation, along with advanced material on manufacturability, variability, short-channel devices, and non-volatile memories. Students cannot receive credit for this course and
CSE 122. (Formerly Computer Engineering 222.)
Instructor
Matthew Guthaus
Design methodologies for Application Specific Integrated Circuits (ASICs). Topics include: behavioral specification; logic synthesis; standard-cell libraries; advanced timing analysis; and physical design automation tools. Familiarizes students with real-world tools during the design of a small system-on-a-chip project. Students are encouraged to fabricate and test their chips in an independent study. (Formerly Computer Engineering 223.)
Instructor
Matthew Guthaus
Introduces reconfigurable computing systems with emphasis on field-programmable devices. Topics include: architectures of field-programmable devices; novel reconfigurable systems; and hardware algorithms. Students are billed a materials fee. (Formerly Computer Engineering 225.)
Introduction to programming advanced parallel computer architecture. Topics may include: SIMD massively parallel processor arrays; streaming parallel coprocessors, such as graphics cards used for general-purpose processing (GPGPU); or other hybrid MIMD/SIMD architectures. Course has programming lab component, a project, and student presentation on related topics. (Formerly Computer Engineering 220.)
Instructor
Jose Renau Ardevol, Heiner Litz
Design methods for Field-Programmable Gate Arrays (FGPAs), including algorithms for technology mapping, routability estimation, placement, and routing. The relationship between FPGA architectures and their computer-aided design tools. Course project involves the modification and analysis of an FPGA tool. (Formerly Computer Engineering 229.)
Instructor
Martine Schlag
A detailed study of the issues involved in operating systems design and implementation. Readings cover current research topics and systems of historical significance. Topics include (but are not restricted to) process and memory management, protection, security, synchronization, performance evaluation, file systems, distributed systems. (Formerly Computer Science 221.)
Instructor
Ethan Miller, Darrell Long
Overview of research topics in distributed computer systems. Topics may include communication paradigms, process management, naming, synchronization and coordination, consistency and replication, fault tolerance, and security. Examples include distributed operating systems, distributed file and object systems, distributed document systems, and peer-to-peer systems. (Formerly Computer Science 232.)
Instructor
Ethan Miller, Darrell Long, Carl Maltzahn, Peter Alvaro, Lindsey Kuper
Overview of research topics in computer and network security. Topics may include cryptographic operations, security properties and policies, authentication and access control, attacks on computer systems and defenses against them, security in programming languages, and network protocols for security. (Formerly CMPS 223.)
Instructor
Ethan Miller, Darrell Long, Owen Arden, Alvaro Cardenas, The Staff
Cryptography has become ubiquitous, from light bulbs to atomic weapons. This course provides both a comprehensive introduction to applied cryptography and an additional focus on the human issues caused by bad implementations, bad processes, and broken algorithms. Knowledge of C Programming, Linux, and Virtual machines is required. (Formerly Computer Engineering 236 and Computer Science 236.)
Instructor
Darrell Long, The Staff
Topics include storage devices, storage architectures, local file systems, high-performance file systems, and next-generation storage devices and architectures; covers issues of performance, reliability, scalability, robustness, and security. (Formerly Computer Science 229.)
Instructor
Ethan Miller, Darrell Long, Carl Maltzahn
Prepares students for doing research in artificial intelligence. Major topics covered are search and heuristics, knowledge representation, planning, deduction and inference, reinforcement learning, associative pattern retrieval, and adaptive search. Discussion includes current research issues in AI problem-solving methods. Individualized projects. (Formerly Computer Science 240.)
Instructor
The Staff, Marilyn Walker, Narges Norouzi
Introduction to the acquisition, representation, and application of knowledge in expert systems. Topics include production systems, backward and forward chaining, dependency-directed backtracking, reasoning with uncertainty, certainty factors, fuzzy systems, knowledge representation (rules, frames, and semantic nets), inference engines, and metaknowledge. Discussion includes current research issues in adaptive expert systems. Involves one major project. Undergraduates may enroll in this course if they have completed
CSE 140. (Formerly Computer Science 241.)
Introduction to machine learning algorithms. Covers learning models from fields of statistical decision theory and pattern recognition, artificial intelligence, and theoretical computer science. Topics include classification learning and the Probably Approximately Correct (PAC) learning framework, density estimation and Bayesian learning, EM, regression, and online learning. Provides an introduction to standard learning methods such as neural networks, decision trees, boosting, nearest neighbor, and support vector machines. Requirements include one major experimental learning project or theoretical paper. Students may not receive credit for both this course and CSE 142. (Formerly CMPS 242.)
Instructor
Narges Norouzi, M Warmuth, David Helmbold, Yang Liu
Quarter offered
Fall, Spring
Covers the principles, algorithms, and applications of data mining, including mining sequential data, structured data, stream data, text data, spatiotemporal data, biomedical data, and other forms of complex data. Formerly TIM 245.)
Provides foundations of deep learning algorithms and principles. Topics include neural networks, deep learning principles, deep learning architectures such as convolutional neural networks and recurrent neural networks, autoencoders, generative adversarial networks, and reinforcement learning. (
CSE 244A and
CSE 244B formerly offered as one course, CSE 244.)
Introduction to machine learning models and algorithms for Natural Language Processing. Covers deep learning approaches and traditional machine learning models. Topics include an introduction to standard neural network learning methods such as feed-forward neural networks, recurrent neural networks, convolutional neural networks, and encoder-decoder models with applications to natural language processing problems such as utterance classification and sequence tagging. Requirements include a midterm, final, programming assignments, and a project. (CSE 244A and CSE 244B formerly offered as one course, CSE 244.)
Focuses on classic and current theories and research topics in the computational modeling of discourse and dialogue, with applications to human-computer dialogue interactions; dialogue interaction in computer games and interactive story systems; and processing of human-to-human conversational and dialogue-like language such as e-mails. Topics vary depending on the current research of the instructor(s) and the interests of the students. Students read theoretical and technical papers from journals and conference proceedings and present class lectures. A research project is required.
Cross Listed Courses
LING 245, CMPM 245
Instructor
Marilyn Walker
Graduate course covering basics of data science literacy and data science ethics. Topics include algorithmic discrimination, fairness, interpretability, privacy, and reproducibility. Key statistical topics such as generalization, causality, curse of dimensionality, and sampling bias are covered.
Surveys topics in contemporary deductive artificial intelligence (AI). Coursework involves weekly readings and a project. (Formerly Computer Science 247.)
Instructor
Narges Norouzi
Examines the mathematical and algorithmic foundations of data science including high dimensional data, probabilistic inequalities, dimensionality reduction, correlation detection, streaming algorithms, and clustering. (Formerly Computer Science 218.)
Provides a systematic methodology and corresponding set of methods and analytical tools in stochastic models; reinforcement learning; stochastic (neuro-)dynamic programming; Bayesian graphical models; inference; and social networks used for web analytics and machine learning to achieve business intelligence (BI) and support research and applications in computer science, computer engineering, and electrical engineering, applied mathematics and statistics, business, management, and economics. Includes exposure to Hadoop for large-scale computation. Students should have solid background in probability equivalent to statistics, stochastic, methods, calculus, (and preferably) stochastic processes and optimization, or mathematical maturity and exposure to business intelligence and algorithms. (Formerly TIM 251.)
Instructor
The Staff, Ramakrishna Akella
Issues resulting from organizing communication among autonomous computers. Includes network models and switching techniques; medium access control protocols and local area networks; error control and retransmission strategies; routing algorithms and protocols; congestion control mechanisms and end-to-end protocols; application-level protocols; and application of concepts to wireless and wireline networks, with emphasis on the Internet. (Formerly Computer Engineering 252A.)
Instructor
Jose Garcia-Luna-Aceves, Katia Obraczka, Chen Qian
Focuses on the design and analysis of protocols for computer communication. Topics include: the safety, liveliness, and performance of communication protocols for medium access control (MAC); link control; routing and switching; multicasting; and end-to-end transport. Students cannot receive credit for this course and
CSE 152. (Formerly CMPE 252B.)
Instructor
Jose Garcia-Luna-Aceves
Fiber-optic technology; fiber-optic link design; network protocol concepts; coding and error control; high-speed local area and metropolitan area networks; gigabit networks; error and congestion control; photonic networks; research topics. (Formerly Computer Engineering 254.)
Fundamental mechanisms for network security and their application in widely deployed protocols. In-depth treatment of security mechanism at the data-link, network, and transport layers for both wired and wireless networks. Covers mechanisms for privacy and integrity, and methods for intrusion detection. (Formerly CMPE 253.)
Instructor
Anujan Varma, Chen Qian
An interdisciplinary course on wireless communication and mobile computing. Covers the physical aspects of wireless communication but emphasizes higher protocol layers. Topics include cellular networks, packet radio and ad hoc networks, wireless transport protocols, security, and application-level issues. (Formerly Computer Engineering 257.)
Instructor
Jose Garcia-Luna-Aceves, Katia Obraczka, Chen Qian
Focuses on the networking aspects of sensor networks: protocols at the various layers and how they answer the specific requirements posed by these networks (e.g., data driven, energy efficient, etc.) and their applications (monitoring, tracking, etc.). Explores how physical layer and hardware issues may influence protocol design. (Formerly Computer Engineering 259.)
Instructor
Katia Obraczka, Chen Qian
Introduces current research and techniques of modeling, 2D/3D transformation, matrix composition, shading algorithms, and rendering to obtain computer-generated imagery. Programming assignments and major project required. Students cannot receive credit for both this course and
CSE 160. (Formerly Computer Science 260.)
Instructor
Alex Pang, James Davis
Covers advanced topics in visualization, e.g., tensor-field visualization, uncertainty visualization, information visualization. Topics vary with differing offerings of the course. Course includes lectures, exam, research paper reading/presentation, and projects. Final project is expected to be at a sufficiently advanced level for submission to a conference. Students work individually or in pairs. (Formerly Computer Science 261.)
An in-depth treatment of computer animation, including its origins in conventional animation, 2-D animation, inbetweening, motion control, morphing, graphical motion editors, animation languages, motion blur, simulation of articulated body motion, real-time animation, and special-purpose animation hardware. (Formerly Computer Science 262.)
Instructor
Alex Pang, James Davis
Explores high-quality interdisciplinary research using socio-economic data and software available on the Internet, and data curation, computation, and visualization to strengthen scientific inquiry to bear on large-scale societal problems. Applications include inequality, poverty, water, energy, environment, health, education, and democracy. Enrollment restricted to graduate students. Enrollment by instructor consent. (Formerly Computer Science 263.)
Introduces general concepts in computer vision, with an emphasis on geometric 3D reconstruction. Topics include radiometry, photometry, projective geometry, geometric camera model, epipolar geometry, stereo depth reconstruction, corner and edge features, point descriptors and matching, and optical flow. (Formerly Computer Engineering 264.)
Instructor
Roberto Manduchi
Theory and hands-on practice to understand what makes user interfaces usable and accessible to diverse individuals. Covers human senses and memory and their design implications, requirement solicitation, user-centered design and prototyping techniques, and expert and user evaluations. Individual research project. Interdisciplinary course for art, social science and engineering graduate students. Students cannot receive credit for this course and
CSE 165.
Cross Listed Courses
DANM 231
Addresses technological, strategic, marketing, financial methods, and analytical tools for management of technology in an integrated manner that enables the cost-effective and rapid development of profitable and high quality technologies. Includes case studies and a comprehensive project. (Formerly TIM 205.)
High technology enterprises must understand and operate effectively within their technology-business value chains in order to maximize profitability. Course develops and applies methods and tools for the design, optimization, selection, and management of these value chain networks. (Formerly TIM 225.)
Surveys structure of modern information technology, the relation of that structure to structure of the industry that creates it, and the economic forces that drive the players in the industry. Building on these technological and economic concepts, studies how firms can craft a technology and business strategy to create and capture value in the information technology product and/or services sectors. (Formerly TIM 211.)
Instructor
John Musacchio
Course covers major topics of information retrieval, including statistical characteristics of text, several important retrieval models, text clustering, text classification, text filtering, web analysis, information extraction, peer to peer research, distributed search, personalized search, and other related topics. (Formerly TIM 260.)
A first graduate course in optimization with an emphasis on problems arising in management and engineering applications. Objectives are to become experts in problem formulation, comfortable with software for solving these problems, and familiar with analytical methods behind these solver technologies. (Formerly TIM 206.)
Instructor
John Musacchio
A first graduate course in stochastic process modeling and analysis with an emphasis on applications in technology management, information systems design, and engineering. (Formerly TIM 207.)
Instructor
John Musacchio
Provides students with systematic methodology and analytical tools in data and text mining and business analytics. Also provides an integrated perspective and examines use of these methods in the field of knowledge services, such as online marketing, sponsored search, health care, financial services, recommender systems, etc. Includes training in the basic elements of stochastic optimization and other algorithmic approaches, such as stochastic dynamic programming, statistics, constrained optimization, and machine learning with exposure to software tools. These methods enable firms to achieve rapid, effective, and profitable optimization of knowledge-services management. (Formerly TIM 209.)
Instructor
Ramakrishna Akella
Weekly seminar covering topics of current research in computer science. Enrollment by permission of instructor. (Formerly CMPS 280A, Seminar in Computer Science Research.)
Instructor
The Staff, Marilyn Walker
Covers advanced research topics from the recent literature in database systems and related fields. Involves presentations from UCSC students and faculty, and guest talks from researchers in industry and other academic institutions. Enrollment by permission of instructor. (Formerly 280D.)
Instructor
Peter Alvaro, Faisal Nawab
Quarter offered
Fall, Winter
Weekly seminar covering topics of current research in software engineering. (Formerly CMPS 280G.)
Instructor
Cormac Flanagan, Luca De Alfaro
Weekly seminar on advanced topics in VLSI and computer-aided design (CAD). Students present and discuss modern issues in semiconductor design, fabrication, and CAD. Frequent guest speakers present pertinent results from industry and academia. (Formerly Computer Engineering 280G.)
Instructor
Matthew Guthaus
Quarter offered
Fall, Winter, Spring
Covers advanced topics and current research in the general area of human computation. Material is drawn from several disciplines that involve or deal with human computation, including computer vision, human-computer interaction, databases, and machine learning. The course comprises presentations from faculty, enrolled students, and external visitors. (Formerly CMPS 280H.)
Seminar series discussing advanced topics in information retrieval and knowledge management. Current research and literature are presented during each meeting. (Formerly 280I.)
Instructor
The Staff, Ramakrishna Akella
Weekly seminar covering topics of current research in computer graphics. Enrollment restricted to graduate students and by permission of instructor. (Formerly CMPS 280J.)
Instructor
James Davis, Alex Pang, Suresh Lodha
Quarter offered
Fall, Winter, Spring
Perspective on the theory, plus examples, and tools useful to technologists and engineers for successfully guiding and supporting sales and marketing endeavors and, thereby, ensuring funding, staffing, product appeal, positive customer relationships, and marketplace success. (Formerly TIM 280M.)
Covers advanced research topics from the recent literature in the uses of logic in computer science with particular emphasis on the applications of logic to the representation and the management of data. Involves presentations from UCSC students and faculty, and guest talks from researchers in other academic institutions or industrial research labs. Enrollment is by permission of the instructor and is restricted to graduate students. (Formerly CMPS 280L.)
Instructor
Phokion Kolaitis
Weekly seminar covering topics of current interest in machine learning. Enrollment is by permission of the instructor. Enrollment is restricted to graduate students. (Formerly CMPS 280M.)
Instructor
Manfred Warmuth, David Helmbold, Lise Getoor, Luca De Alfaro, Narges Norouzi, Yang Liu
Quarter offered
Fall, Winter, Spring
Weekly seminar series covering topics of current research in networks and networked systems. Current research work and literature in these areas are discussed. Prerequisite(s): permission of instructor. Enrollment is restricted to graduate students. (Formerly Computer Engineering 280N.)
Instructor
Jose Garcia-Luna-Aceves, Katia Obraczka, Chen Qian
Quarter offered
Fall, Winter, Spring
Covers current research in language-based approaches to security, distributed systems, databases, and formal verification. Students read and present papers from academic journals and conferences.
Instructor
Owen Arden, Lindsey Kuper
Quarter offered
Fall, Winter, Spring
Weekly seminar series covering topics of current research in parallel systems, architectures, and algorithms. Current research work and literature in these areas are discussed. (Formerly Computer Engineering 280P.)
Instructor
Jose Renau Ardevol
Quarter offered
Fall, Winter, Spring
Weekly seminar series covering topics of current research in computer systems. Enrollment by permission of instructor. (Formerly CMPS 280S AND CMPE 280S.)
Instructor
Ethan Miller, Darrell Long, Carlos Maltzahn, Heiner Litz
Quarter offered
Fall, Winter, Spring
Weekly seminar series in which distinguished speakers from industry, universities, and government discuss current developments in networking and computer technology. The emphasis is on open research questions that may lead to collaborative work with faculty and graduate students. (Formerly Computer Engineering 280T.)
Weekly graduate-level seminar series discussing advanced topics in computer vision and image analysis. Current research and literature presented during each meeting. Enrollment is by permission of the instructor. Enrollment is restricted to graduate students. (Formerly Computer Engineering 280V.)
Instructor
Roberto Manduchi
Quarter offered
Fall, Winter, Spring
Covers advanced research topics from the recent literature in distributed systems and related fields. Involves presentations from UCSC students and faculty. Enrollment is restricted to graduate students and by permission of the instructor.
Quarter offered
Fall, Winter, Spring
Covers advanced topics and current research in natural language processing. Focuses on student presentations and seminar participation. Enrollment is restricted to graduate students. Enrollment is by permission of the instructor. (Formerly CMPS 280Z.)
Instructor
Marilyn Walker
Quarter offered
Fall, Winter
Writing skills development for graduate engineers. Students produce a major writing project with many subtasks. Exercises includes fellowship application; mathematical and algorithmic description; use of tables and graphs; experiment description; and producing technical web sites, presentations, and posters. Enrollment is restricted to graduate students in biomolecular engineering, computer science and engineering, computer science, and electrical and computer engineering and by permission of the instructor. (Formerly CMPE 285.)
Instructor
Tracy Larrabee
Graduate seminar in algorithms and complexity theory on topics from recently published research journal articles and conference proceedings. Topics vary from year to year depending on the current research of the instructor(s) and interests of students. Students read technical papers from relevant journals and conference proceedings and present class lectures. Guest lectures may supplement the student presentations. A research project and/or paper may be required. (Formerly Computer Science 290A.)
In-depth study of current research topics in machine learning. Topics vary from year to year but include multi-class learning with boosting and SUM algorithms, belief nets, independent component analysis, MCMC sampling, and advanced clustering methods. Students read and present research papers; theoretical homework in addition to a research project. (Formerly Computer Science 290C.)
Instructor
David Helmbold, Lise Getoor, Xin Wang
An introduction to the design and analysis of neural network algorithms. Concentrates on large artificial neural networks and their applications in pattern recognition, signal processing, and forecasting and control. Topics include Hopfield and Boltzmann machines, perceptions, multilayer feed forward nets, and multilayer recurrent networks. (Formerly Computer Science 290D.)
Instructor
Manfred Warmuth
Object-oriented programming methodology is the application of abstract-data types and polymorphism to coding solution. Topics geared to beginning thesis research in this field. (Formerly Computer Science 290E.)
Combinatorial mathematics, including summation methods, working with binomial coefficients, combinatorial sequences (Fibonacci, Stirling, Eulerian, Harmonic, Bernoulli numbers), generating functions and their uses, Bernoulli processes, and other topics in discrete probability. Oriented toward problem solving, applications mainly to computer science, but also physics. (Formerly Computer Science 290F.)
Research seminar on current topics in software engineering. Topics vary from year to year depending on the current research of the instructor(s) and interests of students. Students read technical papers from relevant journals and conference proceedings. Synthesis and understanding of materials is demonstrated by a required research project. (Formerly Computer Science 290G.)
Instructor
Jim Whitehead, Cormac Flanagan, Luca De Alfaro
Focuses on current research topics in database systems. Different offerings cover different topics depending on current research of instructor(s) and the interests of students. Students read technical papers from journals and conference proceedings and present class lectures. A research project is required. (Formerly Computer Science 290H.)
Instructor
Phokion Kolaitis
A graduate seminar in computer graphics on topics from recently published research journal articles and conference proceedings. Topics vary from year to year depending on interests of students. Primary areas of interest are likely to be scientific visualization, modeling, rendering, scattered data techniques, wavelets, and color and vision models. Students read technical papers and present class lectures. Guest lecturers supplement the student presentations. A research project is required. (Formerly Computer Science 290B.)
Instructor
Alex Pang, Suresh Lodha, James Davis
Teaches participants about current methods and directions in active areas of Natural Language Processing research and applications. Students perform independent research and hone skills with state-of-the-art NLP tools and techniques.
Instructor
Snigdha Chaturvedi
Explores the foundations of crowdsourcing and computer-mediated collaboration. Covers the algorithmic and statistical foundations of crowdsourcing, introducing and analyzing algorithms, and experimenting with concrete systems. Also, provides an introduction to computational systems for mediating user interaction and collaboration. (Formerly Computer Science 290L.)
Instructor
Luca De Alfaro
Investigates selected topics in applied parallel computation. Topics may include numerical methods, artificial intelligence and machine learning algorithms, graphics and image processing, systolic algorithms, and the interplay between hardware and algorithms. Students are encouraged to investigate and discuss the parallelization of their own research. (Formerly Computer Engineering 290M.)
Selected topics of current interest in the area of computer system performance. Subjects may include aspects of large systems, performability, computer networks, storage subsystems, and nontraditional approaches and are subject to periodic revision. (Formerly Computer Engineering 290N.)
Focuses on some of the foundational aspects of convex and its relationship to modern machine learning. Discusses positive results--how can you solve convex optimization problems--and negative ones with statements like This family of problems is too hard to be solved in reasonable time. Course is divided into three parts, each exploring a different aspect of convex optimization: 1) algorithmic frameworks; 2) Oracle complexities; 3) the power of randomness. Through this course students are exposed to general concepts of convex geometry, learning theory, and rigorous proofs. (formerly CMPS 290O.)
Instructor
Abhradeep Guha Thakurta
Helps students achieve both expository knowledge and expertise in the field of data privacy. Focuses on fundamental techniques used in designing privacy-preserving, machine-learning systems in both academia and in the industry. Students are expected to read and understand recent research papers in the topic. (Formerly Computer Science 290P.)
Instructor
Abhradeep Guha Thakurta
Current research topics on computer programming languages. Topics vary year to year. Students read papers from current conferences and journals, and present class lectures. A research project is required. (Formerly Computer Science 290Q.)
Instructor
Cormac Flanagan, Lindsey Kuper
Focuses on current research topics in computer systems. Topics vary from year to year depending on the current research of the instructor(s) and the interests of the students. Students read technical papers from current journals and conference proceedings, and present class lectures. A research project is required. (Formerly Computer Science 290S.)
Instructor
The Staff, Ethan Miller, Darrell Long, Carl Maltzahn, Peter Alvaro, Faisal Nawab
Quarter offered
Fall, Winter
Current research topics on computer technology that is intentionally targeted to benefiting society. Topics vary year to year. Students read papers from current conferences and journals, and present class lectures. A research project is required. (Formerly Computer Science 290T.)
Research seminar on encryption and related technologies. Topics include theory of codes, random sequences and generators, public key cryptosystems, private key cyphers, key exchange protocols, quantum computing and cryptography. Major project required. Prerequisite: interview with instructor. (Formerly Computer Science 290X.)
A graduate seminar on a research topic in computer engineering which varies according to instructor. Possible topics include, but are not limited to, communication networks, data compression, special-purpose architectures, computer arithmetic, software reliability and reusability, systolic arrays. (Formerly Computer Engineering 293.)
Instructor
The Staff, Ethan Miller, Matthew Guthaus, Scott Beamer
Independent completion of a masters project under faculty supervision. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Independent study or research under faculty supervision. Although this course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Independent study or research under faculty supervision. Although this course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Independent study or research under faculty supervision. Although this course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Independent study or research under faculty supervision. Although this course may be repeated for credit, not every degree program will accept a repeated course toward degree requirements.
Quarter offered
Fall, Winter, Spring
Thesis research conducted under faculty supervision. Although the course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Thesis research conducted under faculty supervision. Although the course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Thesis research conducted under faculty supervision. Although the course may be repeated for credit, not every degree program will accept a repeated course towards degree requirements. Students submit petition to sponsoring agency.
Independent study or research under faculty supervision. Enrollment is restricted to graduate students. Recommended for part-time students. Students submit petition to sponsoring agency.
Quarter offered
Fall, Winter, Spring
Cross-listed Courses
Writing by engineers and computer scientists to technical audiences. Writing exercises include: cover letter and resume for job application, tutorial writing, grant proposal, document specification, literature review, and a final technical report. Two oral presentations are also required, an in-class presentation and a poster presentation. Students also receive instruction in the use of UC library and journal database resources, and in the writing of a statement of purpose for graduate school application. Also offered as CSE 185S. (Formerly Computer Engineering 185, Technical Writing for Computer Engineers.)
Cross Listed Courses
CSE 185S
Quarter offered
Fall, Winter, Spring
An introduction to information theory including topics such as entropy, relative entropy, mutual information, asymptotic equipartition property, channel capacity, differential entropy, rate distortion theory, and universal source coding. (Formerly EE 253 and CMPS 250.)
Cross Listed Courses
CSE 208
Instructor
Hamid Sadjadpour, Yu Zhang
Introduces modern game theory, including applications in social science, biology, and engineering. Topics include extensive form, strategic form, mixed strategies, incomplete information, repeated games, evolutionary games, and simulation techniques.
Cross Listed Courses
CSE 166A
Instructor
John Musacchio
Explores research frontiers in game theory, emphasizing applications in social science, biology, and engineering. Each interdisciplinary team develops a topic, and presents it to the class in oral and written reports and demonstrations. Students must have shown a strong performance in course 166A or equivalent. Students cannot receive credit for this course and
ECON 272, CSE 209, or BIOE 274.
Cross Listed Courses
CSE 166B
Reviews static equilibrium concepts, games of incomplete information, and the traditional theory of dynamic games in discrete time. Develops recent evolutionary game models, including replicator and best reply dynamics, and applications to economics, computer science, and biology. Prerequisite(s): upper-division math courses in probability theory are strongly recommended. Cannot receive credit for this course and
ECON 166B or CSE 166B.
Cross Listed Courses
BIOE 274, CSE 209
Introduces students to data visualization and statistical programming techniques using the R language. Covers the basics of the language, descriptive statistics, visual analytics, and applied linear regression. Enrollment is by permission of the instructor. (Formerly Applied Math and Statistics 266A and Computer Science 266A.)
Cross Listed Courses
CSE 266A
Instructor
The Staff, Suresh Lodha
Teaches students already familiar with the R language advanced tools such as interactive graphics, interfacing with low-level languages, package construction, debugging, profiling, and parallel computation. (Formerly Applied Math and Statistics 266B and Computer Science 266B.)
Cross Listed Courses
CSE 266B
Introduces students to concepts and tools associated with data collection, curation, manipulation, and cleaning including an introduction to relational databases and SQL, regular expressions, API usage, and web scraping using Python. (Formerly Applied Math and Statistics 266C and Computer Science 266C.)
Cross Listed Courses
CSE 266C
Instructor
Suresh Lodha, The Staff The Staff