I have taken the following computer-related classes at Stanford:

(The descriptions come from the Stanford Bulletin)

cs 106a
Programming Methodology
For students in technical disciplines; no prior experience is assumed. Broad introduction to the engineering of computer applications, emphasizing software engineering principles: design, decomposition, information hiding, procedural abstraction, testing, and reusable software components. Uses the programming language C and concentrates on the development of good programming style and on understanding the basic facilities provided by the language.
cs 106b
Programming Abstractions
Abstraction and its relation to programming. Software engineering principles of data abstraction, modules, certain fundamental data structures (e.g., stacks and queues), and data-directed design. recursion and recursive data structures (linked lists and binary trees). Brief introduction to time and space complexity analysis.
cs 107
Programming Paradigms
Introduces a variety of programming language paradigms and their implementations. Topics: structure and implementation of compiled languages, basic concurrent programming, the functional paradigm, and the object-oriented paradigm. Substantial programming projects.
cs 108
Object-Oriented Systems Design
The implementation of modern software based on large OOP libraries. Topics: review of C++, the structure of object-oriented Graphical User Inter) class libraries, GUI application design and construction, OOP software engineering strategies, approaches to programming in teams.
cs 109a
Introduction to Computer Science
The mathematical and theoretical foundations of computer science. Topics: logic, proof techniques, recursion and recurrence relations, analysis of algorithms, combinatorics, basic data models (sets, relations, linear models, trees and graphs), and introductory computer theory.
cs 109b
Introduction to Computer Science
Continuation of 109. Topics: graph algorithms, finite automata and regular expressions, context-free grammars, propositional and predicate logic. Proof techniques, modeling, and abstraction are sequence themes. Functional programming exercises explore and exemplify these concepts.
cs 121
Introduction to Artificial Intelligence
First half topics: detailed technical exposition of AI fundamentals: search, logic, knowledge representation, reasoning, planning, learning, and uncertainty. Second half topics: frontier applications of these ideas (e.g., expert systems, rule-based reasoning, natural language processing, information retrieval, intelligent database access, and data mining); technical aspects of "scaling up" the fundamental approaches to confront real-world applications.
cs 143
Compilers
Principles and practices in the design of programming language compilers. Topics: lexical analysis, parsing theory (LL, LR, and LALR parsing), symbol tables, type checking common representations for records, arrays, and pointers, runtime conventions for procedure calls, storage allocation for variables, and generation of unoptimized code. Students construct simple compiler as programming project.
cs 145
Introduction to Databases
Object-oriented, entity-relationship, and relational data models. Relational and object-oriented database query languages. SQL and ODMG standards. Algebraic and logical query languages. Integrity constraints and triggers; functional dependencies and normal forms. Database transactions and security from the application perspective. Designing a database for an application. Interactive and programmatic interfaces to database systems. Individual database application programming project with extensive use of SQL.
cs 148
Introductory Computer Graphics
Introduction to two- and three-dimensional computer graphics. Topics: fundamentals of 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, VRML, and 3-D modeling tools. Emphasis is on the mathematical and geometric tools used in computer graphics.
cs 154
Introduction to Automata and Complexity Theory
Regular sets: finite automata, regular expressions, equivalencies among notations, methods of proving a language not to be regular. Context free languages: grammars, pushdown automata, normal forms for 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.
cs 157
Logic and Automated Reasoning
Introduction to logic for computer scientists. An elementary exposition, from a computational point of view, of propositional logic, predicate logic, axiomatic theories, and theories with equality and induction. Interpretations, models, validity, proof. Automated deduction: polarity, skolemization, unification, resolution, equality. Strategies. Applications.
cs 161
Data Structures and Algorithms
Efficient algorithms for sorting, searching, and selection. Algorithm analysis: worst and average case analysis. Recurrences and asymptotics. Data structures: balanced trees, heaps, etc. Algorithm design techniques: divide-and-conquer, dynamic programming, greedy algorithms, amortized analysis. Algorithms for fundamental graph problems, e.g., depth-first search, connected components, topological sort, shortest paths. Possible topics: network flow, string searching, parallel computation.
ee 182
Computer Organization and Design
Basic computer organization. Computer components: memory systems including caches, computer arithmetic, processors, controllers, input/output, buses, DMA. Data formats, addressing modes, instruction sets and microcode. Study of the design of a small computer.
cs 191
Senior Project
Group or individual projects under faculty direction. (My project was to implement the IDEAL programming language. I am wrote a new programming language designed to make it easier for students with little or no programming experience to learn object oriented programming with an intuitive interpreted environment and an easy to use language.)
cs 193d
C++ and Object-Oriented Programming
C++ programming language and object-oriented programming paradigm. Covers all the major features of C++ 3.0 and object design principles which appear generally in Object Oriented Languages. Intensive programming assignments.
cs 193i
Internet Technologies
Survey of contemporary Internet technologies. Programmer-oriented survey of the authoring, distributing, and browsing technologies. The role, use, and implementation of current Internet tools. Topics: TCP/IP; namespace, connections, and protocols. Client/server structures. World Wide Web/HTTP/HTML techniques for text, images, links, and forms. Indexing and search technologies. Server side programming, CGI scripts. Dynamic content with Java. Security and privacy issues. Programming projects on client- and server-side projects and may include UNIX scripts, C, PERL, Java. Emphasis on understanding, exploiting, and extending Internet technologies.
cs 193j
Programming in Java
Topics: object-oriented programming (classes, objects, messaging, inheritance), Java language features (interfaces, exceptions, packages, concurrency, garbage collection), use of the built-in packages (lang, util, io, networking, awt), understanding applications and applets, security and verification, Java implementation and the virtual machine. Intensive programming assignments.
cs 193k
Advanced Java Applications
Tour of the advanced applications possible in Java. Possible topics: portable GUIs in Swing and distributed applications with RMI, and the various supporting technologies (concurrency, reflection, serialization).
cs 193w
Microsoft Windows Programming
The fundamentals of programming on the Microsoft Windows platform, focusing on the use of Microsoft Foundation Class (MFC) framework. Other aspects of Windows programming including Microsoft's COM and OLE object models and the ODBC database interface.
cs 195a
Software Engineering
Introduction to the field of software engineering as preparation for going into industry. Topics: writing up client requirements, developing specifications and designs, establishing testing protocols, and how to do usability tests. Principles of interface design, project management, metrics, quality control and ISO 9000 certification. Students experiment with software development models. Some programming in C++ required in exercises. Teams write documentation and design for a major project.
cs 196
Microcomputer Consulting
Overview of computer consulting, focusing primarily on the Macintosh and IBM-compatible systems. Topics: operating systems, networks, communications, multimedia, and consulting style. Biweekly lectures discuss computing environments on and off campus. Students work as consultants at a computer cluster and in the residences.
cs 197
Mainframe and Workstation Computer Consulting
Computer consulting in a mainframe and workstation environment, focusing on the UNIX operating system under the SUN and DEC hardware systems. Topics: UNIX fundamentals, systems administration, shell scripting, VI, Emacs, networking, e-mail, X-windows. Students work as on-duty consultants at the Sweet Hall computer cluster.
cs 198
Teaching of Computer Science
Teach a small discussion section of 106A while learning the fundamentals of teaching a programming language at the introductory level. Two workshops/one general meeting weekly on introductory material in general, 106 specifically, and teaching techniques.
cs 240a
Operating Systems and Systems Programming
Fundamentals of 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.
cs 240b
Advanced Topics in Operating Systems
Advanced study in OS topics and exposure to recent developments in OS research. Readings/lectures on classic and new papers. Topics: virtual memory management, synchronization and communication, file systems, protection and security, operating system extension techniques, fault tolerance, and history and experience of systems programming.
cs 242
Programming Languages
The basic elements of programming languages and programming paradigms: functional, imperative, and object-oriented. Introduction to formal semantic methods. Modern type systems, higher-order functions and closure, exceptions and continuations. Runtime support for different language features. Emphasis is on separating the different elements of programming languages and styles. First half uses Lisp and ML to illustrate concepts; second half a selection of object-oriented languages.
cs 243
Advanced Compiling Techniques
The theoretical and practical aspects of building modern compilers. Topics: intermediate representations, basic blocks and flow-graphs, dataflow analysis, register allocation, global code optimizations, and interprocedural analysis.
cs 244a
Introduction to Computer Networks
The structure and components of computer networks; functions and services; packet switching; layered architectures; ISO's Open Systems Interconnections (OSI) reference model; physical layer; error checking; window flow control; media access control protocols used in local area networks (Ethernet, Token Ring, FDDI) and satellite networks; network layer (datagram service, virtual circuit service, routing, congestion control, IP); transport layer (UDP, TCP); session layer; applications.
cs 244b
Distributed Systems
Coverage of distributed operating systems and applications issues with an emphasis on high-level protocols as the key technology. Topics: distributed shared memory, object-oriented distributed system design, distributed directory services, atomic transactions and time synchronization, file access, process scheduling, process migration and remote procedure call, focusing on distribution, scale, robustness in the face of failure, and security.
cs 245
Database System Principles
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.
cs 249
Object-Oriented Programming from a Modelling and Simulation Perspective
Object-oriented programming techniques and issues, emphasizing programming as modeling and simulation. Topics: large-scale software development approaches, encapsulation, use of inheritance and dynamic dispatch, design of interfaces and interface/implementation separation, exception handling, design patterns, minimalizing dependencies and value-oriented programming. The role of programming conventions/style/restrictions in surviving object-oriented programming for class libraries, frameworks, and programming-in-the-large; general techniques for object-oriented programming.
ee 282
Computer Architecture and Organization
The structure of systems using processors, memories, input/output (I/O) devices, and I/O interfaces as building blocks. Computer system instruction set design and implementation, including memory hierarchies and pipelining. Issues and tradeoffs involved in the design of computer system architectures with respect to the design of instruction sets.
cs 444a
Software Development for Critical Applications
Introduction to current methods for developing safety-critical software (e.g., fly-by-wire avionics); and mission-critical software (e.g., Internet commerce). Topics: basic terminology, failure and fault taxonomies, hazard analysis techniques, failure mode analysis, fault tree analysis, software standards, formal methods, and engineering techniques for critical systems from embedded systems to large-scale Internet applications. Students apply analysis techniques to example systems, use tools for specification, and implement example algorithms and applications.
cs 446
Tools and Processes for Software
The fundamental concepts of software engineering: life-cycle models (waterfall, spiral, etc.), project and software metrics, quality assurance, software reuse. The development process: business process modeling, requirements engineering, analysis, design, implementation, testing, maintenance. Introduction to modeling techniques (UML and design patterns). Research challenges, with reviews of ongoing research by faculty and outside speakers on such topics as specification validation and software composition. Readings and modeling exercises. Focus throughout is on large-scale software development as seen in industry.
cs 547
Human-Computer Interaction Seminar
Weekly speakers on topics related to human-computer interaction design.
I have been TA and Head TA for the following classes:
cs 105
Introduction to Computers

(once as TA, three times as Head TA)
Develops an understanding of what computers are and how they work. The great ideas of computer science. Some programming (HTML and JavaScript) provides practical experience in construction of computer algorithms and illustrates design techniques for managing complexity. Methods are shown to be valid as general problem-solving tools. The capabilities and limitations of computers. Artificial intelligence and the philosophical implications of computer intelligence.
cs 106x
Programming Methodology and Abstractions (Accelerated)

(once as Head TA)
Covers most of the material in 106A,B. Students are expected to have previous programming experience at a level that allows them to understand the concepts presented in 106A, usually in a language other than C. First two weeks focus on understanding how the concepts are expressed in ANSI C. 106B material is covered for the balance.
cs 244a
Introduction to Computer Networks

(once as TA)
The structure and components of computer networks; functions and services; packet switching; layered architectures; ISO's Open Systems Interconnections (OSI) reference model; physical layer; error checking; window flow control; media access control protocols used in local area networks (Ethernet, Token Ring, FDDI) and satellite networks; network layer (datagram service, virtual circuit service, routing, congestion control, IP); transport layer (UDP, TCP); session layer; applications.