CS 21SI: AI for Social Good
Students will learn about and apply cutting-edge artificial intelligence techniques to real-world social good spaces (such as healthcare, government, education, and environment). Taught jointly by CS+Social Good and the Stanford AI Group, the aim of the class is to empower students to apply these techniques outside of the classroom. The class will focus on techniques from machine learning and deep learning, including regression, support vector machines (SVMs), neural networks, convolutional neural networks (CNNs), and recurrent neural networks (RNNs). The course alternates between lectures on machine learning theory and discussions with invited speakers, who will challenge students to apply techniques in their social good domains. Students complete weekly coding assignments reinforcing machine learning concepts and applications. Prerequisites: programming experience at the level of
CS107, mathematical fluency at the level of
CS103, comfort with probability at the level of
CS109 (or equivalent). Application required for enrollment.
Terms: Spr
| Units: 2
Instructors:
Piech, C. (PI)
CS 43: Functional Programming Abstractions
This course explores the philosophy and fundamentals of functional programming, focusing on the Haskell language, its theoretical underpinnings, and practical applications. Topics include functional abstractions (function composition, higher-order functions), immutable data structures, type systems, and various functional design patterns (monads, etc). Prerequisites:
CS107 (or equivalent experience)
Terms: Win
| Units: 2
Instructors:
Cain, J. (PI)
CS 107: Computer Organization and Systems
Introduction to the fundamental concepts of computer systems. Explores how computer systems execute programs and manipulate data, working from the C programming language down to the microprocessor. Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, elements of code compilation, memory organization and management, and performance evaluation and optimization. Prerequisites: 106B or X, or consent of instructor.
Terms: Aut, Win, Spr
| Units: 3-5
| UG Reqs: WAY-FR, GER:DB-EngrAppSci
Instructors:
Lee, C. (PI)
;
Troccoli, N. (PI)
;
Cherivirala, S. (TA)
...
more instructors for CS 107 »
Instructors:
Lee, C. (PI)
;
Troccoli, N. (PI)
;
Cherivirala, S. (TA)
;
Culberg, K. (TA)
;
Handali, N. (TA)
;
Lam, M. (TA)
;
Le, T. (TA)
;
Ling, E. (TA)
;
Marx, E. (TA)
;
Penkov, P. (TA)
;
Plattner, C. (TA)
;
Rashid, R. (TA)
;
Raterink, C. (TA)
;
Shi, A. (TA)
;
Tao, J. (TA)
;
Vazquez-Guzman, R. (TA)
;
Wegrzynski, M. (TA)
;
Yang, E. (TA)
;
Yang, J. (TA)
;
Yu, G. (TA)
CS 107A: Problem-solving Lab for CS107
Additional problem solving practice for the introductory CS course
CS107. 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. Limited enrollment, permission of instructor required. Concurrent enrollment in
CS 107 required.
Terms: Win, Spr
| Units: 1
Instructors:
Troccoli, N. (PI)
CS 107E: Computer Systems from the Ground Up
Introduction to the fundamental concepts of computer systems through bare metal programming on the Raspberry Pi. Explores how five concepts come together in computer systems: hardware, architecture, assembly code, the C language, and software development tools. Students do all programming with a Raspberry Pi kit and several add-ons (LEDs, buttons). Topics covered include: the C programming language, data representation, machine-level code, computer arithmetic, compilation, memory organization and management, debugging, hardware, and I/O. Prerequisite: 106B or X, and consent of instructor. There is a $75 required course fee.
Terms: Aut, Win
| Units: 3-5
| UG Reqs: WAY-FR
CS 124: From Languages to Information (LINGUIST 180, LINGUIST 280)
Extracting meaning, information, and structure from human language text, speech, web pages, social networks. Methods include: string algorithms, edit distance, language modeling, the noisy channel, machine learning classifiers, inverted indices, collaborative filtering, neural embeddings, PageRank. Applications such as question answering, sentiment analysis, information retrieval, text classification, social network models, spell checking, recommender systems, chatbots. Prerequisites:
CS103,
CS107,
CS109.
Terms: Win
| Units: 3-4
| UG Reqs: WAY-AQR
CS 166: Data Structures
Techniques in the design, analysis, and implementation of data structures. Isometries between data structures (including red/black trees and 2-3-4 trees), amortized analysis (including Fibonacci heaps and splay trees), and randomization (including count-min sketches and dynamic perfect hash tables). Data structures for integers and strings (including van Emde Boas trees and suffix trees). Possible additional topics include functional data structures, concurrent data structures, and spatial data structures. Prerequisites: CS107 and
CS161.
Terms: Spr
| Units: 3-4
CS 168: The Modern Algorithmic Toolbox
This course will provide a rigorous and hands-on introduction to the central ideas and algorithms that constitute the core of the modern algorithms toolkit. Emphasis will be on understanding the high-level theoretical intuitions and principles underlying the algorithms we discuss, as well as developing a concrete understanding of when and how to implement and apply the algorithms. The course will be structured as a sequence of one-week investigations; each week will introduce one algorithmic idea, and discuss the motivation, theoretical underpinning, and practical applications of that algorithmic idea. Each topic will be accompanied by a mini-project in which students will be guided through a practical application of the ideas of the week. Topics include hashing, dimension reduction and LSH, boosting, linear programming, gradient descent, sampling and estimation, and an introduction to spectral techniques. Prerequisites: CS107 and
CS161, or permission from the instructor.
Terms: Spr
| Units: 3-4
CS 193P: iOS Application Development
Tools and APIs required to build applications for the iPhone and iPad platforms using the iOS SDK. User interface design for mobile devices and unique user interactions using multi-touch technologies. Object-oriented design using model-view-controller paradigm, memory management, Swift programming language. Other topics include: object-oriented database API, animation, multi-threading, networking and performance considerations. Prerequisites: C language and object-oriented programming experience exceeding 106B or X level. Previous completion of any one of the following is required:
CS 107
explorecourses.stanford.edu/search?view=catalog&filter-coursestatus-Active=on&page=0&q=
CS107>, 108 (preferred) or 110. Recommended: UNIX, graphics, databases.
Terms: Spr
| Units: 3
Instructors:
Hegarty, P. (PI)
CS 241: Embedded Systems Workshop (EE 285)
Project-centric building hardware and software for embedded computing systems. Students work on an existing project of their own or join one of these projects. Syllabus topics will be determined by the needs of the enrolled students and projects. Examples of topics include: interrupts and concurrent programming, deterministic timing and synchronization, state-based programming models, filters, frequency response, and high-frequency signals, low power operation, system and PCB design, security, and networked communication. Prerequisite:
CS107 (or equivalent).
Last offered: Autumn 2017
| Repeatable
3 times
(up to 9 units total)
Filter Results: