Catalog Navigation

See the "Department of Computer Science" section of this bulletin for additional information on the department, and its programs and faculty.

The department offers a B.S. as well as a minor in Computer Science.

Computer Science (CS)

Completion of the undergraduate program in Computer Science leads to the conferral of the Bachelor of Science in Computer Science.

Mission of the Undergraduate Program in Computer Science

The mission of the undergraduate program in Computer Science is to develop students' breadth of knowledge across the subject areas of computer science, including their ability to apply the defining processes of computer science theory, abstraction, design, and implementation to solve problems in the discipline. Students take a set of core courses. After learning the essential programming techniques and the mathematical foundations of computer science, students take courses in areas such as programming techniques, automata and complexity theory, systems programming, computer architecture, analysis of algorithms, artificial intelligence, and applications. The program prepares students for careers in government, law, the corporate sector, and for graduate study.

Requirements

Mathematics (26 units minimum)
Units
CS 103Mathematical Foundations of Computing5
CS 109Introduction to Probability for Computer Scientists5
MATH 19Calculus 13
MATH 20Calculus 13
MATH 21Calculus 14
Plus two electives 2
Science (11 units minimum)
Units
PHYSICS 41Mechanics4
or PHYSICS 41E Mechanics, Concepts, Calculations, and Context
PHYSICS 43Electricity and Magnetism4
Science elective 33
Technology in Society (3-5 units)
One course; course chosen must be on the SoE Approved Courses list at <ughb.stanford.edu> the year taken; see Basic Requirements 4 in the School of Engineering section
Engineering Fundamentals (13 units minimum; see Basic Requirement 3 in the School of Engineering section)
Units
CS 106BProgramming Abstractions5
or CS 106X Programming Abstractions (Accelerated)
ENGR 40MAn Intro to Making: What is EE (or ENGR 40A and ENGR 40B)3-5
Fundamentals Elective (May be an ENGR fundamentals or an additional CS Depth course. See Fig. 3-4 in the UGHB for approved ENGR fundamentals list. May not be any CS 106)3-5
*Students who take ENGR 40A or 40M for fewer than 5 units are required to take 1-2 additional units of ENGR Fundamentals (13 units minimum), or 1-2 additional units of Depth.
Writing in the Major
Units
Select one of the following:
Computers, Ethics, and Public Policy
Writing Intensive Senior Project
Software Project
Software Project Experience with Corporate Partners
Writing Intensive Research Project in Computer Science
Computer Science Core (15 units)—
Units
CS 107Computer Organization and Systems5
or CS 107E Computer Systems from the Ground Up
CS 110Principles of Computer Systems5
CS 161Design and Analysis of Algorithms5
Senior Project (3 units)
Units
Senior Project
Writing Intensive Senior Project
Software Project
User Interface Design Project
Software Project
Software Project Experience with Corporate Partners
CS 294
6
Writing Intensive Research Project in Computer Science

Computer Science Depth B.S.

Choose one of the following ten CS degree tracks (a track must consist of at least 25 units and 7 classes):

Artificial Intelligence Track

Units
CS 221Artificial Intelligence: Principles and Techniques4
Select two courses, each from a different area:
Area I, AI Methods:
Probabilistic Graphical Models: Principles and Techniques
Machine Learning
Reinforcement Learning
Decision Making under Uncertainty
Area II, Natural Language Processing:
From Languages to Information
Natural Language Processing with Deep Learning
Spoken Language Processing
Natural Language Understanding
Area III, Vision:
Computer Vision: Foundations and Applications
Computer Vision: From 3D Reconstruction to Recognition
Convolutional Neural Networks for Visual Recognition
Area IV, Robotics:
Introduction to Robotics
Select one additional course from the Areas above or from the following:
AI Methods:
Computational Logic
Continuous Mathematical Methods with an Emphasis on Machine Learning
Deep Learning
Deep Generative Models
Modern Applied Statistics: Learning
Modern Applied Statistics: Data Mining
Vision:
CS 231B
CS 231M
CS 331A
Comp Bio:
CS 262
Computational Biology: Structure and Organization of Biomolecules and Cells
Computational Biology in Four Dimensions
CS 374
Information and the Web:
Information Retrieval and Web Search
Analysis of Networks
Other:
Logic Programming
General Game Playing
CS 277
Interdisciplinary Topics
Robotics and Control:
Advanced Robotic Manipulation
Topics in Artificial Intelligence (with advisor approval)
Introduction to Control Design Techniques
EE 209
Introduction to Stochastic Control with Applications
Dynamic Programming and Stochastic Control
Track Electives: at least three additional courses selected from the Areas and lists above, general CS electives, or the following: 4
Decision Making under Uncertainty
Logic and Artificial Intelligence
Translational Bioinformatics
Topics in Advanced Robotic Manipulation
Convex Optimization I
Convex Optimization I
Computation and Cognition: The Probabilistic Approach
Introduction to Statistical Signal Processing
Convex Optimization II
Game Theory and Economic Applications
Decision Analysis I: Foundations of Decision Analysis
Decision Analysis II: Professional Decision Analysis
Influence Diagrams and Probabilistics Networks
Computability and Logic
Human Neuroimaging Methods
Computational Neuroimaging
Neural Network Models of Cognition
Introduction to Statistical Inference
Data Mining and Analysis
Introduction to Nonparametric Statistics

