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.

1 - 10 of 17 results for: CS107

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.
Last offered: Spring 2020

CS 43: Functional Programming Abstractions

This course covers the fundamentals of functional programming and algebraic type systems, and explores a selection of related programming paradigms and current research. Haskell is taught and used throughout the course, though much of the material is applicable to other languages. Material will be covered from both theoretical and practical points of view, and topics will include higher order functions, immutable data structures, algebraic data types, type inference, lenses and optics, effect systems, concurrency and parallelism, and dependent types. Prerequisites: Programming maturity and comfort with math proofs, at the levels of CS107 and CS103.
Last offered: Winter 2020

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: GER:DB-EngrAppSci, WAY-FR

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: Aut, Win, Spr | Units: 1

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: CS106B or CS106X, and consent of instructor.
Terms: Aut, Win | Units: 3-5 | UG Reqs: WAY-FR

CS 111: Operating Systems Principles

Explores operating system concepts including concurrency, synchronization, scheduling, processes, virtual memory, I/O, file systems, and protection. Available as a substitute for CS110 that fulfills any requirement satisfied by CS110. Prerequisite: CS107.
Terms: Spr | Units: 3-5

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
Instructors: Fedkiw, R. (PI)

CS 166: Data Structures

This course is designed as a deep dive into the design, analysis, implementation, and theory of data structures. Over the course of the quarter, we'll explore fundamental techniques in data structure design (isometries, amortization, randomization, word-level parallelism, etc.). In doing so, we'll see a number of classic data structures like Fibonacci heaps and suffix trees as well as more modern data structures like count-min sketches and range minimum queries. By the time we've finished, we'll have seen some truly beautiful strategies for solving problems efficiently. Prerequisites: CS107 and CS161.
Terms: Spr | Units: 3-4
Instructors: Schwarz, K. (PI)

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
Instructors: Valiant, G. (PI)

CS 193P: iOS Application Development

Build mobile applications using tools and APIs in iOS. Developing applications for the iPhone and iPad requires integration of numerous concepts including functional programming, object-oriented programming, computer-human interfaces, graphics, animation, reactive interfaces, Model-View-Intent (MVI) and Model-View-View-Model (MVVM) design paradigms, object-oriented databases, networking, and interactive performance considerations including multi-threading. This course will require you to learn a new programming language (Swift) as well as a new-to-iOS development environment, SwiftUI. Prerequisites: All coursework (homework and final project) involves writing code, so writing a lot of code should not be ¿new¿ to you (coding experience in almost any language is valuable, but object-oriented (e.g. CS108) and/or functional programming languages (e.g. CS43) are most highly recommended). CS106A and B (or X) and CS107 (or equivalent) are hard prerequisites. Any other courses that help to develop your maturity as a programmer are also recommended.
Terms: Win | Units: 3
Instructors: Hegarty, P. (PI)
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