CurriculumRevision Overview 09-26-08
CurriculumRevision Overview 09-26-08
Mehran Sahami
Associate Chair for Education
September 26, 2008
Outline
Brief review of old CS curriculum
The new CS curriculum
Structure
CS106A
Programming
CS106B/X
CS107
CS108
Details
Programming
methodology and
abstraction
Programming paradigms
Object-oriented systems
design
Theory
CS103A
CS103B
Discrete mathematics
Discrete structures
CS103X
Outline
Theory Depth
Systems Depth
EE108B: Digital Systems II
Two Systems Electives (OS, Compilers, Networking, etc.)
Applications
CS121/221: Artificial Intelligence
One Applications Elective (Databases, HCI, Graphics, etc.)
~4-5 Courses
Theory
Systems
~2-4 Courses
Theory
Systems
1 Course
Restricted electives
Allow pursuing breadth
and/or additional depth
Track-specific elective
options allow for
interdisciplinary work
Theory
Systems
Databases
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
Graphics
Systems
Hardware
Machine Learning
Distributed Systems
Theory
Databases
Robotics
HCI
Data mining
Hardware
Networking
Comp. Economics
Geometric Comp.
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Algorithms
Algorithms
Databases
Data mining
Hardware
Databases
Robotics
Machine Learning
Distributed Systems
Graphics
Natural Language
AI
Security
Comp. Bio.
Theory
HCI
Machine Learning
Systems
Networking
AI
Security
Robotics
Distributed Systems
Natural Language
Systems
Networking
Data mining
Hardware
Comp. Bio.
Theory
HCI
Comp. Economics
Geometric Comp.
Graphics
Algorithms
Comp. Economics
Geometric Comp.
Algorithms
Databases
Data mining
Hardware
Robotics
Machine Learning
Distributed Systems
Networking
Natural Language
Systems
AI
Security
Comp. Bio.
Theory
HCI
Graphics
Comp. Economics
Geometric Comp.
Jerry Cain
Bill Dally
Vladlen Koltun
Phil Levis
John Mitchell
Andrew Ng
Nick Parlante
Eric Roberts
Mendel Rosenblum
Mehran Sahami (Chair)
Julie Zelenski
Algorithms
Alex Aiken
Serafim Batzoglou
Gill Bejerano
David Dill
Ron Fedkiw
Hector Garcia-Molina
Leo Guibas
Pat Hanrahan
Scott Klemmer
Daphne Koller
David Koslow
Jean-Claude Latombe
Marc Levoy
Chris Manning
David Mazieras
Rajeev Motwani
Serge Plotkin
Bob Plummer
Vaughan Pratt
Tim Roughgarden
Claire Stager
Sebastian Thrun
Jennifer Widom
Terry Winograd
Patrick Young
Russ Altman
Many additional faculty
(email/informal meetings)
Outline
CS106B/X
Structure
Details
Machine architecture
Registers, ALU, CPU, RAM, I/O, basic assembly language
Caching, pipelining
Memory model
Pointers, Heap management, garbage collection
Low-level polymorphism and runtime type identification
Data representation
Facility with C programming as part of topical coverage
Compilation
Function call mechanics and stack frames
Semantic analysis
Simple (intermediate) code generation
Basic concurrency usage
Threading
Synchronization, locks and semaphores
Processes
Concurrency mechanics on a single processor
Context switching, interrupts and exceptions
Forking processes, process mechanics and management
Interprocess communication
Threading
Storage and file management
File systems
Virtual memory and paging
Networking
Sockets
Blocking vs. non-blocking strategies
Transport layer: TCP/IP
Network layer: names, routing
Understanding of distributed systems
Prerequisite Structure
Intro programming
with sensors
AP credit or strong
prior programming
experience
CS106A
Intro to CS
with robots
CS106B/X
(Systems I)
CS103
(Theory I)
CS107
(Systems II)
CS109
(Theory II)
CS110
(Systems III)
CS161
(Theory III)
Funnel
CS
Major
Summary of Changes
Track Structure
Elective courses
Requirements
Artificial Intelligence
Theory
Systems
Human-Computer Interaction
Track electives
All tracks include General CS electives in elective list
Graphics
Information
Management and applications of (un)structured information/data
Biocomputation
Unspecialized
Essentially, the current CS program
Individually Designed
Requirements
Note that each track has one or two required gateway courses
These gateway courses also count as electives (by design)
a) CS221
b) Any two of: CS223A, CS223B, CS224M, CS224N, CS226, CS227, CS228,
CS229
c) One additional class from category (b) or from the following:
CS205A, CS222, CS224S, CS224U, CS225A, CS225B, CS227B, CS262,
CS276, CS277, CS279, CS321, CS326A, CS327A, CS329, CS374, CS379,
EE263, EE376A, Eng205, Eng209A, Ling180, MS&E251, MS&E339, MS&E351,
Stat315A, Stat315B
Track electives
Theory Track
Systems Track
Requirements
Requirements
a) CS154
a) CS140
b) Any one of: CS164, CS255, CS258, CS261, CS268, CS361A, CS361B, CS365
Note:
Track electives
Track electives
*students may not count both Phil151 and CS157 toward major requirements.
Graphics Track
Requirements
Requirements
a) CS248
(Starting in AY 09-10, CS148 and CS248 will both be required as a two course sequence)
b) Any one of: CS148, CS248, CS376, CS377, CS378 (Advanced HCI)
c) Any one of: CS108, CS140, CS221, CS223B, CS229, CS249A (Buttressing CS)
d) Any one of: Psych55, Psych252, MS&E184, ME101, ME115 (Designing for People)
c) Any two of: CS164, CS178, CS205B, CS223B, CS268, CS348A, CS348B,
CS448
Note:
Track electives
Track electives
Information Track
Biocomputation Track
Requirements
a) CS124, CS145
Note:
Information-based AI Applications
Track electives
a)
b)
c)
Math 41, Math 42, CS103 (Theory I), CS109 (Theory II)
One of: Stat141, Stat203, Stat205, Stat215, Stat225
Physics 41, Chem 31A/B or 31X, Chem 33
Bio41, 42 or HumBio2A, 3A,
CS106B/X (Systems I)
Elective
CS107 (Systems II), CS110 (Systems III), CS161 (Theory III),
Any one of: CS121, CS221, CS228, CS229, CS223B
Any one of: CS270, CS273A, CS274, CS275, CS278, CS279, CS262
One additional course from (a) or (b) or the following: CS145, CS147, CS148 or CS248
Unspecialized Track
Requirements
a) CS154
Proposal should justify program and why it cannot be satisfied via an existing track
General CS Electives
Unit Calculations
*Students may not count both CS121 and CS221, or both CS148 and
CS248 toward their major requirements.
Curriculum Comparison
Old
Programming:
Minimum of 7 courses
(at least 26 units)
Capstone: 3 units
Systems core:
3 courses
Theory core:
3 courses
Systems depth:
3 courses
Track (depth):
4-5 courses
Applications:
2 courses
Electives:
2 courses
Electives:
2-4 courses
Capstone:
1 course
Capstone:
1 course
TOTAL:
15 courses
TOTAL:
14-15 courses
(same as before)
(same as before)
Outline
New
3 courses
(same as before)
Winter
Spring
CS106X (Systems I)
CS106B (Systems I)
CS106B/X (Systems I)
CS107
CS107
CS103B
CS103 (Theory I)
CS161 (current)
CS161 (current)
Course Equivalences
Outline
CS106B/X
Same course
CS107
CS110
CS109
CS161
Structure
Details
People to Know/Ask
http://cs.stanford.edu/degrees/undergrad/ProgramSheets.shtml