Biocomputation Track

Units
The Mathematics, Science, and Engineering Fundamentals requirements are non-standard for this track. See Handbook for Undergraduate Engineering Programs for details.
Select one of the following:3-4
Artificial Intelligence: Principles and Techniques
Probabilistic Graphical Models: Principles and Techniques
Machine Learning
Computer Vision: From 3D Reconstruction to Recognition
Select one of the following:
CS 262
Modeling Biomedical Systems: Ontology, Terminology, Problem Solving
The Human Genome Source Code
Representations and Algorithms for Computational Molecular Biology
Translational Bioinformatics
Computational Biology: Structure and Organization of Biomolecules and Cells
One additional course from the lists above or the following:3-4
From Languages to Information
Data Management and Data Systems
Introduction to Human-Computer Interaction Design
Introduction to Computer Graphics and Imaging
Interactive Computer Graphics
One course selected from the following: 3-4
CS 108Object-Oriented Systems Design3-4
CS 124From Languages to Information3-4
CS 131Computer Vision: Foundations and Applications3-4
CS 140Operating Systems and Systems Programming3-4
or CS 140E Operating systems design and implementation
CS 141Introduction to Computer Sound3
CS 142Web Applications3
CS 143Compilers3-4
CS 144Introduction to Computer Networking3-4
CS 145Data Management and Data Systems3-4
CS 146Introduction to Game Design and Development3
CS 147Introduction to Human-Computer Interaction Design3-5
CS 148Introduction to Computer Graphics and Imaging3-4
CS 149Parallel Computing3-4
CS 151Logic Programming3
CS 154Introduction to Automata and Complexity Theory3-4
CS 155Computer and Network Security3
CS 157Computational Logic3
or PHIL 151 Metalogic
CS 164
CS 166Data Structures3-4
CS 167
CS 168The Modern Algorithmic Toolbox3-4
CS 190Software Design Studio3
CS 195Supervised Undergraduate Research (4 units max)3-4
CS 205LContinuous Mathematical Methods with an Emphasis on Machine Learning3
CS 205B3
CS 210ASoftware Project Experience with Corporate Partners3-4
CS 217Hardware Accelerators for Machine Learning3-4
CS 221Artificial Intelligence: Principles and Techniques3-4
CS 223AIntroduction to Robotics3
CS 224NNatural Language Processing with Deep Learning3-4
CS 224SSpoken Language Processing2-4
CS 224UNatural Language Understanding3-4
CS 224WAnalysis of Networks3-4
CS 225AExperimental Robotics3
CS 227BGeneral Game Playing3
CS 228Probabilistic Graphical Models: Principles and Techniques3-4
CS 229Machine Learning3-4
CS 229TStatistical Learning Theory3
CS 230Deep Learning3-4
CS 231AComputer Vision: From 3D Reconstruction to Recognition3-4
CS 231B
CS 231M
CS 231NConvolutional Neural Networks for Visual Recognition3-4
CS 232Digital Image Processing3
CS 233Geometric and Topological Data Analysis3
CS 234Reinforcement Learning3
CS 236Deep Generative Models3
CS 238Decision Making under Uncertainty3-4
CS 240Advanced Topics in Operating Systems3
CS 242Programming Languages3
CS 243Program Analysis and Optimizations3-4
CS 244Advanced Topics in Networking3-4
CS 244BDistributed Systems3
CS 245Principles of Data-Intensive Systems3
CS 246Mining Massive Data Sets3-4
CS 247Human-Computer Interaction Design Studio3-4
CS 248Interactive Computer Graphics3-4
CS 251Cryptocurrencies and blockchain technologies3
CS 252Analysis of Boolean Functions3
CS 254Computational Complexity3
CS 255Introduction to Cryptography3
CS 261Optimization and Algorithmic Paradigms3
CS 262
CS 263Algorithms for Modern Data Models3
CS 264Beyond Worst-Case Analysis3
CS 265Randomized Algorithms and Probabilistic Analysis3
CS 266
CS 2673
CS 269IIncentives in Computer Science3
CS 270Modeling Biomedical Systems: Ontology, Terminology, Problem Solving3
CS 272Introduction to Biomedical Informatics Research Methodology3-5
CS 273AThe Human Genome Source Code3
CS 273BDeep Learning in Genomics and Biomedicine3
CS 274Representations and Algorithms for Computational Molecular Biology3-4
CS 275Translational Bioinformatics4
CS 276Information Retrieval and Web Search3
CS 278Social Computing3
CS 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CS 348BComputer Graphics: Image Synthesis Techniques3-4
CS 348CComputer Graphics: Animation and Simulation3
CS 348KVisual Computing Systems3-4
CS 371Computational Biology in Four Dimensions3
CS 374
CME 108Introduction to Scientific Computing3
EE 180Digital Systems Architecture4
EE 263Introduction to Linear Dynamical Systems3
EE 282Computer Systems Architecture3
EE 364AConvex Optimization I3
BIOE 101Systems Biology3
MS&E 152Introduction to Decision Analysis3-4
MS&E 252Decision Analysis I: Foundations of Decision Analysis3-4
STATS 206Applied Multivariate Analysis3
STATS 315AModern Applied Statistics: Learning2-3
STATS 315BModern Applied Statistics: Data Mining2-3
GENE 211Genomics3
One course from the following:3-5
CS 145Data Management and Data Systems3-4
CS 147Introduction to Human-Computer Interaction Design3-5
CS 221Artificial Intelligence: Principles and Techniques3-4
CS 228Probabilistic Graphical Models: Principles and Techniques3-4
CS 229Machine Learning3-4
CS 262
CS 270Modeling Biomedical Systems: Ontology, Terminology, Problem Solving3
CS 273AThe Human Genome Source Code3
CS 273BDeep Learning in Genomics and Biomedicine3
CS 274Representations and Algorithms for Computational Molecular Biology3-4
CS 275Translational Bioinformatics4
CS 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CS 371Computational Biology in Four Dimensions3
CS 373Statistical and Machine Learning Methods for Genomics3
CS 374
EE 263Introduction to Linear Dynamical Systems3
EE 364AConvex Optimization I3
MS&E 152Introduction to Decision Analysis3-4
MS&E 252Decision Analysis I: Foundations of Decision Analysis3-4
STATS 206Applied Multivariate Analysis3
STATS 315AModern Applied Statistics: Learning2-3
STATS 315BModern Applied Statistics: Data Mining2-3
GENE 211Genomics3
One course selected from the list above or the following:
CHEMENG 150Biochemical Engineering3
CHEMENG 174Environmental Microbiology I3
APPPHYS 294Cellular Biophysics3
BIO 104Advance Molecular Biology: Epigenetics and Proteostasis5
BIO 1184
BIO 188
BIO 189
BIO 214Advanced Cell Biology4
BIO 217
BIO 230Molecular and Cellular Immunology4
CHEM 141The Chemical Principles of Life I4
CHEM 171Physical Chemistry I4
BIOC 218
BIOC 241Biological Macromolecules3-5
One course from the following:
BIOE 220Introduction to Imaging and Image-based Human Anatomy3
CHEMENG 150Biochemical Engineering3
CHEMENG 174Environmental Microbiology I3
CS 262
CS 274Representations and Algorithms for Computational Molecular Biology3-4
CS 279Computational Biology: Structure and Organization of Biomolecules and Cells3
CS 371Computational Biology in Four Dimensions3
CS 374
ME 281Biomechanics of Movement3
APPHYS 294
BIO 104Advance Molecular Biology: Epigenetics and Proteostasis5
BIO 112Human Physiology4
BIO 1184
BIO 158Developmental Neurobiology4
BIO 183Theoretical Population Genetics3
BIO 188
BIO 189
BIO 214Advanced Cell Biology4
BIO 217
BIO 230Molecular and Cellular Immunology4
CHEM 171Physical Chemistry I4
BIOC 218
BIOC 241Biological Macromolecules3-5
DBIO 210Developmental Biology4
GENE 211Genomics3
SURG 101Regional Study of Human Structure5

Computer Engineering Track

Units
For this track there is a 10 unit minimum for ENGR Fundamentals and a 29 unit minimum for Depth (for track and elective courses)
EE 108
EE 180
Digital System Design
and Digital Systems Architecture
6-8
Select two of the following:8
Circuits I
Circuits II
Signal Processing and Linear Systems I
Signal Processing and Linear Systems II
Satisfy the requirements of one of the following concentrations:
1) Digital Systems Concentration
Operating Systems and Systems Programming
or CS 140E or CS 143
Digital Systems Design Lab
Introduction to VLSI Systems
Plus two of the following (6-8 units):
Operating Systems and Systems Programming (if not counted above)
or CS 140E or CS 143
Introduction to Computer Networking
Parallel Computing
Software Design Studio
Hardware Accelerators for Machine Learning
CS 240E
Advanced Topics in Networking
Digital Systems Engineering
Computer Systems Architecture
2) Robotics and Mechatronics Concentration
Continuous Mathematical Methods with an Emphasis on Machine Learning
Introduction to Robotics
Introduction to Mechatronics
Feedback Control Design
Plus one of the following (3-4 units):
Experimental Robotics
Computer Vision: From 3D Reconstruction to Recognition
Introduction to Control Design Techniques
Linear Control Systems II
3) Networking Concentration
Operating Systems and Systems Programming
and Introduction to Computer Networking (CS 140E can substitute for CS 140)
Plus three of the following (9-11 units):
Advanced Topics in Operating Systems
Embedded Systems Workshop
Advanced Topics in Networking
Distributed Systems
Analog and Digital Communication Systems

