Computer Science (COMPSCI)

Courses

COMPSCI C8 Foundations of Data Science 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Foundations of data science from three perspectives: inferential thinking, computational thinking, and real-world relevance. Given data arising from some real-world phenomenon, how does one analyze that data so as to understand that phenomenon? The course teaches critical concepts and skills in computer programming and statistical inference, in conjunction with hands-on analysis of real-world
datasets, including economic data, document collections, geographical data, and social networks. It delves into social and legal issues surrounding data analysis, including issues of privacy and data ownership.
Foundations of Data Science: Read More [+]

COMPSCI 9A Matlab for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Introduction to the constructs in the Matlab programming language, aimed at students who already know how to program. Array and matrix operations, functions and function handles, control flow, plotting and image manipulation, cell arrays and structures, and the Symbolic Mathematics toolbox.

Matlab for Programmers: Read More [+]

COMPSCI 9C C for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Self-paced course in the C programming language for students who already know how to program. Computation, input and output, flow of control, functions, arrays, and pointers, linked structures, use of dynamic storage, and implementation of abstract data types.

C for Programmers: Read More [+]

COMPSCI 9D Scheme and Functional Programming for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Fall 2015
Self-paced course in functional programming, using the Scheme programming language, for students who already know how to program. Recursion; higher-order functions; list processing; implementation of rule-based querying.

Scheme and Functional Programming for Programmers: Read More [+]

COMPSCI 9E Productive Use of the UNIX Environment 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Use of UNIX utilities and scripting facilities for customizing the programming environment, organizing files (possibly in more than one computer account), implementing a personal database, reformatting text, and searching for online resources.

Productive Use of the UNIX Environment: Read More [+]

COMPSCI 9F C++ for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Self-paced introduction to the constructs provided in the C++ programming language for procedural and object-oriented programming, aimed at students who already know how to program.

C++ for Programmers: Read More [+]

COMPSCI 9G JAVA for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Self-paced course in Java for students who already know how to program. Applets; variables and computation; events and flow of control; classes and objects; inheritance; GUI elements; applications; arrays, strings, files, and linked structures; exceptions; threads.

JAVA for Programmers: Read More [+]

COMPSCI 9H Python for Programmers 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Introduction to the constructs provided in the Python programming language, aimed at students who already know how to program. Flow of control; strings, tuples, lists, and dictionaries; CGI programming; file input and output; object-oriented programming; GUI elements.

Python for Programmers: Read More [+]

COMPSCI 10 The Beauty and Joy of Computing 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a computer using
a friendly, graphical language, and will complete a substantial team programming project related to their interests.
The Beauty and Joy of Computing: Read More [+]

COMPSCI W10 The Beauty and Joy of Computing 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2012
This course meets the programming prerequisite for 61A. An introduction to the beauty and joy of computing. The history, social implications, great principles, and future of computing. Beautiful applications that have changed the world. How computing empowers discovery and progress in other fields. Relevance of computing to the student and society will be emphasized. Students will learn the joy of programming a
computer using a friendly, graphical language, and will complete a substantial team programming project related to their interests.
The Beauty and Joy of Computing: Read More [+]

COMPSCI 39J Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2011, Fall 2010, Spring 2010
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39K Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2013, Spring 2011, Spring 2010
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39M Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2008
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39N Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2010, Fall 2009
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39P Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2013, Spring 2013, Fall 2012
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39Q Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2011
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 39R Freshman/Sophomore Seminar 1.5 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2016, Spring 2013
Freshman and sophomore seminars offer lower division students the opportunity to explore an intellectual topic with a faculty member and a group of peers in a small-seminar setting. These seminars are offered in all campus departments; topics vary from department to department and from semester to semester. Enrollment limits are set by the faculty, but the suggested limit is 25.

Freshman/Sophomore Seminar: Read More [+]

COMPSCI 47A Completion of Work in Computer Science 61A 1 Unit

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Implementation of generic operations. Streams and iterators. Implementation techniques for supporting functional, object-oriented, and constraint-based programming in the Scheme programming language. Together with 9D, 47A constitutes an abbreviated, self-paced version of 61A for students who have already taken a course equivalent to 61B.

Completion of Work in Computer Science 61A: Read More [+]

COMPSCI 47B Completion of Work in Computer Science 61B 1 Unit

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Iterators. Hashing, applied to strings and multi-dimensional structures. Heaps. Storage management. Design and implementation of a program containing hundreds of lines of code. Students with sufficient partial credit in 61B may, with consent of instructor, complete the credit in this self-paced course.

Completion of Work in Computer Science 61B: Read More [+]

COMPSCI 47C Completion of Work in Computer Science 61C 1 Unit

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
MIPS instruction set simulation. The assembly and linking process. Caches and virtual memory. Pipelined computer organization. Students with sufficient partial credit in 61C may, with consent of instructor, complete the credit in this self-paced course.

Completion of Work in Computer Science 61C: Read More [+]

COMPSCI 61A The Structure and Interpretation of Computer Programs 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Introduction to programming and computer science. This course exposes students to techniques of abstraction at several levels: (a) within a programming language, using higher-order functions, manifest types, data-directed programming, and message-passing; (b) between programming languages, using functional and rule-based languages as examples. It also relates these techniques
to the practical problems of implementation of languages and algorithms on a von Neumann machine. There are several significant programming projects.
The Structure and Interpretation of Computer Programs: Read More [+]

COMPSCI 61AS The Structure and Interpretation of Computer Programs (Self-Paced) 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2016, Fall 2015, Summer 2015 8 Week Session
Introductory programming and computer science. Abstraction as means to control program complexity. Programming paradigms: functional, object-oriented, client/server, and declarative (logic). Control abstraction: recursion and higher order functions. Introduction to asymptotic analysis of algorithms. Data abstraction: abstract data types, type-tagged data, first class data
types, sequences implemented as lists and as arrays, generic operators implemented with data-directed programming and with message passing. Implementation of object-oriented programming with closures over dispatch procedures. Introduction to interpreters and compilers. There are several significant programming projects. Course may be completed in one or two semesters. Students must complete a mimimum of two units during their first semester of 61AS.
The Structure and Interpretation of Computer Programs (Self-Paced): Read More [+]

COMPSCI 61B Data Structures 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Fundamental dynamic data structures, including linear lists, queues, trees, and other linked structures; arrays strings, and hash tables. Storage management. Elementary principles of software engineering. Abstract data types. Algorithms for sorting and searching. Introduction to the Java programming language.

Data Structures: Read More [+]

COMPSCI 61BL Data Structures and Programming Methodology 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Summer 2017 8 Week Session, Summer 2016 10 Week Session, Summer 2016 8 Week Session
The same material as in 61B, but in a laboratory-based format.

Data Structures and Programming Methodology: Read More [+]

COMPSCI 61C Machine Structures 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
The internal organization and operation of digital computers. Machine architecture, support for high-level languages (logic, arithmetic, instruction sequencing) and operating systems (I/O, interrupts, memory management, process switching). Elements of computer logic design. Tradeoffs involved in fundamental architectural design decisions.

Machine Structures: Read More [+]

COMPSCI 61CL Machine Structures (Lab-Centric) 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2009, Spring 2009, Fall 2008
The same material as in 61C but in a lab-centric format.

Machine Structures (Lab-Centric): Read More [+]

COMPSCI 70 Discrete Mathematics and Probability Theory 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Logic, infinity, and induction; applications include undecidability and stable marriage problem. Modular arithmetic and GCDs; applications include primality testing and cryptography. Polynomials; examples include error correcting codes and interpolation. Probability including sample spaces, independence, random variables, law of large numbers; examples include load balancing
, existence arguments, Bayesian inference.
Discrete Mathematics and Probability Theory: Read More [+]

COMPSCI C79 Societal Risks and the Law 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2013
Defining, perceiving, quantifying and measuring risk; identifying risks and estimating their importance; determining whether laws and regulations can protect us from these risks; examining how well existing laws work and how they could be improved; evaluting costs and benefits. Applications may vary by term. This course cannot be used to complete engineering unit or technical elective requirements for students
in the College of Engineering.
Societal Risks and the Law: Read More [+]

