
|
 |
 |
 |
| 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
|

|
 |
|
|
 |