2016-2017 2017-2018 2018-2019 2019-2020 2020-2021
by subject...
  COVID-19 Scheduling Updates!
Due to recent announcements about Autumn Quarter (see the President's update), please expect ongoing changes to the class schedule.

61 - 70 of 310 results for: CS

CS 143: Compilers

Principles and practices for design and implementation of compilers and interpreters. Topics: lexical analysis; parsing theory; symbol tables; type systems; scope; semantic analysis; intermediate representations; runtime environments; code generation; and basic program analysis and optimization. Students construct a compiler for a simple object-oriented language during course programming projects. Prerequisites: 103 or 103B, and 107.
Terms: Spr | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 144: Introduction to Computer Networking

Principles and practice. Structure and components of computer networks, with focus on the Internet. Packet switching, layering, and routing. Transport and TCP: reliable delivery over an unreliable network, flow control, congestion control. Network names, addresses and ethernet switching. Includes significant programming component in C/C++; students build portions of the internet TCP/IP software. Prerequisite: CS110.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 145: Data Management and Data Systems

Introduction to the use, design, and implementation of database and data-intensive systems, including data models; schema design; data storage; query processing, query optimization, and cost estimation; concurrency control, transactions, and failure recovery; distributed and parallel execution; semi-structured databases; and data system support for advanced analytics and machine learning. Prerequisites: 103 and 107 (or equivalent).
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 146: Introduction to Game Design and Development

This project-based course provides a survey on designing and engineering video games. Through creating their own games each week, students explore topics including 2D/3D Art, Audio, User Interface design, Production, Narrative Design, Marketing, and Publishing. Speakers from the games industry will provide insights and context during a weekly seminar. Classroom meetings will be used to foster student project discussions, and deepen understanding of material. The course culminates with students forming project teams to create a final video game. Assignments will be completed within the Unity game development engine; prior Unity experience is welcomed but not required. Given class size limitations, an online survey will be used to achieve a diverse class composition. Prerequisite: CS 106 (B or X).
Last offered: Autumn 2018

CS 147: Introduction to Human-Computer Interaction Design

Introduces fundamental methods and principles for designing, implementing, and evaluating user interfaces. Topics: user-centered design, rapid prototyping, experimentation, direct manipulation, cognitive principles, visual design, social software, software tools. Learn by doing: work with a team on a quarter-long design project, supported by lectures, readings, and studios. Prerequisite: 106B or X or equivalent programming experience. Recommended that CS Majors have also taken one of 142, 193P, or 193A.
Terms: Win | Units: 3-5
Instructors: Landay, J. (PI)

CS 148: Introduction to Computer Graphics and Imaging

Introductory prerequisite course in the computer graphics sequence introducing students to the technical concepts behind creating synthetic computer generated images. In addition to scanline rendering, ray tracing is introduced at the beginning of the course, since modern consoles now include ray tracing. This is followed by discussions of underlying mathematical concepts including triangles, normals, interpolation, texture/bump mapping, anti-aliasing, acceleration structures, etc. Importantly, the course will discuss handling light/color for image formats, computer displays, printers, etc., as well as how light interacts with the environment, constructing engineering models such as the BRDF, and various simplifications into more basic lighting and shading models. The final class mini-project consists of building out a ray tracer to create visually compelling images. Starter codes and code bits will be provided to aid in development, but this class focuses on what you can do with the code as opposed to what the code itself looks like. Therefore grading is weighted toward in person "demos" of the code in action - creativity and the production of impressive visual imagery are highly encouraged/rewarded. Prerequisites: CS107, MATH51.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci, WAY-CE

CS 149: Parallel Computing

This course is an introduction to parallelism and parallel programming. Most new computer architectures are parallel; programming these machines requires knowledge 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, MapReduce, Apache Spark, SPMD, message passing, SIMT, transactions, and nested parallelism). Significant parallel programming assignments will be given as homework. The course is open to students who have completed the introductory CS course sequence through 110.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci

CS 151: Logic Programming

Logic Programming is a style of programming based on symbolic logic. In writing a logic program, the programmer describes the application area of the program (as a set of logical sentences) without reference to the internal data structures or operations of the system executing the program. In this regard, a logic program is more of a specification than an implementation; and logic programs are often called runnable specifications. This course introduces basic logic programming theory, current technology, and examples of common applications, notably deductive databases, logical spreadsheets, enterprise management, computational law, and game playing. Work in the course takes the form of readings and exercises, weekly programming assignments, and a term-long project. Prerequisite: CS 106B or equivalent.
Terms: Spr | Units: 3

CS 152: Trust and Safety Engineering

An introduction to the ways consumer internet services are abused to cause real human harm and the potential operational, product and engineering responses. Students will learn about spam, fraud, account takeovers, the use of social media by terrorists, misinformation, child exploitation, harassment, bullying and self-harm. This will include studying both the technical and sociological roots of these harms and the ways various online providers have responded. Our goal is to provide students with an understanding of how the technologies they may build have been abused in the past and how they might spot future abuses earlier. The class is taught by a long-time practitioner and supplemented by guest lecturers from tech companies and non-profits. Fulfills the Technology in Society requirement. Prerequisite: CS106B or equivalent for grad students. Content note: This class will cover real-world harmful behavior and expose students to potentially upsetting material.
Terms: Win | Units: 3
Instructors: Stamos, A. (PI)

CS 154: Introduction to the Theory of Computation

This course provides a mathematical introduction to the following questions: What is computation? Given a computational model, what problems can we hope to solve in principle with this model? Besides those solvable in principle, what problems can we hope to efficiently solve? In many cases we can give completely rigorous answers; in other cases, these questions have become major open problems in computer science and mathematics. By the end of this course, students will be able to classify computational problems in terms of their computational complexity (Is the problem regular? Not regular? Decidable? Recognizable? Neither? Solvable in P? NP-complete? PSPACE-complete?, etc.). Students will gain a deeper appreciation for some of the fundamental issues in computing that are independent of trends of technology, such as the Church-Turing Thesis and the P versus NP problem. Prerequisites: CS 103 or 103B.
Terms: Aut | Units: 3-4 | UG Reqs: GER:DB-EngrAppSci
Filter Results:
term offered
updating results...
teaching presence
updating results...
number of units
updating results...
time offered
updating results...
updating results...
UG Requirements (GERs)
updating results...
updating results...
updating results...
© Stanford University | Terms of Use | Copyright Complaints