CS 244E: Networked Wireless Systems
Design and implementation of wireless networks and mobile systems. The course will commence with a short retrospective of wireless communication and initially touch on some of the fundamental physical layer properties of various wireless communication technologies. The focus will then shift to design of media access control and routing layers for various wireless systems. The course will also examine adaptations necessary at transport and higher layers to cope with node mobility and errorprone nature of the wireless medium. Finally, it will conclude with a brief overview of other related issues including emerging wireless/mobile applications. Prerequisites:
EE 284
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CS 246: Mining Massive Data Sets
Distributed file systems: Hadoop, mapreduce; PageRank, topicsensitive PageRank, spam detection, hubsandauthorities; similarity search; shingling, minhashing, random hyperplanes, localitysensitive hashing; analysis of socialnetwork graphs; association rules; dimensionality reduction: UV, SVD, and CUR decompositions; algorithms for verylargescale mining: clustering, nearestneighbor search, gradient descent, supportvector machines, classification, and regression; submodular function optimization. Prerequisites: At lease one of CS107 or
CS145; at least one of CS109 or STAT116, or equivalent.
Terms: Win

Units: 34

Grading: Letter or Credit/No Credit
Instructors:
Leskovec, J. (PI)
CS 246H: Mining Massive Data Sets Hadoop Lab
Supplement to
CS 246 providing additional material on Hadoop. Students will learn how to implement data mining algorithms using Hadoop, how to implement and debug complex MapReduce jobs in Hadoop, and how to use some of the tools in the Hadoop ecosystem for data mining and machine learning. Topics: Hadoop, MapReduce, HDFS, combiners, secondary sort, distributed cache, SQL on Hadoop, Hive, Cloudera ML/Oryx, Mahout, Hadoop streaming, implementing Hadoop jobs, debugging Hadoop jobs, TFIDF, Pig, Sqoop, Oozie, HBase, Impala. Prerequisite:
CS 107 or equivalent.
Terms: Win

Units: 1

Grading: Satisfactory/No Credit
Instructors:
Leskovec, J. (PI)
;
Templeton, D. (PI)
CS 247: HumanComputer Interaction Design Studio
Projectbased focus on interaction design process, especially earlystage design and rapid prototyping. Methods used in interaction design including needs analysis, user observation, sketching, concept generation, scenario building, and evaluation. Prerequisites: 147 and 106A or equivalent background in programming.
Terms: Spr

Units: 34

Grading: Letter (ABCD/NP)
Instructors:
Kaye, J. (PI)
;
Tang, J. (PI)
CS 249B: Largescale Software Development
Software engineering of high quality largescale complex software with a focus on evolvability, performance and cost. Software development processes, people and practice; audit: integrating invariant checks with production software; concurrency with modular objectoriented programming; collection implementation; generic programming and templates; design of value types; named descriptions for large value types; memory management; controlling placement, locality and consumption; runtime vs. static type checking and identification.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
CS 255: Introduction to Cryptography
For advanced undergraduates and graduate students. Theory and practice of cryptographic techniques used in computer security. Topics: encryption (symmetric and public key), digital signatures, data integrity, authentication, key management, PKI, zeroknowledge protocols, and realworld applications. Prerequisite: basic probability theory.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Boneh, D. (PI)
CS 261: Optimization and Algorithmic Paradigms
Algorithms for network optimization: maxflow, mincost flow, matching, assignment, and mincut problems. Introduction to linear programming. Use of LP duality for design and analysis of algorithms. Approximation algorithms for NPcomplete problems such as Steiner Trees, Traveling Salesman, and scheduling problems. Randomized algorithms. Introduction to online algorithms. Prerequisite: 161 or equivalent.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Plotkin, S. (PI)
CS 263: Algorithms for Modern Data Models (MS&E 317)
We traditionally think of algorithms as running on data available in a single location, typically main memory. In many modern applications including web analytics, search and data mining, computational biology, finance, and scientific computing, the data is often too large to reside in a single location, is arriving incrementally over time, is noisy/uncertain, or all of the above. Paradigms such as mapreduce, streaming, sketching, Distributed Hash Tables, Bulk Synchronous Processing, and random walks have proved useful for these applications. This course will provide an introduction to the design and analysis of algorithms for these modern data models. Prerequisite: Algorithms at the level of
CS 261.
Terms: Spr

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Bosagh Zadeh, R. (PI)
;
Goel, A. (PI)
CS 265: Randomized Algorithms and Probabilistic Analysis (CME 309)
Randomness pervades the natural processes around us, from the formation of networks, to genetic recombination, to quantum physics. Randomness is also a powerful tool that can be leveraged to create algorithms and data structures which, in many cases, are more efficient and simpler than their deterministic counterparts. The key tools of probabilistic analysis, and application of these tools to understand the behaviors of random processes and algorithms. Emphasis is on theoretical foundations, though we will apply this theory broadly, discussing applications in machine learning and data analysis, networking, and systems. Topics include tail bounds, the probabilistic method, Markov chains, and martingales, with applications to analyzing random graphs, metric embeddings, random walks, and a host of powerful and elegant randomized algorithms. Prerequisites:
CS 161 and STAT 116, or equivalents and instructor consent.
Terms: Aut

Units: 3

Grading: Letter or Credit/No Credit
Instructors:
Valiant, G. (PI)
CS 266: Parameterized Algorithms and Complexity
An introduction to the area of parameterized algorithms and complexity, which explores multidimensional methods for measuring the difficulty and feasibility of solving computational problems. Topics include: fixedparameter tractability (FPT) and its characterizations, FPT algorithms for hard problems, the Whierarchy (W[1], W[2], W[P], and complete problems for these classes), and the relationships between parameterized questions and classical theory questions. Prerequisites:
CS 154 and 161 or the equivalent mathematical maturity.
Terms: not given this year

Units: 3

Grading: Letter or Credit/No Credit
Filter Results: