Stanford University Summer Session
Summer at Stanford | High School | Undergraduate & Graduate | Apply Online | Photos

Overview
2008 Courses
Student Resources
Credit & Evaluation
Tuition & Financial
Calendar
Special Programs
International Students
How to Apply
FAQ

Search


User ID  
Password
Forgot password







Computer Science
650-723-2273

Session dates and times for courses are available in Axess under the Guest Menu. Course day, time, and units are subject to change. Courses are eight weeks long unless otherwise noted in the course description or details.





· Programming Methodology
· Programming Abstractions
· Introduction to Artificial Intelligence
· Operating Systems and Systems Programming
· Compilers
· Introductory Computer Graphics
· Introduction to Automata and Complexity Theory
· Design and Analysis of Algorithms
· Database Systems Principles

 
 CS 106A
Programming Methodology
3-5 units
Time: see http://axess.stanford.edu
Also sign up for one discussion section: various times


Introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Uses the Java programming language. Emphasis is on good programming style and the built-in facilities of the Java language. No prior programming experience required.
Note: May be taken for 3 units by grad students. Meets GER Disciplinary Breadth: Engineering and Applied Science.



 
 CS 106B
Programming Abstractions
3-5 units
Time: see http://axess.stanford.edu

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). Introduction to time and space complexity analysis. Uses the programming language C++ covering its basic facilities.
Prerequisite: CS 106A or equivalent.
Note: Meets GER Disciplinary Breadth: Engineering and Applied Science. May be taken for 3 units by graduate students.



 
 CS 121
Introduction to Artificial Intelligence
3 units
Time: see http://axess.stanford.edu

Concepts, representations, and techniques used in building practical computational systems (agents) that appear to display artificial intelligence (AI), through the use of sophisticated adaptive information processing algorithms. Topics: history of AI, reactive systems, heuristic search, planning, constraint satisfaction, knowledge representation and uncertain reasoning, machine learning, classification, applications to language, and vision.
Prerequisite: CS 103B or 103X Discrete Structures and basic facility with differential calculus, vector algebra, and probability theory.



 
 CS 140
Operating Systems and Systems Programming
4 units
Time: see http://axess.stanford.edu

Operating systems design and implementation. Basic structure; synchronization and communication mechanisms; implementation of processes, process management, scheduling, and protection; memory organization and management, including virtual memory; I/O device management, secondary storage, and file systems. (Rosenblum)
Prerequisite: CS 108 Object-Oriented Systems Design. This course assumes familiarity with basic computer organization and assembly language, and issues of concurrent programming as covered in CS 107 Programming Paradigms.
Note: Meets GER Disciplinary Breadth, Eng./App.Sciences; May be taken for 3 units by grad students.



 
 CS 143
Compilers
3-4 units
Time: see http://axess.stanford.edu

Principles and practices for design and implementation of compilers and interpreters. Topics: lexical analysis; parsing theory; symbol tables; type systems; scoping, semantic analysis; intermediate representations, runtime environments; and code generation; and basic program analysis and optimization. Students construct a compiler for a simple object-oriented language during course programming projects.
Prerequisite: CS 103B or CS 103X: Discrete Structures and CS 107: Programming Paradigms
Note: This is an online course. Meets GER Disciplinary Breadth, Eng./App.Sciences; May be taken for 3 units by grad students.



 
 CS 148
Introductory Computer Graphics
3 units
Time: see http://axess.stanford.edu

Two- and three-dimensional computer graphics. Topics: input and display devices, scan conversion of geometric primitives, two- and three-dimensional transformations and clipping, windowing techniques, curves and curved surfaces, three-dimensional viewing and perspective, hidden surface removal, illumination and color models, OpenGL, and 3-D modeling tools. Emphasis is on practical skills in using graphics libraries and tools. Programming using C/C++ and OpenGL, with demos in SoftImage. For undergraduates; M.S. students or students interested in continuing in graphics should take 248. Only one of 148 or 248 counts towards any CS degree program.
Prerequisite: CS 107: Programming Paradigms and Math 103: Matrix Theory & Applications
Note: Meets GER Disciplinary Breadth, Eng./App.Sciences.



 
 CS 154
Introduction to Automata and Complexity Theory
3-4 units
Time: see http://axess.stanford.edu

Regular sets: finite automata, regular expressions, equivalences among notations, methods of proving a language not to be regular. Context-free languages: grammars, pushdown automata, normal forms of grammars, proving languages non-context-free. Turing machines: equivalent forms, undecidability. Nondeterministic Turing machines: properties, the class NP, complete problems for NP, Cook's theorem, reducibilities among problems.
Prerequisite: CS 103B or 103X: Discrete Structures
Note: Meets GER Disciplinary Breadth, Eng./App.Sciences; May be taken for 3 units by grad students.



 
 CS 161
Design and Analysis of Algorithms
3-4 units
Time: see http://axess.stanford.edu

Efficient algorithms for sorting, searching, and selection. Algorithm analysis: worst and average case analysis. Recurrences and asymptotics. Data structures: balanced trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis. Algorithms for fundamental graph problems such as depth-first search, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching, parallel computation.
Prerequisite: CS 103B or X: Discrete Structures and STATS 116: Theory of Probability
Note: Meets GER Disciplinary Breadth, Eng./App.Sciences; May be taken for 3 units by grad students.



 
 CS 245
Database Systems Principles
3 units
Time: see http://axess.stanford.edu

File organization and access, buffer management, performance analysis, and storage management. Database system architecture, query optimization, transaction management, recovery, concurrency control. Reliability, protection, and integrity. Design and management issues.
Prerequisite: CS 145: Introduction to Databases and CS 161: Design and Analysis of Algorithms






                           Contact  | Home  | Maps  & Directions  | Privacy Policy  | Help
Terms of Use Copyright