Stanford Computer Science Curriculum Revision-Preview-04-03-08
Stanford Computer Science Curriculum Revision-Preview-04-03-08
Mehran Sahami
Associate Chair for Education
April 3, 2008
CS103X
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.
Algorithms Algorithms
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
• Biocomputation – In some cases, you can take gateway course before finishing core
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
– 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)
Questions?