Graphics Track

Units
CS 148
CS 248
Introduction to Computer Graphics and Imaging
and Interactive Computer Graphics
8
Select one of the following: 53-5
Continuous Mathematical Methods with an Emphasis on Machine Learning
Linear Algebra and Partial Differential Equations for Engineers (Note: students taking CME 104 are also required to take its prerequisite course, CME 102)
Introduction to Scientific Computing
Integral Calculus of Several Variables
Linear Algebra and Matrix Theory
Select two of the following:6-8
Introduction to Game Design and Development
Computer Vision: From 3D Reconstruction to Recognition
Computer Vision: Foundations and Applications
Geometric and Topological Data Analysis
Geometric Algorithms
Computer Graphics: Geometric Modeling & Processing
Computer Graphics: Image Synthesis Techniques
Computer Graphics: Animation and Simulation
Visual Computing Systems
Topics in Computer Graphics
Track Electives: at least two additional courses from the lists above, the general CS electives list, or the following: 46-8
Intro to Digital / Physical Design
Photography I: Black and White
Digital Art I
Numerical Linear Algebra
Numerical Solution of Partial Differential Equations
Introduction to Digital Image Processing
Two-Dimensional Imaging
Digital Signal Processing
Introduction to Statistical Signal Processing
Digital Image Processing
Visual Thinking
Introduction to Perception
Image Systems Engineering

Human-Computer Interaction Track

Units
CS 147Introduction to Human-Computer Interaction Design4
CS 247Human-Computer Interaction Design Studio4
Any three of the following:
Web Applications
Introduction to Game Design and Development
Introduction to Computer Graphics and Imaging
User Interface Design Project
Exploring Computational Journalism
Software Project Experience with Corporate Partners
Social Computing
Human-Computer Interaction Research
Any CS 377 'Topics in HCI' of three or more units
Data Visualization
Introduction to the Design of Smart Products
At least two additional courses from above list, the general CS electives list, or the following: 43-6
Any d.school class of 3 or more units
Any class of 3 or more units at hci.stanford.edu under the 'courses' link
Communication-
Behavior and Social Media
Lies, Trust, and Tech
Lies, Trust, and Tech
COMM 140
or COMM 240
The Politics of Algorithms
Virtual People
COMM 169
or COMM 269
Media Psychology
Media Psychology
COMM 182
The Politics of Algorithms
Language and Technology
Art Studio-
Intro to Digital / Physical Design
Embodied Interfaces
Drawing with Code
DESIGN IN PUBLIC SPACES
Social Media and Performative Practices
Data as Material
Advanced Interaction Design
Sculptural Screens / Malleable Media
Emerging Technology Studio
Sym Sys-
Cognition in Interaction Design
Psychology-
Introduction to Perception
Minds and Machines
Introduction to Learning and Memory
Introduction to Cognitive Neuroscience
Introduction to Developmental Psychology
Self and Society: Introduction to Social Psychology
Introduction to Cultural Psychology
Introduction to Personality and Affective Science
Introduction to Clinical Psychology
Introduction to Abnormal Psychology
PSYCH 131
Judgment and Decision-Making
Empirical Methods-
Ethnographic Methods
Introduction to Applied Statistics
Experimental Methods
Statistical Methods for Behavioral and Social Sciences
High-Dimensional Methods for Behavioral and Neural Data
Introduction to Regression Models and Analysis of Variance
Introduction to Survey Research
Qualitative Research Methodology
ME Design-
Visual Thinking
Introduction to Human Values in Design
Design and Manufacturing
Introduction to Mechatronics
Advanced Product Design: Needfinding
Learning Design + Tech-
Beyond Bits and Atoms: Designing Technological Tools
Technology for Learners
Educating Young STEM Thinkers
Innovations in Education
Child Development and New Technologies
MS&E-
Global Work
MS&E 331
Computer Music-
Fundamentals of Computer-Generated Sound
Compositional Algorithms, Psychoacoustics, and Computational Music
Research Seminar in Computer-Generated Music
Physical Interaction Design for Music
Music, Computing, Design I: The Art of Design
Optional Elective 4

Information Track

Units
CS 124From Languages to Information4
CS 145Data Management and Data Systems4
Two courses, from different areas:6-9
1) Information-based AI applications
Natural Language Processing with Deep Learning
Spoken Language Processing
Machine Learning
Geometric and Topological Data Analysis
Reinforcement Learning
2) Database and Information Systems
Operating Systems and Systems Programming
Operating systems design and implementation
Web Applications
Logic Programming
Principles of Data-Intensive Systems
Mining Massive Data Sets
Project in Mining Massive Data Sets
CS 345
(Offered occasionally)
3) Information Systems in Biology
CS 262
Modeling Biomedical Systems: Ontology, Terminology, Problem Solving
Representations and Algorithms for Computational Molecular Biology
4) Information Systems on the Web
Analysis of Networks
Information Retrieval and Web Search
At least three additional courses from the above areas or the general CS electives list. 4

Systems Track

Units
CS 140Operating Systems and Systems Programming4
or CS 140E Operating systems design and implementation
Select one of the following:3-4
Compilers
Digital Systems Architecture
Two additional courses from the list above or the following:6-8
Introduction to Computer Networking
Data Management and Data Systems
Parallel Computing
Computer and Network Security
Software Design Studio
Hardware Accelerators for Machine Learning
Advanced Topics in Operating Systems
Programming Languages
Program Analysis and Optimizations
Advanced Topics in Networking
Principles of Data-Intensive Systems
Introduction to VLSI Systems
Computer Systems Architecture
Track Electives: at least three additional courses selected from the list above, the general CS electives list, or the following: 49-12
Embedded Systems Workshop
Advanced Multi-Core Systems
Project in Mining Massive Data Sets
CS 343
(Not given this year)
Topics in Computer Networks (3 or more units, any suffix)
CS 345
(Advanced Topics in Database Systems - 3 or more units, any suffix)
Topics in Programming Systems (with permission of undergraduate advisor)
Topics in Computer Graphics
Digital System Design
Interconnection Networks
Internet Routing Protocols and Standards
EE 384B
Wireless Local and Wide Area Networks
Performance Engineering of Computer Systems & Networks

Theory Track

Units
CS 154Introduction to Automata and Complexity Theory4
Select one of the following:3
The Modern Algorithmic Toolbox
Introduction to Cryptography
Optimization and Algorithmic Paradigms
Beyond Worst-Case Analysis
Randomized Algorithms and Probabilistic Analysis
Geometric Algorithms
Two additional courses from the list above or the following:6-8
Compilers
Logic Programming
Computer and Network Security
Computational Logic
Metalogic
Data Structures
Continuous Mathematical Methods with an Emphasis on Machine Learning
Probabilistic Graphical Models: Principles and Techniques
Geometric and Topological Data Analysis
Deep Generative Models
Programming Languages
Algebraic Error Correcting Codes
Cryptocurrencies and blockchain technologies
Analysis of Boolean Functions
Computational Complexity
CS 259
(with permission of undergraduate advisor)
CS 262
Algorithms for Modern Data Models
CS 266
CS 267
Incentives in Computer Science
Pseudo-Randomness
Topics in Intractability: Unfulfilled Algorithmic Fantasies (Not given this year)
Advanced Topics in Cryptography (Not given this year)
CS 357
(Not given this year)
Topics in Programming Language Theory
Topics in the Theory of Computation (with permission of undergraduate advisor)
CS 364A
Topics in Analysis of Algorithms (with permission of undergraduate advisor)
CS 374
Linear Programming
Track Electives: at least three additional courses from the lists above, the general CS electives list, or the following: 49-12
Almost Linear Time Graph Algorithms
Numerical Linear Algebra
Discrete Mathematics and Algorithms
Computability and Logic

Unspecialized Track

Units
CS 154Introduction to Automata and Complexity Theory4
Select one of the following:4
Operating Systems and Systems Programming
Operating systems design and implementation
Compilers
One additional course from the list above or the following:3-4
Introduction to Computer Networking
Computer and Network Security
Software Design Studio
Programming Languages
Advanced Topics in Networking
Digital Systems Architecture
Select one of the following:3-4
Artificial Intelligence: Principles and Techniques
Introduction to Robotics
Probabilistic Graphical Models: Principles and Techniques
Machine Learning
Computer Vision: From 3D Reconstruction to Recognition
Select one of the following:3-4
Data Management and Data Systems
Introduction to Human-Computer Interaction Design
Introduction to Computer Graphics and Imaging
Interactive Computer Graphics
CS 262
At least two courses from the general CS electives list 4

Individually Designed Track

Students may propose an individually designed track. Proposals should include a minimum of 25 units and seven courses, at least four of which must be CS courses numbered 100 or above. See Handbook for Undergraduate Engineering Programs for further information.

For additional information and sample programs see the Handbook for Undergraduate Engineering Programs (UGHB)

Honors Program in Computer Science

The Department of Computer Science (CS) offers an honors program for undergraduates whose academic records and personal initiative indicate that they have the necessary skills to undertake high-quality research in computer science. Admission to the program is by application only. To apply for the honors program, students must be majoring in Computer Science, have a grade point average (GPA) of at least 3.6 in courses that count toward the major, and achieve senior standing (135 or more units) by the end of the academic year in which they apply. Coterminal master’s students are eligible to apply as long as they have not already received their undergraduate degree. Beyond these requirements, students who apply for the honors program must find a Computer Science faculty member who agrees to serve as the thesis adviser for the project. Thesis advisers must be members of Stanford’s Academic Council.

Students who meet the eligibility requirements and wish to be considered for the honors program must submit a written application to the CS undergraduate program office by May 1 of the year preceding the honors work. The application must include a letter describing the research project, a letter of endorsement from the faculty sponsor, and a transcript of courses taken at Stanford. Each year, a faculty review committee selects the successful candidates for honors from the pool of qualified applicants.

In order to receive departmental honors, students admitted to the honors program must, in addition to satisfying the standard requirements for the undergraduate degree, do the following:

  1. Complete at least 9 units of CS 191 or CS 191W under the direction of their project sponsor.
  2. Attend a weekly honors seminar Winter and Spring quarters.
  3. Complete an honors thesis deemed acceptable by the thesis adviser and at least one additional faculty member.
  4. Present the thesis at a public colloquium sponsored by the department.
  5. Maintain the 3.6 GPA required for admission to the honors program.

Computer Science (CS) Minor

The following core courses fulfill the minor requirements. Prerequisites include the standard mathematics sequence through MATH 51 (or CME 100).

Units
Introductory Programming (AP Credit may be used to fulfill this requirement):
CS 106BProgramming Abstractions5
or CS 106X Programming Abstractions (Accelerated)
Core:
CS 103Mathematical Foundations of Computing5
CS 107Computer Organization and Systems5
or CS 107E Computer Systems from the Ground Up
CS 109Introduction to Probability for Computer Scientists5
Electives (choose two courses from different areas):
Artificial Intelligence—
CS 124From Languages to Information4
CS 221Artificial Intelligence: Principles and Techniques4
CS 229Machine Learning3-4
Human-Computer Interaction—
CS 147Introduction to Human-Computer Interaction Design4
Software—
CS 108Object-Oriented Systems Design4
CS 110Principles of Computer Systems5
Systems—
CS 140Operating Systems and Systems Programming4
or CS 140E Operating systems design and implementation
CS 143Compilers4
CS 144Introduction to Computer Networking4
CS 145Data Management and Data Systems4
CS 148Introduction to Computer Graphics and Imaging4
Theory—
CS 154Introduction to Automata and Complexity Theory4
CS 157Computational Logic3
CS 161Design and Analysis of Algorithms5

Note: for students with no programming background and who begin with CS 106A, the minor consists of seven courses.