COMPSCI 88 Computational Structures in Data Science 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Spring 2016
Development of Computer Science topics appearing in Foundations of Data Science (C8); expands computational concepts and techniques of abstraction. Understanding the structures that underlie the programs, algorithms, and languages used in data science and elsewhere. Mastery of a particular programming language while studying general techniques for managing program complexity, e.g., functional
, object-oriented, and declarative programming. Provides practical experience with composing larger systems through several significant programming projects.
Computational Structures in Data Science: Read More [+]

COMPSCI 94 Special Topics 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2016, Fall 2015
Topics will vary semester to semester. See the Computer Science Division announcements.

Special Topics: Read More [+]

COMPSCI 97 Field Study 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward graduation.

Field Study: Read More [+]

COMPSCI 98 Directed Group Study 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Spring 2016
Seminars for group study of selected topics, which will vary from year to year. Intended for students in the lower division.

Directed Group Study: Read More [+]

COMPSCI 99 Individual Study and Research for Undergraduates 1 - 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
A course for lower division students in good standing who wish to undertake a program of individual inquiry initiated jointly by the student and a professor. There are no other formal prerequisites, but the supervising professor must be convinced that the student is able to profit by the program.

Individual Study and Research for Undergraduates: Read More [+]

COMPSCI C100 Principles & Techniques of Data Science 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017
In this course, students will explore the data science lifecycle, including question formulation, data collection and cleaning, exploratory data analysis and visualization, statistical inference and prediction​, and decision-making.​ This class will focus on quantitative critical thinking​ and key principles and techniques needed to carry out this cycle. These include languages for transforming, querying
and analyzing data; algorithms for machine learning methods including regression, classification and clustering; principles behind creating informative data visualizations; statistical concepts of measurement error and prediction; and techniques for scalable data processing.
Principles & Techniques of Data Science: Read More [+]

COMPSCI 146L Programmable Digital Systems Laboratory 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2015
Hardware description languages for digital system design and interactions with tool flows. Design, implementation, and verification of digital designs. Digital synthesis, partitioning, placement, routing, and simulation for Field-Programmable Gate Arrays. Large digital-system design concepts. Project design component – example, a full processor implementation with peripherals.

Programmable Digital Systems Laboratory: Read More [+]

COMPSCI C149 Introduction to Embedded Systems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2015, Fall 2014, Fall 2013
This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory
component, with emphasis on a semester-long sequence of projects.
Introduction to Embedded Systems: Read More [+]

COMPSCI 152 Computer Architecture and Engineering 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2016, Spring 2016, Spring 2014
Instruction set architecture, microcoding, pipelining (simple and complex). Memory hierarchies and virtual memory. Processor parallelism: VLIW, vectors, multithreading. Multiprocessors.

Computer Architecture and Engineering: Read More [+]

COMPSCI 160 User Interface Design and Development 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and
tools. Students will develop a user interface for a specific task and target user group in teams.
User Interface Design and Development: Read More [+]

COMPSCI 161 Computer Security 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Introduction to computer security. Cryptography, including encryption, authentication, hash functions, cryptographic protocols, and applications. Operating system security, access control. Network security, firewalls, viruses, and worms. Software security, defensive programming, and language-based security. Case studies from real-world systems.

Computer Security: Read More [+]

COMPSCI 162 Operating Systems and System Programming 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Basic concepts of operating systems and system programming. Utility programs, subsystems, multiple-program systems. Processes, interprocess communication, and synchronization. Memory allocation, segmentation, paging. Loading and linking, libraries. Resource allocation, scheduling, performance evaluation. File systems, storage devices, I/O systems. Protection, security, and
privacy.
Operating Systems and System Programming: Read More [+]

COMPSCI 164 Programming Languages and Compilers 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Spring 2016
Survey of programming languages. The design of modern programming languages. Principles and techniques of scanning, parsing, semantic analysis, and code generation. Implementation of compilers, interpreters, and assemblers. Overview of run-time organization and error handling.

Programming Languages and Compilers: Read More [+]

COMPSCI 168 Introduction to the Internet: Architecture and Protocols 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Fall 2016
This course is an introduction to the Internet architecture. We will focus on the concepts and fundamental design principles that have contributed to the Internet's scalability and robustness and survey the various protocols and algorithms used within this architecture. Topics include layering, addressing, intradomain routing, interdomain routing, reliable delivery, congestion
control, and the core protocols (e.g., TCP, UDP, IP, DNS, and HTTP) and network technologies (e.g., Ethernet, wireless).
Introduction to the Internet: Architecture and Protocols: Read More [+]

COMPSCI 169 Software Engineering 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Fall 2016
Ideas and techniques for designing, developing, and modifying large software systems. Function-oriented and object-oriented modular design techniques, designing for re-use and maintainability. Specification and documentation. Verification and validation. Cost and quality metrics and estimation. Project team organization and management. Students will work in teams on a substantial
programming project.
Software Engineering: Read More [+]

COMPSCI 170 Efficient Algorithms and Intractable Problems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Concept and basic techniques in the design and analysis of algorithms; models of computation; lower bounds; algorithms for optimum search trees, balanced trees and UNION-FIND algorithms; numerical and algebraic algorithms; combinatorial algorithms. Turing machines, how to count steps, deterministic and nondeterministic Turing machines, NP-completeness. Unsolvable and intractable
problems.
Efficient Algorithms and Intractable Problems: Read More [+]

COMPSCI 172 Computability and Complexity 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2016, Fall 2015, Spring 2015
Finite automata, Turing machines and RAMs. Undecidable, exponential, and polynomial-time problems. Polynomial-time equivalence of all reasonable models of computation. Nondeterministic Turing machines. Theory of NP-completeness: Cook's theorem, NP-completeness of basic problems. Selected topics in language theory, complexity and randomness.

Computability and Complexity: Read More [+]

COMPSCI 174 Combinatorics and Discrete Probability 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Spring 2015
Permutations, combinations, principle of inclusion and exclusion, generating functions, Ramsey theory. Expectation and variance, Chebychev's inequality, Chernov bounds. Birthday paradox, coupon collector's problem, Markov chains and entropy computations, universal hashing, random number generation, random graphs and probabilistic existence bounds.

Combinatorics and Discrete Probability: Read More [+]

COMPSCI 176 Algorithms for Computational Biology 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Fall 2015
Algorithms and probabilistic models that arise in various computational biology applications: suffix trees, suffix arrays, pattern matching, repeat finding, sequence alignment, phylogenetics, genome rearrangements, hidden Markov models, gene finding, motif finding, stochastic context free grammars, RNA secondary structure. There are no biology prerequisites for this course, but a strong quantitative
background will be essential.
Algorithms for Computational Biology: Read More [+]

COMPSCI 184 Foundations of Computer Graphics 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation
, and their matrix representations. Homogeneous coordinates, projective and perspective transformations. Algorithms for clipping, hidden surface removal, rasterization, and anti-aliasing. Scan-line based and ray-based rendering algorithms. Lighting models for reflection, refraction, transparency.
Foundations of Computer Graphics: Read More [+]

COMPSCI 186 Introduction to Database Systems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction
to transaction processing. Database system implementation to be done as term project.
Introduction to Database Systems: Read More [+]

COMPSCI 188 Introduction to Artificial Intelligence 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Ideas and techniques underlying the design of intelligent computer systems. Topics include search, game playing, knowledge representation, inference, planning, reasoning under uncertainty, machine learning, robotics, perception, and language understanding.

Introduction to Artificial Intelligence: Read More [+]

COMPSCI 189 Introduction to Machine Learning 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Theoretical foundations, algorithms, methodologies, and applications for machine learning. Topics may include supervised methods for regression and classication (linear models, trees, neural networks, ensemble methods, instance-based methods); generative and discriminative probabilistic models; Bayesian parametric learning; density estimation and clustering; Bayesian networks;
time series models; dimensionality reduction; programming projects covering a variety of real-world applications.
Introduction to Machine Learning: Read More [+]

COMPSCI C191 Quantum Information Science and Technology 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Fall 2014, Spring 2012
This multidisciplinary course provides an introduction to fundamental conceptual aspects of quantum mechanics from a computational and informational theoretic perspective, as well as physical implementations and technological applications of quantum information science. Basic sections of quantum algorithms, complexity, and cryptography, will be touched upon, as well as pertinent physical
realizations from nanoscale science and engineering.
Quantum Information Science and Technology: Read More [+]

COMPSCI 194 Special Topics 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Topics will vary semester to semester. See the Computer Science Division announcements.

Special Topics: Read More [+]

COMPSCI 195 Social Implications of Computer Technology 1 Unit

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Fall 2016, Spring 2016
Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students will lead discussions on additional topics.

Social Implications of Computer Technology: Read More [+]

COMPSCI H195 Honors Social Implications of Computer Technology 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2014, Spring 2014, Fall 2013
Topics include electronic community; the changing nature of work; technological risks; the information economy; intellectual property; privacy; artificial intelligence and the sense of self; pornography and censorship; professional ethics. Students may lead discussions on additional topics.

Honors Social Implications of Computer Technology: Read More [+]

COMPSCI H196A Senior Honors Thesis Research 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not
be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science.
Senior Honors Thesis Research: Read More [+]

COMPSCI H196B Senior Honors Thesis Research 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Thesis work under the supervision of a faculty member. To obtain credit the student must, at the end of two semesters, submit a satisfactory thesis to the Electrical Engineering and Computer Science department archive. A total of four units must be taken. The units many be distributed between one or two semesters in any way. H196A-H196B count as graded technical elective units, but may not
be used to satisfy the requirement for 27 upper division technical units in the College of Letters and Science with a major in Computer Science.
Senior Honors Thesis Research: Read More [+]

COMPSCI 197 Field Study 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Summer 2017 First 6 Week Session
Students take part in organized individual field sponsored programs with off-campus companies or tutoring/mentoring relevant to specific aspects and applications of computer science on or off campus. Note Summer CPT or OPT students: written report required. Course does not count toward major requirements, but will be counted in the cumulative units toward
graduation.
Field Study: Read More [+]

COMPSCI 198 Directed Group Studies for Advanced Undergraduates 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Group study of selected topics in Computer Sciences, usually relating to new developments.

Directed Group Studies for Advanced Undergraduates: Read More [+]

COMPSCI 199 Supervised Independent Study 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Supervised independent study. Enrollment restrictions apply.

Supervised Independent Study: Read More [+]

COMPSCI C249A Introduction to Embedded Systems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Fall 2015
This course introduces students to the basics of models, analysis tools, and control for embedded systems operating in real time. Students learn how to combine physical processes with computation. Topics include models of computation, control, analysis and verification, interfacing with the physical world, mapping to platforms, and distributed embedded systems. The course has a strong laboratory
component, with emphasis on a semester-long sequence of projects.
Introduction to Embedded Systems: Read More [+]

COMPSCI 250 VLSI Systems Design 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Spring 2016
Unified top-down and bottom-up design of integrated circuits and systems concentrating on architectural and topological issues. VLSI architectures, systolic arrays, self-timed systems. Trends in VLSI development. Physical limits. Tradeoffs in custom-design, standard cells, gate arrays. VLSI design tools.

VLSI Systems Design: Read More [+]

COMPSCI 252 Graduate Computer Architecture 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2015
Graduate survey of contemporary computer organizations covering: early systems, CPU design, instruction sets, control, processors, busses, ALU, memory, I/O interfaces, connection networks, virtual memory, pipelined computers, multiprocessors, and case studies. Term paper or project is required.

Graduate Computer Architecture: Read More [+]

COMPSCI 260A User Interface Design and Development 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
The design, implementation, and evaluation of user interfaces. User-centered design and task analysis. Conceptual models and interface metaphors. Usability inspection and evaluation methods. Analysis of user study data. Input methods (keyboard, pointing, touch, tangible) and input models. Visual design principles. Interface prototyping and implementation methodologies and tools. Students
will develop a user interface for a specific task and target user group in teams.
User Interface Design and Development: Read More [+]

COMPSCI 260B Human-Computer Interaction Research 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2013
This course is a broad introduction to conducting research in Human-Computer Interaction. Students will become familiar with seminal and recent literature; learn to review and critique research papers; re-implement and evaluate important existing systems; and gain experience in conducting research. Topics include input devices, computer-supported cooperative work, crowdsourcing, design tools, evaluation methods
, search and mobile interfaces, usable security, help and tutorial systems.
Human-Computer Interaction Research: Read More [+]

COMPSCI 261 Security in Computer Systems 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2015, Fall 2013
Graduate survey of modern topics in computer security, including protection, access control, distributed access security, firewalls, secure coding practices, safe languages, mobile code, and case studies from real-world systems. May also cover cryptographic protocols, privacy and anonymity, and/or other topics as time permits.

Security in Computer Systems: Read More [+]

COMPSCI 261N Internet and Network Security 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2016, Spring 2015, Spring 2014
Develops a thorough grounding in Internet and network security suitable for those interested in conducting research in the area or those more broadly interested in security or networking. Potential topics include denial-of-service; capabilities; network intrusion detection/prevention; worms; forensics; scanning; traffic analysis; legal issues; web attacks; anonymity; wireless and networked
devices; honeypots; botnets; scams; underground economy; attacker infrastructure; research pitfalls.
Internet and Network Security: Read More [+]

COMPSCI 262A Advanced Topics in Computer Systems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2016, Spring 2016, Fall 2014
Graduate survey of systems for managing computation and information, covering a breadth of topics: early systems; volatile memory management, including virtual memory and buffer management; persistent memory systems, including both file systems and transactional storage managers; storage metadata, physical vs. logical naming, schemas, process scheduling, threading and concurrency control;
system support for networking, including remote procedure calls, transactional RPC, TCP, and active messages; security infrastructure; extensible systems and APIs; performance analysis and engineering of large software systems. Homework assignments, exam, and term paper or project required.
Advanced Topics in Computer Systems: Read More [+]

COMPSCI 262B Advanced Topics in Computer Systems 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2009, Fall 2008, Spring 2006
Continued graduate survey of large-scale systems for managing information and computation. Topics include basic performance measurement; extensibility, with attention to protection, security, and management of abstract data types; index structures, including support for concurrency and recovery; parallelism, including parallel architectures, query processing and scheduling; distributed
data management, including distributed and mobile file systems and databases; distributed caching; large-scale data analysis and search. Homework assignments, exam, and term paper or project required.
Advanced Topics in Computer Systems: Read More [+]

COMPSCI 263 Design of Programming Languages 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2014, Fall 2012, Spring 2012
Selected topics from: analysis, comparison, and design of programming languages, formal description of syntax and semantics, advanced programming techniques, structured programming, debugging, verification of programs and compilers, and proofs of correctness.

Design of Programming Languages: Read More [+]

COMPSCI 264 Implementation of Programming Languages 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2011, Spring 2010, Spring 2005
Compiler construction. Lexical analysis, syntax analysis. Semantic analysis code generation and optimization. Storage management. Run-time organization.

Implementation of Programming Languages: Read More [+]

COMPSCI 265 Compiler Optimization and Code Generation 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2013, Fall 2009, Spring 2003
Table-driven and retargetable code generators. Register management. Flow analysis and global optimization methods. Code optimization for advanced languages and architectures. Local code improvement. Optimization by program transformation. Selected additional topics. A term paper or project is required.

Compiler Optimization and Code Generation: Read More [+]

COMPSCI C267 Applications of Parallel Computers 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Spring 2015
Models for parallel programming. Fundamental algorithms for linear algebra, sorting, FFT, etc. Survey of parallel machines and machine structures. Exiting parallel programming languages, vectorizing compilers, environments, libraries and toolboxes. Data partitioning techniques. Techniques for synchronization and load balancing. Detailed study and algorithm/program development of medium
sized applications.
Applications of Parallel Computers: Read More [+]

COMPSCI 268 Computer Networks 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2016, Spring 2015, Spring 2014
Distributed systems, their notivations, applications, and organization. The network component. Network architectures. Local and long-haul networks, technologies, and topologies. Data link, network, and transport protocols. Point-to-point and broadcast networks. Routing and congestion control. Higher-level protocols. Naming. Internetworking. Examples and case studies.

Computer Networks: Read More [+]

COMPSCI 270 Combinatorial Algorithms and Data Structures 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Spring 2015
Design and analysis of efficient algorithms for combinatorial problems. Network flow theory, matching theory, matroid theory; augmenting-path algorithms; branch-and-bound algorithms; data structure techniques for efficient implementation of combinatorial algorithms; analysis of data structures; applications of data structure techniques to sorting, searching, and geometric problems.

Combinatorial Algorithms and Data Structures: Read More [+]

COMPSCI 271 Randomness and Computation 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2011, Fall 2008, Fall 2005
Computational applications of randomness and computational theories of randomness. Approximate counting and uniform generation of combinatorial objects, rapid convergence of random walks on expander graphs, explicit construction of expander graphs, randomized reductions, Kolmogorov complexity, pseudo-random number generation, semi-random sources.

Randomness and Computation: Read More [+]

COMPSCI 273 Foundations of Parallel Computation 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2012, Fall 2010, Spring 2009
. Fundamental theoretical issues in designing parallel algorithms and architectures. Shared memory models of parallel computation. Parallel algorithms for linear algegra, sorting, Fourier Transform, recurrence evaluation, and graph problems. Interconnection network based models. Algorithm design techniques for networks like hypercubes, shuffle-exchanges, threes, meshes and butterfly networks.
Systolic arrays and techniques for generating them. Message routing.
Foundations of Parallel Computation: Read More [+]

COMPSCI 274 Computational Geometry 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2015, Spring 2013
. Constructive problems in computational geometry: convex hulls, triangulations, Voronoi diagrams, arrangements of hyperplanes; relationships among these problems. Search problems: advanced data structures; subdivision search; various kinds of range searches. Models of computation; lower bounds.

Computational Geometry: Read More [+]

COMPSCI 276 Cryptography 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Fall 2015
Graduate survey of modern topics on theory, foundations, and applications of modern cryptography. One-way functions; pseudorandomness; encryption; authentication; public-key cryptosystems; notions of security. May also cover zero-knowledge proofs, multi-party cryptographic protocols, practical applications, and/or other topics, as time permits.

Cryptography: Read More [+]

COMPSCI C280 Computer Vision 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Spring 2015
Paradigms for computational vision. Relation to human visual perception. Mathematical techniques for representing and reasoning, with curves, surfaces and volumes. Illumination and reflectance models. Color perception. Image segmentation and aggregation. Methods for bottom-up three dimensional shape recovery: Line drawing analysis, stereo, shading, motion, texture. Use of object models
for prediction and recognition.
Computer Vision: Read More [+]

COMPSCI C281A Statistical Learning Theory 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Fall 2015
Classification regression, clustering, dimensionality, reduction, and density estimation. Mixture models, hierarchical models, factorial models, hidden Markov, and state space models, Markov properties, and recursive algorithms for general probabilistic inference nonparametric methods including decision trees, kernal methods, neural networks, and wavelets. Ensemble methods.

Statistical Learning Theory: Read More [+]

COMPSCI C281B Advanced Topics in Learning and Decision Making 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017, Spring 2016, Spring 2014
Recent topics include: Graphical models and approximate inference algorithms. Markov chain Monte Carlo, mean field and probability propagation methods. Model selection and stochastic realization. Bayesian information theoretic and structural risk minimization approaches. Markov decision processes and partially observable Markov decision processes. Reinforcement learning.

Advanced Topics in Learning and Decision Making: Read More [+]

COMPSCI 284A Foundations of Computer Graphics 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Techniques of modeling objects for the purpose of computer rendering: boundary representations, constructive solids geometry, hierarchical scene descriptions. Mathematical techniques for curve and surface representation. Basic elements of a computer graphics rendering pipeline; architecture of modern graphics display devices. Geometrical transformations such as rotation, scaling, translation
, and their matrix representations. Homogeneous coordinates, projective and perspective transformations.
Foundations of Computer Graphics: Read More [+]

COMPSCI 284B Advanced Computer Graphics Algorithms and Techniques 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2017
This course provides a graduate-level introduction to advanced computer graphics algorithms and techniques. Students should already be familiar with basic concepts such as transformations, scan-conversion, scene graphs, shading, and light transport. Topics covered in this course include global illumination, mesh processing, subdivision surfaces, basic differential geometry, physically based animation, inverse
kinematics, imaging and computational photography, and precomputed light transport.
Advanced Computer Graphics Algorithms and Techniques: Read More [+]

COMPSCI 286A Introduction to Database Systems 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Access methods and file systems to facilitate data access. Hierarchical, network, relational, and object-oriented data models. Query languages for models. Embedding query languages in programming languages. Database services including protection, integrity control, and alternative views of data. High-level interfaces including application generators, browsers, and report writers. Introduction
to transaction processing. Database system implementation to be done as term project.
Introduction to Database Systems: Read More [+]

COMPSCI 286B Implementation of Data Base Systems 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2014
Implementation of data base systems on modern hardware systems. Considerations concerning operating system design, including buffering, page size, prefetching, etc. Query processing algorithms, design of crash recovery and concurrency control systems. Implementation of distributed data bases and data base machines.

Implementation of Data Base Systems: Read More [+]

COMPSCI 287 Advanced Robotics 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2015, Spring 2015, Fall 2013
Advanced topics related to current research in algorithms and artificial intelligence for robotics. Planning, control, and estimation for realistic robot systems, taking into account: dynamic constraints, control and sensing uncertainty, and non-holonomic motion constraints.

Advanced Robotics: Read More [+]

COMPSCI 288 Natural Language Processing 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2014, Spring 2013, Spring 2011
Methods and models for the analysis of natural (human) language data. Topics include: language modeling, speech recognition, linguistic analysis (syntactic parsing, semantic analysis, reference resolution, discourse modeling), machine translation, information extraction, question answering, and computational linguistics techniques.

Natural Language Processing: Read More [+]

COMPSCI 289A Introduction to Machine Learning 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
This course provides an introduction to theoretical foundations, algorithms, and methodologies for machine learning, emphasizing the role of probability and optimization and exploring a variety of real-world applications. Students are expected to have a solid foundation in calculus and linear algebra as well as exposure to the basic tools of logic and probability, and should be familiar
with at least one modern, high-level programming language.
Introduction to Machine Learning: Read More [+]

COMPSCI 294 Special Topics 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Topics will vary from semester to semester. See Computer Science Division announcements.

Special Topics: Read More [+]

COMPSCI 297 Field Studies in Computer Science 12.0 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Summer 2017 First 6 Week Session
Supervised experience in off-campus companies relevant to specific aspects and applications of electrical engineering and/or computer science. Written report required at the end of the semester.

Field Studies in Computer Science: Read More [+]

COMPSCI 298 Group Studies Seminars, or Group Research 1 - 4 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Advanced study in various subjects through seminars on topics to be selected each year, informal group studies of special problems, group participation in comprehensive design problems, or group research on complete problems for analysis and experimentation.

Group Studies Seminars, or Group Research: Read More [+]

COMPSCI 299 Individual Research 1 - 12 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Summer 2017 Second 6 Week Session
Investigations of problems in computer science.

Individual Research: Read More [+]

COMPSCI 300 Teaching Practice 1 - 6 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Summer 2016 8 Week Session, Summer 2015 8 Week Session, Summer 2014 8 Week Session
Supervised teaching practice, in either a one-on-one tutorial or classroom discussion setting.

Teaching Practice: Read More [+]

COMPSCI 302 Designing Computer Science Education 3 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Spring 2014, Spring 2012, Spring 2011
Discussion and review of research and practice relating to the teaching of computer science: knowledge organization and misconceptions, curriculum and topic organization, evaluation, collaborative learning, technology use, and administrative issues. As part of a semester-long project to design a computer science course, participants invent and refine a variety of homework and exam activities
, and evaluate alternatives for textbooks, grading and other administrative policies, and innovative uses of technology.
Designing Computer Science Education: Read More [+]

COMPSCI 375 Teaching Techniques for Computer Science 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Spring 2017, Fall 2016
Discussion and practice of techniques for effective teaching, focusing on issues most relevant to teaching assistants in computer science courses.

Teaching Techniques for Computer Science: Read More [+]

COMPSCI 399 Professional Preparation: Supervised Teaching of Computer Science 1 or 2 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Summer 2017 8 Week Session, Spring 2017
Discussion, problem review and development, guidance of computer science laboratory sections, course development, supervised practice teaching.

Professional Preparation: Supervised Teaching of Computer Science: Read More [+]

COMPSCI 602 Individual Study for Doctoral Students 1 - 8 Units

Offered through: Electrical Engin and Computer Sci
Terms offered: Fall 2017, Fall 2016, Summer 2016 8 Week Session
Individual study in consultation with the major field adviser, intended to provide an opportunity for qualified students to prepare themselves for the various examinations required of candidates for the Ph.D. (and other doctoral degrees).

Individual Study for Doctoral Students: Read More [+]

Back to Top