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

Overview
2009 Courses
Student Resources
Registration & Credit
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
· Compilers
· Introductory Computer Graphics
· Design and Analysis of Algorithms
· Client-Side Internet Technologies
· Database Systems Principles

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

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: Same as ENGR 70A. May be taken for 3 units by graduate students.



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



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

(Only one of 121 or 221 counts towards any CS degree program.) Concepts, representations, and techniques used in building practical computational systems (agents) that appear to display artificial intelligence (AI), through the use of 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 103 or 103B, and facility with differential calculus, vector algebra, and probability theory.



 
 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; scope; semantic analysis; intermediate representations; runtime environments; code generation; and basic program analysis and optimization. Students construct a compiler for a simple object-oriented language during course programming projects.
Prerequisite: CS 103 or 103B, and 107.
Note: May be taken for 3 units by grad students.



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

For undergraduates; M.S. students and those interested in continuing in graphics, register for 248. 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.
Prerequisite: CS 107, MATH 103.



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

Worst and average case analysis. Recurrences and asymptotics. Efficient algorithms for sorting, searching, and selection. Data structures: binary search trees, heaps, hash tables. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis, randomization. Algorithms for fundamental graph problems: minimum-cost spanning tree, connected components, topological sort, and shortest paths. Possible additional topics: network flow, string searching.
Prerequisite: CS 103 or 103B; 109 or STATS 116.
Note: May be taken for 3 units by grad students.



 
 CS 193C
Client-Side Internet Technologies
3 units
Time: see http://axess.stanford.edu

Client-side technologies used to create web sites such as sophisticated Web 2.0 interfaces similar to Google maps. XHTML, CSS, JavaScript, document object model (DOM), AJAX, and Flash.
Prerequisite: Programming experience at the level of 106A.



 
 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, 161.






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