0% found this document useful (0 votes)
361 views9 pages

Stanford Computer Science Curriculum Revision-Preview-04-03-08

The document outlines a new undergraduate computer science curriculum including: 1. A brief review of the current CS curriculum and the structure of the new curriculum with CS core courses and initial tracks. 2. The CS core courses will incorporate most of the current intro programming sequence and systems concepts in later projects. 3. Tracks will require students to complete requirements in a specialization and provide both depth and multi-disciplinary options.

Uploaded by

Michael
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
361 views9 pages

Stanford Computer Science Curriculum Revision-Preview-04-03-08

The document outlines a new undergraduate computer science curriculum including: 1. A brief review of the current CS curriculum and the structure of the new curriculum with CS core courses and initial tracks. 2. The CS core courses will incorporate most of the current intro programming sequence and systems concepts in later projects. 3. Tracks will require students to complete requirements in a specialization and provide both depth and multi-disciplinary options.

Uploaded by

Michael
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Outline

• Brief review of current CS curriculum


Preview of the New Undergraduate • Structure of new CS curriculum
Computer Science Curriculum • CS Core courses
• Initial set of tracks
• Timelines

Mehran Sahami
Associate Chair for Education

April 3, 2008

Outline Current Curriculum: Lower Division


AP credit or strong
• Brief review of current CS curriculum prior programming Programming
experience Programming
• Structure of new CS curriculum methodology and
abstraction
• CS Core courses CS106A CS106B/X CS107 CS108
Programming paradigms
• Initial set of tracks Object-oriented systems
design
• Timelines
Theory
CS103A CS103B Discrete mathematics
Discrete structures

CS103X

Current Curriculum: Upper Division Outline


• Theory Depth • Brief review of current CS curriculum
– CS154: Automata and Complexity Theory
• Structure of new CS curriculum
– CS161: Design and Analysis of Algorithms
• Systems Depth • CS Core courses
– EE108B: Digital Systems II • Initial set of tracks
– Two Systems Electives (OS, Compilers, Networking, etc.)
• Timelines
• Applications
– CS121/221: Artificial Intelligence
– One Applications Elective (Databases, HCI, Graphics, etc.)
• 2-3 Restricted CS Electives
• Senior Project capstone course
Revised Curricular Structure: Core Revised Curricular Structure: Tracks
Theory Core: 3 Courses
• Incorporates majority of
current cs103 course topics ~4 Courses
• Eliminates redundancies in • Students must complete
existing courses requirements for any one track
• CS-owned probability course Theory • Developing depth in a Theory
with AI applications specialization
• Provide course options within
Systems Core: 3 Courses each track
Systems Systems
• Incorporates much of current • Provide multi-disciplinary
intro programming sequence options
• Incorporates systems concepts • Modularize curriculum
in later programming projects
• CS106A considered “funnel”
into core (not part of core)

Why Tracks? Revised Curricular Structure: Electives


• Explicitly shows available options
– Diversity of areas within computer science
– Allows focus on areas of greatest interest ~2-4 Courses
• Helps eliminate image of CS as “just programming” • Restricted electives
– Programming is the means, not the ends • Allow pursuing breadth
and/or additional depth Theory
– Significant role of computing in inter-disciplinary work • Track-specific elective
– Provides more context for what is possible with CS degree options allow for
interdisciplinary work
– Still, should not discount the importance of rigorous software Systems
engineering skills
• Provides organizational infrastructure
– Easier to evolve major as the field evolves
– E.g., add/drop/modify tracks (or programs in them)

Revised Curricular Structure: Capstone Structure Aligns With Broader Context


• IEEE-ACM Computing Curricula 2001 Report
– Supports tracks model
1 Course – Revision committee adopted modular structure to support
• “Senior project” capstone adaptability
course
• Developing capstone Theory • ICER: Integrative Computing Education & Research
courses to parallel tracks – Change the popular image of computing
• Both application – Encourage curricular experimentation and innovation
development and
research options Systems – Make sure introductory students recognize that the field offers
many opportunities
– Strengthen interdisciplinary connections
• Peer institutions
– Many peer institutions interested in moving in same direction for
similar reasons
Increasing the “Footprint” of CS “Footprint” of CS Students See Today

Data mining Data mining


Databases Databases
Hardware Robotics Hardware Robotics
Machine Learning Machine Learning
Distributed Systems Distributed Systems

Systems Natural Language Systems Natural Language


Networking AI Networking AI
Security Comp. Bio. Security Comp. Bio.
HCI Theory HCI Theory
Comp. Economics Comp. Economics

Graphics Geometric Comp. Graphics Geometric Comp.

Algorithms Algorithms

Editor’s Note: Two-dimensional projection clearly does not capture Editor’s Note: Two-dimensional projection clearly does not capture
the relative importance or organizational nuances of the field. the relative importance or organizational nuances of the field.
Some topics may be closer to you than they appear on this slide. Some topics may be closer to you than they appear on this slide.

Tracks Allow More Depth... ...in a More Diverse Set of Areas

Data mining Data mining


Databases Databases
Hardware Robotics Hardware Robotics
Machine Learning Machine Learning
Distributed Systems Distributed Systems

Systems Natural Language Systems Natural Language


Networking AI Networking AI
Security Comp. Bio. Security Comp. Bio.
HCI Theory HCI Theory
Comp. Economics Comp. Economics

Graphics Geometric Comp. Graphics Geometric Comp.

Algorithms Algorithms

Total amount of material covered must remain the same

Total Potential “Footprint” is Larger Curriculum Revision Process


• Curriculum committee met regularly throughout the Fall
Data mining
to discuss and refine core courses
Databases
Hardware Robotics – Respective subcommittees formed to define core courses
Machine Learning – Proposals for core courses each revised multiple (> 4) times
Distributed Systems
Natural Language • In Winter, faculty subcommittees met to define Tracks
Networking Systems
AI
– Eight initial tracks proposal (with multiple content revisions)
Security Comp. Bio.
• Curriculum committee reviewed and approved proposals
HCI Theory
Comp. Economics
• On March 11, new curriculum approved unanimously by
Graphics Geometric Comp. full CS faculty
Algorithms • On March 21, new curriculum approved by School of
Engineering Undergraduate Council
Core material everyone sees is streamlined to accommodate • New curriculum will go into effect in AY 2008-09
Vast Majority of CS Department Involved Outline
Curriculum Committee Beyond the Committee • Brief review of current CS curriculum
• Jerry Cain • Alex Aiken • David Mazieras
• Bill Dally • Serafim Batzoglou • Rajeev Motwani • Structure of new CS curriculum
• Vladlen Koltun • Gill Bejerano • Serge Plotkin
• Phil Levis • David Dill • Bob Plummer • CS Core courses
• John Mitchell • Ron Fedkiw • Vaughan Pratt
• Andrew Ng • Hector Garcia-Molina • Tim Roughgarden • Initial set of tracks
• Nick Parlante • Leo Guibas • Claire Stager
• Eric Roberts • Pat Hanrahan • Sebastian Thrun • Timelines
• Mendel Rosenblum • Scott Klemmer • Jennifer Widom
• Mehran Sahami • Daphne Koller • Terry Winograd
• Julie Zelenski • David Koslow • Patrick Young
• Jean-Claude Latombe • Russ Altman
• Marc Levoy • Many additional faculty
• Chris Manning (email/informal meetings)

Shows real dedication to undergraduate education

One Important Caveat Systems I: Programming Abstractions


• Revised curriculum presented here is still subject to • CS106B/X
(minor) changes • Philosophy: problem solving, basic abstract data types, and
• Contents here are a preview of curriculum changes that recursion
will go into effect this coming Fall • General Topics
– Wanted to inform you as soon as revised curriculum was – Programming methodology (engineering, modularity, documentation)
approved – Algorithmic thinking and problem solving
– Data abstractions
– Give some guidance for course planning • Stacks
• There may be some modifications that will be made • Queues
between now and then • Linked lists
• Hash tables
– Additional changes are likely to be minor • Binary trees
– But, they can still happen! • Generics/templates
– Presentation here is not a binding contract – Recursion
• Procedural recursion
• The 2008-2009 Stanford Bulletin will contain the finalized • Recursive backtracking
requirements – Searching and sorting
– Basic algorithm analysis (big-Oh) and comparison

Systems II: Computer Organization and Systems Systems III: Principles of Computer Systems
• CS107, modified with material from CS143 & EE108B • CS110 – New course (not replacement for CS140 or CS244A)
• Philosophy: From hardware up to the source code • Philosophy: Building larger scale systems using OS and
• General Topics networking abstractions
– Machine architecture • General Topics
• Registers, ALU, CPU, RAM, I/O, basic assembly language – Processes
• Caching, pipelining • Concurrency mechanics on a single processor
– Memory model • Context switching, interrupts and exceptions
• Pointers, Heap management, garbage collection • Forking processes, process mechanics and management
• Low-level polymorphism and runtime type identification • Interprocess communication
• Data representation • Threading
• Facility with C programming as part of topical coverage – Storage and file management
– Compilation • File systems
• Function call mechanics and stack frames • Virtual memory and paging
• Semantic analysis – Networking
• Sockets
• Simple (intermediate) code generation
• Blocking vs. non-blocking strategies
– Basic concurrency usage
• Transport layer: TCP/IP
• Threading • Network layer: names, routing
• Synchronization, locks and semaphores – Understanding of distributed systems
Theory I: Mathematical Foundations of Computing Theory II: Intro. to Probability for Computer Scientists

• CS103 – New course leveraging current CS103A/B/X • CS109 – New course


courses and CS154 (does not replace CS154) – Replaces Stat116/MS&E120, adds CS applications
• Philosophy: Mathematical essentials for CS, with proofs • Philosophy: Probability relevant to CS, with applications
• General Topics • General Topics
– Logic and proof techniques – Counting and Combinatorics
• Prop. and predicate logic (with quantification), formal proof methods • Combinations, Permutations, Pigeonhole principle
• Applications: Satisfiability, SAT solving (Putnam-Davis) – Probability theory
– Induction • Random variables and event spaces
• Formal proofs and applications: program proofs, structural induction • Conditional probability, independence, conditional independence
– Sets, functions, and relations • Distributions: Uniform, Binomial, Multinomial, Normal, Poisson
• Theory and applications (error-correcting codes, social networks) • Point estimation, expectation, variance
– Intro to formal languages • Bayes’ Theorem, Law of large numbers, Central Limit Theorem
– DFAs, NFAs, and Regular Expressions • Hypothesis testing
– Context-free Grammars
• Applications: hashing, PageRank, data analysis, inference
– Turing machines
• TMs, TM program, Undecidability and the Halting problem – Intro. to Machine Learning
– NP-completeness • Hypothesis spaces, learning as search
• P and NP, examples of NP-complete problems and reductions • Data fitting, Naïve Bayes, Logistic Regression
• SAT revisited and Cook’s theorem • Applications: Email spam filtering, Recommender systems

Theory III: Data Structures and Algorithms Prerequisite Structure


Intro programming Intro to CS
• CS161 – Modified with some differences in coverage with sensors
CS106A
with robots “Funnel”
• Philosophy: Analysis of data structures and algorithms
• General Topics AP credit or strong
– Algorithmic complexity and analysis prior programming
• Asymptotics: Big Oh, Omega, and Theta notation experience
CS
• Recurrence relations Systems I Theory I Major
• Master theorem (CS106B/X) (CS103)
– Randomization, divide and conquer
• Introduction to randomized algorithms
• Quicksort, divide and conquer
– Heaps and counting sort Systems II Theory II
– Hashing (CS107) (CS109)
– Tree and graph definitions and properties, BSTs
– Greedy Algorithms (including min-cost spanning trees)
– Dynamic programming Systems III Theory III
– Graph algorithms, shortest paths, and applications (CS110) (CS161)
– Blind and heuristic search (A*) in graphs
Courses at appropriate level of difficulty to mature from
introductory to depth material in a reasonable manner

Summary of Changes Outline


• Current CS103 sequence and STAT116/MS&E120 are • Brief review of current CS curriculum
replaced as Math requirements with Theory I and II
• CS161 incorporated into Theory III (remains CS depth course) • Structure of new CS curriculum
• CS154, CS121/221 (and other application course) not in core
• CS Core courses
• No change in Math units, 9 net units opened in CS depth
• Initial set of tracks
• Systems I considered an Engineering Fundamental
• Systems II and III are CS depth courses • Timelines
• CS108, EE108B and Systems electives not in core
• 10 net units opened in CS depth
• Existing electives provide 6 additional units of CS depth
• Net result: 25 units opened in CS depth
Track Structure General CS Electives
• Combination of track requirements and electives satisfies: • CS108, CS121 or CS221*, CS124, CS140, CS142, CS143,
CS144, CS145, CS147, CS148 or CS248*, CS154, CS155,
– minimum of 7 courses AND minimum of 25 units
CS156, CS157, CS164, CS205A, CS205B, CS222, CS223A,
• All tracks have at least 4 (possibly more) required courses CS223B, CS224M, CS224N, CS224S, CS224U, CS225A,
– Will generally leave room for 2 to 4 elective courses
CS225B, CS226, CS227, CS228, CS228T, CS229, CS240,
CS242, CS243, CS244, CS244B, CS245, CS247, CS249A,
– Required senior project is not considered part of track CS249B, CS255, CS256, CS257, CS258, CS261, CS262,
• Elective courses CS270, CS271, CS272, CS273A, CS274, CS276, CS277,
CS295, CME108, EE108B, EE282
– Set of general CS electives that all students may choose from
*Students may not count both CS121 and CS221, or both CS148 and
– Additionally, each track specifies track-specific electives that may CS248 toward their major requirements.
count as elective courses only by students in that track
• Very similar to our current set of electives
– Track-specific electives allow for additional depth or related inter- – Added courses that are no longer required in major (e.g., CS108,
disciplinary course options CS121/221)
– Added some newly proposed undergraduate courses (e.g., CS124,
CS142, CS164)

Initial Set of Tracks Areas When Do I Have to Choose A Track?


• Artificial Intelligence • Do not need to choose a track right after finishing core
• Theory courses
– Note that each track has one or two required “gateway” courses
• Systems
– These “gateway” courses also count as electives (by design)
• Human-Computer Interaction
• Can sample tracks by taking their “gateway” course
• Graphics – If you like the area, you can go further
• Information – If you don’t like the area, the course you took will still count toward
– Management and applications of (un)structured your program as an elective (no penalty!)

• Biocomputation – In some cases, you can take gateway course before finishing core

• Unspecialized • If you manage to try 4 or 5 areas without finding one you


– Essentially, the current CS program like, you can still graduate under the unspecialized track
– But we really hope you’ll find an area you like!
• Individually Designed

Artificial Intelligence Track Theory Track


• Requirements • Requirements
a) CS221 a) CS154

b) Any two of: CS223A, CS223B, CS224M, CS224N, CS226, CS227, CS228, b) Any one of: CS164, CS255, CS258, CS261, CS268, CS361A, CS361B, CS365
CS229 Note: CS164: Computing with Physical Objects (new course by Leo Guibas)

c) One additional class from category (b) or from the following: c) Two additional classes from category (b) or from the following:
CS205A, CS222, CS224S, CS224U, CS225A, CS225B, CS227B, CS262, CS143, CS155, CS156, CS157, CS205A, CS228, CS242, CS256, CS259,
CS276, CS277, CS279, CS321, CS326A, CS327A, CS329, CS374, CS379, CS262, CS354, CS355, CS357, CS358, CS359*, CS364A, CS364B, CS369*,
EE263, EE376A, Eng205, Eng209A, Ling180, MS&E251, MS&E339, MS&E351, CS374, MS&E310
Stat315A, Stat315B
*requires approval of undergraduate advisor.

• Track electives
– Courses in categories (b) and (c) above, as well as:
• Track electives
CS270, CS273A, CS274, CS275, CS278, EE364A, EE364B, Econ286, – Courses in categories (b) and (c) above, as well as:
MS&E252, MS&E352, MS&E355, Phil151*, Phil152, Psych202, Psych204A, CME302, CME305, Phil151*, Phil152
Psych204B, Stat200, Stat202, Stat205
*students may not count both Phil151 and CS157 toward major requirements.
*students may not count both Phil151 and CS157 toward major requirements.
Systems Track Human-Computer Interaction Track
• Requirements • Requirements
a) CS140 a) CS147, CS247 (HCI Foundations)

