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 or equivalent background in design thinking; 106B or equivalent background in programming. Recommended:
CS 142 or equivalent background in web programming.
Terms: Win, Spr

Units: 34

Grading: Letter (ABCD/NP)
Instructors:
Agrawala, M. (PI)
;
Bernstein, M. (PI)
;
Stanford, J. (PI)
...
more instructors for CS 247 »
Instructors:
Agrawala, M. (PI)
;
Bernstein, M. (PI)
;
Stanford, J. (PI)
;
Wodtke, C. (PI)
;
Gregory, K. (TA)
;
Jobalia, S. (TA)
;
McCabe, A. (TA)
;
Mukhopadhyay, T. (TA)
;
Ngu, A. (TA)
CS 248: Interactive Computer Graphics
This is the second course in the computer graphics sequence, and as such it assumes familiarity with rendering and image creation. The course has a strong focus on sampling methods, computational geometry, animation, and simulation. Topics include sampling theory, texture mapping, transformations, splines, implicit surfaces, geometric modeling, animation curves, inverse kinematics, character animation, motion capture and editing, image compression and virtual reality. Students will perform programming assignments and a selfselected final project that explores concepts covered in the class. Prerequisite:
CS 107,
MATH 51.
Terms: Win, Spr

Units: 34

Grading: Letter or Credit/No Credit
Instructors:
Fatahalian, K. (PI)
;
Fedkiw, R. (PI)
;
Geng, Z. (TA)
...
more instructors for CS 248 »
Instructors:
Fatahalian, K. (PI)
;
Fedkiw, R. (PI)
;
Geng, Z. (TA)
;
Go, C. (TA)
;
Lee, M. (TA)
;
Li, K. (TA)
;
Somshekar, I. (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; ReedSolomon and ReedMuller codes; listdecoding, listrecovery 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

Grading: Letter or Credit/No Credit
Instructors:
Wootters, M. (PI)
;
Hulett, R. (TA)
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)
;
Beal, J. (TA)
;
Case, B. (TA)
;
Chen, M. (TA)
;
Eskandarian, S. (TA)
;
Kulshrestha, A. (TA)
;
Orbay, E. (TA)
;
Ostrow, R. (TA)
CS 257: Logic and Artificial Intelligence (PHIL 356C)
This is a course at the intersection of philosophical logic and artificial intelligence. After reviewing recent work in AI that has leveraged ideas from logic, we will slow down and study in more detail various components of highlevel intelligence and the tools that have been designed to capture those components. Specific areas will include: reasoning about belief and action, causality and counterfactuals, legal and normative reasoning, natural language inference, and Turingcomplete logical formalisms including (probabilistic) logic programming and lambda calculus. Our main concern will be understanding the logical tools themselves, including their formal properties and how they relate to other tools such as probability and statistics. At the end, students should expect to have learned a lot more about logic, and also to have a sense for how logic has been and can be used in AI applications. Prerequisites: A background in logic, at least at the level of
Phil 151, will be expected. I
more »
This is a course at the intersection of philosophical logic and artificial intelligence. After reviewing recent work in AI that has leveraged ideas from logic, we will slow down and study in more detail various components of highlevel intelligence and the tools that have been designed to capture those components. Specific areas will include: reasoning about belief and action, causality and counterfactuals, legal and normative reasoning, natural language inference, and Turingcomplete logical formalisms including (probabilistic) logic programming and lambda calculus. Our main concern will be understanding the logical tools themselves, including their formal properties and how they relate to other tools such as probability and statistics. At the end, students should expect to have learned a lot more about logic, and also to have a sense for how logic has been and can be used in AI applications. Prerequisites: A background in logic, at least at the level of
Phil 151, will be expected. In case a student is willing to put in the extra work to catch up, it may be possible to take the course with background equivalent to
Phil 150 or
CS 157. A background in AI, at the level of
CS 221, would also be very helpful and will at times be expected. 2 unit option only for PhD students past the second year. Course website:
http://web.stanford.edu/class/cs257/
Terms: Win

Units: 24

Grading: Letter or Credit/No Credit
Instructors:
Icard, T. (PI)
;
Zaffora Blando, F. (TA)
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
CS 270: Modeling Biomedical Systems: Ontology, Terminology, Problem Solving (BIOMEDIN 210)
Methods for modeling biomedical systems and for building modelbased software systems. Emphasis is on intelligent systems for decision support and Semantic Web applications. Topics: knowledge representation, controlled terminologies, ontologies, reusable problem solvers, and knowledge acquisition. Students learn about current trends in the development of advanced biomedical software systems and acquire handson experience with several systems and tools. Prerequisites:
CS106A, basic familiarity with biology.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 273A: The Human Genome Source Code (BIOMEDIN 273A, DBIO 273A)
A computational introduction to the most amazing programming language on the planet: your genome. Topics include genome sequencing (assembling source code from code fragments); the human genome functional landscape: variable assignments (genes), controlflow logic (gene regulation) and runtime stack (epigenomics); human disease and personalized genomics (as a hunt for bugs in the human code); genome editing (code injection) to cure the incurable; and the source code behind amazing animal adaptations. Algorithmic approaches will introduce ideas from computational genomics, machine learning and natural language processing. Course includes primers on molecular biology, and text processing languages. No prerequisites.
Terms: Win

Units: 3

Grading: Letter or Credit/No Credit
CS 275: Translational Bioinformatics (BIOE 217, BIOMEDIN 217, GENE 217)
Computational methods for the translation of biomedical data into diagnostic, prognostic, and therapeutic applications in medicine. Topics: multiscale omics data generation and analysis, utility and limitations of public biomedical resources, machine learning and data mining, issues and opportunities in drug discovery, and mobile/digital health solutions. Case studies and course project. Prerequisites: programming ability at the level of
CS 106A and familiarity with biology and statistics.
Terms: Win

Units: 4

Grading: Medical Option (MedLtrCR/NC)
CS 275A: Symbolic Musical Information (MUSIC 253)
Focus on symbolic data for music applications including advanced notation systems, optical music recognition, musical data conversion, and internal structure of MIDI files.
Terms: Win

Units: 24

Grading: Letter or Credit/No Credit
Instructors:
Sapp, C. (PI)
;
SelfridgeField, E. (PI)
Filter Results: