2019-2020 2020-2021 2021-2022 2022-2023 2023-2024
Browse
by subject...
    Schedule
view...
 
  COVID-19 Scheduling Updates!
See Stanford's HealthAlerts website for latest updates concerning COVID-19 and academic policies.

1 - 10 of 26 results for: CS

CS 24: Minds and Machines (LINGUIST 35, PHIL 99, PSYCH 35, SYMSYS 1, SYMSYS 200)

(Formerly SYMSYS 100). An overview of the interdisciplinary study of cognition, information, communication, and language, with an emphasis on foundational issues: What are minds? What is computation? What are rationality and intelligence? Can we predict human behavior? Can computers be truly intelligent? How do people and technology interact, and how might they do so in the future? Lectures focus on how the methods of philosophy, mathematics, empirical research, and computational modeling are used to study minds and machines. Students must take this course before being approved to declare Symbolic Systems as a major. All students interested in studying Symbolic Systems are urged to take this course early in their student careers. The course material and presentation will be at an introductory level, without prerequisites. If you have any questions about the course, please email symsys1staff@gmail.com.
Terms: Aut, Win, Sum | Units: 4 | UG Reqs: GER:DB-SocSci, WAY-FR

CS 49N: Using Bits to Control Atoms

This is a crash course in how to use a stripped-down computer system about the size of a credit card (the rasberry pi computer) to control as many different sensors as we can implement in ten weeks, including LEDs, motion sensors, light controllers, and accelerometers. The ability to fearlessly grab a set of hardware devices, examine the data sheet to see how to use it, and stitch them together using simple code is a secret weapon that software-only people lack, and allows you to build many interesting gadgets. We will start with a "bare metal'' system --- no operating system, no support --- and teach you how to read device data sheets describing sensors and write the minimal code needed to control them (including how to debug when things go wrong, as they always do). This course differs from most in that it is deliberately mostly about what and why rather than how --- our hope is that the things you are able at the end will inspire you to follow the rest of the CS curriculum to understand better how things you've used work. Prerequisites: knowledge of the C programming language. A Linux or Mac laptop that you are comfortable coding on.
Terms: Sum | Units: 3

CS 103: Mathematical Foundations of Computing

What are the theoretical limits of computing power? What problems can be solved with computers? Which ones cannot? And how can we reason about the answers to these questions with mathematical certainty? This course explores the answers to these questions and serves as an introduction to discrete mathematics, computability theory, and complexity theory. At the completion of the course, students will feel comfortable writing mathematical proofs, reasoning about discrete structures, reading and writing statements in first-order logic, and working with mathematical models of computing devices. Throughout the course, students will gain exposure to some of the most exciting mathematical and philosophical ideas of the late nineteenth and twentieth centuries. Specific topics covered include formal mathematical proofwriting, propositional and first-order logic, set theory, binary relations, functions (injections, surjections, and bijections), cardinality, basic graph theory, the pigeonhole principle, mathematical induction, finite automata, regular expressions, the Myhill-Nerode theorem, context-free grammars, Turing machines, decidable and recognizable languages, self-reference and undecidability, verifiers, and the P versus NP question. Students with significant proofwriting experience are encouraged to instead take CS154. Students interested in extra practice and support with the course are encouraged to concurrently enroll in CS103A. Prerequisite: CS106B or equivalent. CS106B may be taken concurrently with CS103.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-Math, WAY-FR

CS 106A: Programming Methodology

Introduction to the engineering of computer applications emphasizing modern software engineering principles: program design, decomposition, encapsulation, abstraction, and testing. Emphasis is on good programming style and the built-in facilities of respective languages. Uses the Python programming language. No prior programming experience required.
Terms: Aut, Win, Spr, Sum | Units: 5 | UG Reqs: WAY-FR, GER:DB-EngrAppSci

CS 106B: Programming Abstractions

Abstraction and its relation to programming. Software engineering principles of data abstraction and modularity. Object-oriented programming, fundamental data structures (such as stacks, queues, sets) and data-directed design. Recursion and recursive data structures (linked lists, trees, graphs). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities. Prerequisite: 106A or equivalent.
Terms: Aut, Win, Spr, Sum | Units: 5 | UG Reqs: GER:DB-EngrAppSci, WAY-FR

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, Sum | Units: 3-5 | UG Reqs: WAY-FR, GER:DB-EngrAppSci

CS 109: Introduction to Probability for Computer Scientists

Topics include: counting and combinatorics, random variables, conditional probability, independence, distributions, expectation, point estimation, and limit theorems. Applications of probability in computer science including machine learning and the use of probability in the analysis of algorithms. Prerequisites: 103, 106B or X, multivariate calculus at the level of MATH 51 or CME 100 or equivalent.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: WAY-AQR, WAY-FR, GER:DB-EngrAppSci

CS 110: Principles of Computer Systems

Principles and practice of engineering of computer software and hardware systems. Topics include: techniques for controlling complexity; strong modularity using client-server design, virtual memory, and threads; networks; atomicity and coordination of parallel activities. Prerequisite: 107.
Terms: Aut, Win, Spr, Sum | Units: 3-5 | UG Reqs: GER:DB-EngrAppSci

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

CS 191: Senior Project

Restricted to Computer Science students. Group or individual projects under faculty direction. Register using instructor's section number. A project can be either a significant software application or publishable research. Software application projects include substantial programming and modern user-interface technologies and are comparable in scale to shareware programs or commercial applications. Research projects may result in a paper publishable in an academic journal or presentable at a conference. Public presentation of final application or research results is required. Prerequisite: Completion of at least 135 units and consent of instructor. Project proposal form is required before the beginning of the quarter of enrollment: https://cs.stanford.edu/degrees/undergrad/Senior%20Project%20Proposal.pdf
Terms: Aut, Win, Spr, Sum | Units: 1-6 | Repeatable for credit
Instructors: Achour, S. (PI) ; Agrawala, M. (PI) ; Aiken, A. (PI) ; Akbarpour, M. (PI) ; Altman, R. (PI) ; Anari, N. (PI) ; Angst, R. (PI) ; Bailis, P. (PI) ; Barrett, C. (PI) ; Batzoglou, S. (PI) ; Bejerano, G. (PI) ; Bernstein, M. (PI) ; Blikstein, P. (PI) ; Boahen, K. (PI) ; Bohg, J. (PI) ; Boneh, D. (PI) ; Borenstein, J. (PI) ; Bouland, A. (PI) ; Boyd, S. (PI) ; Brunskill, E. (PI) ; Cain, J. (PI) ; Cao, P. (PI) ; Chang, M. (PI) ; Charikar, M. (PI) ; Cheriton, D. (PI) ; Dally, B. (PI) ; Dill, D. (PI) ; Dror, R. (PI) ; Duchi, J. (PI) ; Durumeric, Z. (PI) ; Engler, D. (PI) ; Ermon, S. (PI) ; Fatahalian, K. (PI) ; Fedkiw, R. (PI) ; Feigenbaum, E. (PI) ; Fikes, R. (PI) ; Finn, C. (PI) ; Fisher, K. (PI) ; Follmer, S. (PI) ; Fox, A. (PI) ; Fox, J. (PI) ; Ganguli, S. (PI) ; Garcia-Molina, H. (PI) ; Genesereth, M. (PI) ; Gill, J. (PI) ; Girod, B. (PI) ; Goel, A. (PI) ; Goel, S. (PI) ; Goodman, N. (PI) ; Gregg, C. (PI) ; Guibas, L. (PI) ; Hanrahan, P. (PI) ; Hashimoto, T. (PI) ; Hayden, P. (PI) ; Hennessy, J. (PI) ; Horowitz, M. (PI) ; Icard, T. (PI) ; James, D. (PI) ; Johari, R. (PI) ; Jurafsky, D. (PI) ; Katti, S. (PI) ; Kay, M. (PI) ; Khatib, O. (PI) ; Kjoelstad, F. (PI) ; Kochenderfer, M. (PI) ; Koller, D. (PI) ; Kozyrakis, C. (PI) ; Kundaje, A. (PI) ; Lam, M. (PI) ; Landay, J. (PI) ; Latombe, J. (PI) ; Lee, C. (PI) ; Leskovec, J. (PI) ; Levis, P. (PI) ; Levitt, M. (PI) ; Levoy, M. (PI) ; Li, F. (PI) ; Liang, P. (PI) ; Linderman, S. (PI) ; Liu, K. (PI) ; Ma, T. (PI) ; Manning, C. (PI) ; Mazieres, D. (PI) ; McCarthy, J. (PI) ; McKeown, N. (PI) ; Mitchell, J. (PI) ; Mitra, S. (PI) ; Montanari, A. (PI) ; Montgomery, S. (PI) ; Musen, M. (PI) ; Nayak, P. (PI) ; Ng, A. (PI) ; Niebles Duque, J. (PI) ; Olukotun, O. (PI) ; Ousterhout, J. (PI) ; Paepcke, A. (PI) ; Pande, V. (PI) ; Parlante, N. (PI) ; Pavone, M. (PI) ; Pea, R. (PI) ; Piech, C. (PI) ; Plotkin, S. (PI) ; Plummer, R. (PI) ; Poldrack, R. (PI) ; Potts, C. (PI) ; Prabhakar, B. (PI) ; Pratt, V. (PI) ; Raghavan, P. (PI) ; Raina, P. (PI) ; Rajaraman, A. (PI) ; Re, C. (PI) ; Reingold, O. (PI) ; Roberts, E. (PI) ; Rosenblum, M. (PI) ; Roughgarden, T. (PI) ; Rubin, D. (PI) ; Rubinstein, A. (PI) ; Sadigh, D. (PI) ; Sahami, M. (PI) ; Salisbury, J. (PI) ; Savarese, S. (PI) ; Saxena, A. (PI) ; Schwarz, K. (PI) ; Shoham, Y. (PI) ; Sidford, A. (PI) ; Sosic, R. (PI) ; Stanford, J. (PI) ; Tan, L. (PI) ; Thrun, S. (PI) ; Tobagi, F. (PI) ; Trippel, C. (PI) ; Troccoli, N. (PI) ; Ullman, J. (PI) ; Utterback, C. (PI) ; Valiant, G. (PI) ; Van Roy, B. (PI) ; Wang, G. (PI) ; Wetzstein, G. (PI) ; Widom, J. (PI) ; Wiederhold, G. (PI) ; Winograd, T. (PI) ; Winstein, K. (PI) ; Wodtke, C. (PI) ; Wootters, M. (PI) ; Wu, J. (PI) ; Yamins, D. (PI) ; Yan, L. (PI) ; Yeung, S. (PI) ; Young, P. (PI) ; Zaharia, M. (PI) ; Zelenski, J. (PI) ; Zou, J. (PI)
Filter Results:
term offered
updating results...
teaching presence
updating results...
number of units
updating results...
time offered
updating results...
days
updating results...
UG Requirements (GERs)
updating results...
component
updating results...
career
updating results...
© Stanford University | Terms of Use | Copyright Complaints