b) One of: CS143 or EE108B b) Any one of: CS148, CS248, CS376, CS377, CS378 (Advanced HCI)

c) Two additional courses from category (b) or from the following: c) Any one of: CS108, CS140, CS221, CS223B, CS229, CS249A (Buttressing CS)
CS144, CS145, CS155, CS240, CS240C, CS240D, CS242, CS243, CS244, CS d) Any one of: Psych55, Psych252, MS&E184, ME101, ME115 (Designing for People)
245, EE271, EE282

• Track electives • Track electives


– Courses in category (c) above, as well as: – Courses in categories (b), (c), and (d) above, as well as:
CS240E, CS240X, CS244C, CS244E, CS315A, CS315B, CS343, CS344, CS34 ArtStudi60, Comm269, CME340, CS447*, CS448B*, Ling180, EE118, MS&E21
4E, CS345, CS346, CS347, CS349*, CS448, EE382A, EE382C, EE384A, EE38 6A, Psych205, Psych221
4B, EE384C, EE384S, EE384X, EE384Y
*requires approval of undergraduate advisor.
*requires approval of undergraduate advisor.

Graphics Track Information Track


• Requirements • Requirements
a) CS248 a) CS124, CS145
(Starting in AY ‘09-10, CS148 and CS248 will both be required as a two course sequence) Note: CS124: From Languages to Information
(new course by Dan Jurafsky and Chris Manning)
b) Any one of: CS205A, CME104, CME108, Math52, Math113
(Of the choices above, CS205A is strongly recommended as a preferred choice) b) Two courses, which must be from different areas below:
i. Information-based AI Applications
c) Any two of: CS164, CS178, CS205B, CS223B, CS268, CS348A, CS348B, CS224N, CS224S, CS229
CS448
Note: CS164: Computing with Physical Objects (new course by Leo Guibas) ii. Database and Information Systems
CS140, CS240D, CS245, CS345A, CS345C, CS346, CS347
CS178: Digital Photography (new course by Marc Levoy)
iii. Information Systems in Biology
CS262, CS270, CS274
• Track electives
iv. Information Systems on the Web
– Courses in category (c) above, as well as:
CS276, CS364B, <<Future course on Internet Algorithmics by Rajeev Motwani>>
ArtStudi 60, ArtStudi 70, ArtStudi 179, CS48N, CS277, CS326A, CME302,
CME306, CME324, EE262, EE264, EE278, EE368, ME101, Psych30,
Psych221, STS144 • Track electives
– Courses in category (b) may also be counted as electives

Biocomputation Track Unspecialized Track


• Requirements (More CS oriented version of BMC Informatics Track) • Requirements
– Mathematics: (1 course less than CS)
• Math 41, Math 42, Theory I, Theory II a) CS154
• One of: Stat141, Stat203, Stat205, Stat215, Stat225
– Science: (2-3 courses more than CS) b) Any one of: CS140, CS143
• Physics 41, Chem 31A/B or 31X, Chem 33
• Bio41, 42 or HumBio2A, 3A, c) One additional class from category (b) or from the following: EE108B, CS144,
– Engineering Fundamentals: (1 course less than CS) CS155, CS240D, CS242, CS244
• CS106B/X (Systems I)
• Elective d) Any one of: CS121 or CS221, CS223A, CS223B, CS228, CS229
– Additional CS Core: (same as CS)
• Theory III, Systems II, Systems III e) Any one of: CS145, CS147, CS148 or CS248, CS262
– Biocomputation Track: (10-11 units)
a) Any one of: CS121, CS221, CS228, CS229, CS223B
b) Any one of: CS270, CS273A, CS274, CS275, CS278, CS279, CS262 • This is basically our current curriculum
c) One additional course from (a) or (b) or the following: CS145, CS147, CS148 or CS248
– Adapted to fit into new track structure
– Four Biocomputation Electives: (12-13 units; Different than CS electives)
• One course from either general CS of BMC Informatics elective lists – Some additional options for AI courses
• One course from BMC Informatics elective list


One course from either BMC Informatics, Cell/Mol, or Organs elective lists
One course from either BMC Cell/Mol or Organs elective lists
• Allows “in-flight” students to graduate under new program
– Senior Project, Technology in Society and Writing in Major (same as CS)
– Total: 93-99 units versus 93 units for Standard CS Track
Individually Designed Track Unit Calculations
• Students may propose Individually Designed Track • Core (30 units)
• Must be an intellectually coherent program of study – Theory: 3 courses @ 5 units = 15 units
– Proposal should justify program and why it cannot be satisfied via an existing track – Systems: 3 courses @ 5 units = 15 units
• Must specify equivalent of track and electives
• Upper division (28 units)
– Minimum of 7 courses; at least 4 must be CS courses numbered 100 or above
– Track: 4-5 courses Minimum of 7 courses
• Each course must be taken for a minimum of 3 units
– Electives: 2-4 courses (at least 25 units)
– Minimum of 25 total units for track + electives
– Capstone: 3 units
• Proposal must be approved by undergraduate advisor and
Associate Chair • Total related units = 58 units (same as now)
– Approvals must be obtained at least 2 quarters prior to completion of program
– 10 units are Mathematics (same as now)
• Proposal cannot modify any non-track/elective requirements – 5 units are Eng. Fundamentals (same as now)
– E.g., SoE requirements (Math, Science, Eng Fundamentals) cannot be modified
• Total CS depth units = 43 units (same as now)
– Must take all CS Core courses

Curriculum Comparison Outline


Current Proposed • Background
Programming: 3 courses Systems core: 3 courses
• Brief review of current CS curriculum
Theory: (2 + 2 depth): 4 courses Theory core: 3 courses
• Structure of new CS curriculum
Systems depth: 3 courses Track (depth): 4-5 courses
• CS Core courses
Applications: 2 courses
Electives: 2 courses Electives: 2-4 courses • Initial set of tracks
Capstone: 1 course Capstone: 1 course • Timelines

TOTAL: 15 courses TOTAL: 14-15 courses

Same number of units in both cases

Timeline Course Transition Plan in 2008-09


 Spring 2006/07 Preliminary agreement on structure.
Fall Winter Spring
 Fall 2007/08 Complete definition of core.
CS106X (Systems I) CS106B (Systems I) CS106B (Systems I)
 Winter 2007/08 Define initial set of tracks.
CS107 CS107
CS dept and SoE approval of program. (last old version) (new Systems II)
Start transition plan for new courses.
CS110 (Systems III)
 Spring 2007/08 Complete transition plan.
CS103A CS103B
Publicize new program to students.
CS103 (Theory I) CS109 (Theory II)
 Fall 2008/09 New curriculum requirements in place.
Begin shift in core course content. CS161 (current) CS161 (current)
 Winter 2008/09+ Continued development of course • Existing CS103A/B sequence offered one last time
contents and new courses. • Students having taken old CS107 can take CS110
• Content of CS161 will transition (slightly) in 2009-10
What If I’m Already Part-way Through? Course Equivalences
• Students can graduate under any curricular requirements • CS106B/X Same course
since they entered Stanford • CS107 Current CS107 satisfies new CS107
– You can choose to graduate under old or new CS requirements • CS110 If you’ve taken CS108 and (CS140 or CS143)
prior to Spring 08-09, CS108 will satisfy CS110
• What if I’ve already taken the lower-division courses? (but you’ll need 1 extra unit in track + electives)
– We have a set of “course equivalences” to allow you to graduate If you’ve taken CS108, but not (CS140 or CS143)
under new requirements, if you like prior to Spring 08-09, can count CS108 as elective,
• What if I’ve already taken most upper-division courses? but still need to satisfy CS110 requirement

– If you only have a couple courses left in your program, it may be • CS103 CS103A/B or CS103X satisfies new CS103.
easier to just complete the old requirements If you took CS103X you’ll need 1 additional unit in
track + electives
– If you have not yet taken many upper-division course, you may find
the new curriculum an attractive option • CS109 Stat116 (or equivalent) taken prior to Spring 2008-09
satisfies CS109
• CS161 Current CS161 satisfies new CS161
(but may need 1 extra unit in tracks + electives)

Thank you for your attention

Questions?

You might also like