CS 147: Introduction to Human-Computer Interaction Design
Usability and affordances, direct manipulation, systematic design methods, user conceptual models and interface metaphors, human cognitive and physical ergonomics, information and interactivity structures, and design tools and environments. Team project in interaction design. Prerequisite: 106B or X or equivalent programming experience.
Terms: Aut
| Units: 3-4
Instructors:
Klemmer, S. (PI)
CS 147L: Human-Computer Interaction Technology Laboratory
Hands-on introduction to building mobile web applications with html, css, and php. Corequisite: 147. Concurrent enrollment in CS147 required.
Terms: Aut
| Units: 1
Instructors:
Krieger, M. (PI)
CS 148: Introduction to Computer Graphics and Imaging
Topics: Image input and output devices such as cameras and displays, graphics hardware and software, input technologies and interactive techniques, typography and page layout, light and color representations, exposure and tone reproduction, image composition and imaging models, digital signal processing, sampling, aliasing and antialiasing, compression, two- and three-dimensional geometry and formations, modeling techniques including curves and surfaces, reflection models and illumination algorithms, and basic methods of animation. Progamming asssignments using C++ and OpenGL. Prerequisites:
CS 107,
MATH 51.
Terms: Aut, Sum
| Units: 3
| UG Reqs: GER:DB-EngrAppSci, WAY-CE
Instructors:
Chaudhuri, S. (PI)
;
Hanrahan, P. (PI)
CS 149: Parallel Computing
Course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowlege of the basic issues of and techniques for writing parallel software. Topics: varieties of parallelism in current hardware (e.g., fast networks, multicore, accelerators such as GPUs, vector instruction sets), importance of locality, implicit vs. explicit parallelism, shared vs. non-shared memory, synchronization mechanisms (locking, atomicity, transactions, barriers), and parallel programming models (threads, data parallel/streaming, futures, SPMD, message passing, SIMT, transactions, and nested parallelism). Significantnnparallel programming assignments will be given as homework. Course is open to students who have completed the introductory CS course sequence through 110 and have taken at least one of
CS 140, 143, 144, or 145.
Terms: Win
| Units: 3-4
| UG Reqs: GER:DB-EngrAppSci
Instructors:
Aiken, A. (PI)
;
Olukotun, O. (PI)
CS 154: Introduction to Automata and Complexity Theory
Regular sets: finite automata, regular expressions, equivalences among notations, methods of proving a language not to be regular. Context-free languages: grammars, pushdown automata, normal forms for grammars, proving languages non-context-free. Turing machines: equivalent forms, undecidability. Nondeterministic Turing machines: properties, the class NP, complete problems for NP, Cook's theorem, reducibilities among problems. Prerequisites: 103 or 103B.
Terms: Aut, Spr, Sum
| Units: 3-4
| UG Reqs: GER:DB-EngrAppSci
CS 154N: Introduction to NP Completeness
Turing machines: equivalent forms, undecidability. Nondeterministic Turing machines: properties, the class NP, complete problems for NP, Cook¿s theorem, reducibilities among problems. Students participate in approximately the last half of 154. Prerequisite: formal languages and automata as in first part of 154.
Terms: Aut, Spr
| Units: 2
Instructors:
Dill, D. (PI)
;
Ullman, J. (PI)
CS 155: Computer and Network Security
For seniors and first-year graduate students. Principles of computer systems security. Attack techniques and how to defend against them. Topics include: network attacks and defenses, operating system holes, application security (web, email, databases), viruses, social engineering attacks, privacy, and digital rights management. Course projects focus on building reliable code. Prerequisite: 140. Recommended: basic Unix.
Terms: Spr
| Units: 3
| UG Reqs: GER:DB-EngrAppSci
Instructors:
Boneh, D. (PI)
;
Mitchell, J. (PI)
CS 156: Calculus of Computation
Decision procedures with applications to analyzing and developing robust software. Logic review. Propositional and first-order logic; induction. Verification: methods for proving correctness of sequential programs using first-order reasoning; need for decision procedures. Decision procedures: algorithms that decide the validity of logical formulas for common theories including SAT, equality, arithmetic, recursive data structures, and arrays. Combination theories and combination of decision procedures. Static analysis: algorithms for deducing program properties. Projects include writing verified programs. Prerequisites: 103, 106, or equivalents.
Terms: Win
| Units: 3-4
| UG Reqs: GER:DB-EngrAppSci
Instructors:
Manna, Z. (PI)
CS 157: Logic and Automated Reasoning
An elementary exposition from a computational point of view of propositional and predicate logic, axiomatic theories, and theories with equality and induction. Interpretations, models, validity, proof, strategies, and applications. Automated deduction: polarity, skolemization, unification, resolution, equality. Prerequisite: 103 or 103B.
Terms: Aut
| Units: 3
| UG Reqs: GER:DB-EngrAppSci
Instructors:
Genesereth, M. (PI)
CS 161: Design and Analysis of Algorithms
Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching. Prerequisite: 103 or 103B; 109 or
STATS 116.
Terms: Aut, Win, Sum
| Units: 3-5
| UG Reqs: GER:DB-EngrAppSci, WAY-FR
Filter Results: