## CS 109: Introduction to Probability for Computer Scientists

Topics include: counting and combinatorics, random variables, conditional probability, independence, distributions, expectation, point estimation, and limit theorems. Applications of probability in computer science including machine learning and the use of probability in the analysis of algorithms. Prerequisites: 103, 106B or X, multivariate calculus at the level of
MATH 51 or
CME 100 or equivalent.

Terms: Aut, Win, Spr
| Units: 3-5
| UG Reqs: WAY-AQR, WAY-FR, GER:DB-EngrAppSci

Instructors:
Cain, J. (PI)
;
Piech, C. (PI)
;
Bogle, E. (TA)
;
Cochran, K. (TA)
;
Cohen, N. (TA)
;
Fayne, L. (TA)
;
Hosgur, E. (TA)
;
Ingino, S. (TA)
;
Jandaghi Semnani, S. (TA)
;
Lee, P. (TA)
;
Mattinger, A. (TA)
;
Michel, I. (TA)
;
Tan, J. (TA)
;
Teoh, J. (TA)
;
Williamson, E. (TA)
;
Yun, J. (TA)

## CS 109ACE: Problem-solving Lab for CS109

Additional problem solving practice for the introductory CS course
CS109. Sections are designed to allow students to acquire a deeper understanding of CS and its applications, work collaboratively, and develop a mastery of the material. Enrollment limited to 30 students, permission of instructor required. Concurrent enrollment in
CS 109 required.

Terms: Aut, Win, Spr
| Units: 1

Instructors:
Nguyen, T. (PI)

## CS 124: From Languages to Information (LINGUIST 180, LINGUIST 280)

NLP for extracting meaning from text and social networks on the web, and interacting with people via language. Introducing methods (from regex to large language models, via logistic regression, gradient descent, transformers and other neural networks, social networks, collaborative filtering), applications (chatbots, information retrieval, social computing, recommender systems), and ethical and social issues. Prerequisites:
CS106B, Python (at the level of
CS106A),
CS109 (or equivalent background in probability), and programming maturity and knowledge of UNIX equivalent to
CS107 (or taking CS107 or CS1U concurrently).

Terms: Win
| Units: 3-4
| UG Reqs: WAY-AQR

Instructors:
Jurafsky, D. (PI)

## CS 194: Software Project

Design, specification, coding, and testing of a significant team programming project under faculty supervision. Documentation includes capture of project rationale, design and discussion of key performance indicators, a weekly progress log and a software architecture diagram. Public demonstration of the project at the end of the quarter. Preference given to seniors. May be repeated for credit. Prerequisites: CS109 and
CS161.

Terms: Win, Spr
| Units: 3
| Repeatable
for credit

Instructors:
Borenstein, J. (PI)

## CS 194W: Software Project (WIM)

Restricted to Computer Science and Electrical Engineering undergraduates. Writing-intensive version of
CS194. Preference given to seniors. Prerequisites: CS109 and
CS161.

Terms: Win, Spr
| Units: 3

Instructors:
Borenstein, J. (PI)

## CS 210A: Software Project Experience with Corporate Partners

Two-quarter project course. Focus is on real-world software development. Corporate partners seed projects with loosely defined challenges from their R&D labs; students innovate to build their own compelling software solutions. Student teams are treated as start-up companies with a budget and a technical advisory board comprised of instructional staff and corporate liaisons. Teams will typically travel to the corporate headquarters of their collaborating partner, meaning some teams will travel internationally. Open loft classroom format such as found in Silicon Valley software companies. Exposure to: current practices in software engineering; techniques for stimulating innovation; significant development experience with creative freedoms; working in groups; real-world software engineering challenges; public presentation of technical work; creating written descriptions of technical work. Prerequisites: CS109 and
CS161.

Terms: Win
| Units: 3-4

Instructors:
Borenstein, J. (PI)

## CS 224W: Machine Learning with Graphs

Many complex data can be represented as a graph of relationships between objects. Such networks are a fundamental tool for modeling complex social, technological, and biological systems. This course focuses on the computational, algorithmic, and modeling challenges specific to the analysis of massive graphs. By means of studying the underlying graph structure and its features, students are introduced to machine learning techniques and data mining tools apt to reveal insights on a variety of networks. Topics include: representation learning and Graph Neural Networks; algorithms for the World Wide Web; reasoning over Knowledge Graphs; influence maximization; disease outbreak detection, social network analysis. Prerequisites:
CS109, any introductory course in Machine Learning.

Terms: Aut
| Units: 3-4

Instructors:
Leskovec, J. (PI)
;
Grover, K. (TA)
;
Huang, K. (TA)
...
more instructors for CS 224W »

Instructors:
Leskovec, J. (PI)
;
Grover, K. (TA)
;
Huang, K. (TA)
;
Jin, M. (TA)
;
Khandelwal, P. (TA)
;
Singh, J. (TA)
;
Xu, M. (TA)
;
Zhang, X. (TA)

## CS 250: Algebraic Error Correcting Codes (EE 387)

Introduction to the theory of error correcting codes, emphasizing algebraic constructions, and diverse applications throughout computer science and engineering. Topics include basic bounds on error correcting codes; Reed-Solomon and Reed-Muller codes; list-decoding, list-recovery and locality. Applications may include communication, storage, complexity theory, pseudorandomness, cryptography, streaming algorithms, group testing, and compressed sensing. Prerequisites: Linear algebra, basic probability (at the level of, say,
CS109, CME106 or
EE178) and "mathematical maturity" (students will be asked to write proofs). Familiarity with finite fields will be helpful but not required.

Terms: Win
| Units: 3

Instructors:
Wootters, M. (PI)

## EE 374: Blockchain Foundations

A detailed exploration of the foundations of blockchains, What blockchains are, how they work, and why they are secure. Transactions, blocks, chains, proof-of-work and stake, wallets, the UTXO model, accounts model, light clients. Throughout the course, students build their own nodes from scratch. Security is defined and rigorously proved. The course is heavy on both engineering and theory. This course is a deeper investigation into the consensus layer of blockchains while
CS 251 is a broader investigation, and it can be taken with or without having taken
CS 251. Prerequisites: CS106 or equivalent, significant programming experience; CS103 or equivalent; CS109 or EE178 or equivalent.

Last offered: Winter 2023

## EE 387: Algebraic Error Correcting Codes (CS 250)

Introduction to the theory of error correcting codes, emphasizing algebraic constructions, and diverse applications throughout computer science and engineering. Topics include basic bounds on error correcting codes; Reed-Solomon and Reed-Muller codes; list-decoding, list-recovery and locality. Applications may include communication, storage, complexity theory, pseudorandomness, cryptography, streaming algorithms, group testing, and compressed sensing. Prerequisites: Linear algebra, basic probability (at the level of, say,
CS109, CME106 or
EE178) and "mathematical maturity" (students will be asked to write proofs). Familiarity with finite fields will be helpful but not required.

Terms: Win
| Units: 3

Instructors:
Wootters, M. (PI)

Filter Results: