School of Engineering - Stanford Engineering Everywhere. Introduction to applied linear algebra and linear dynamical systems, with applications to circuits, signal processing, communications, and control systems.

Topics include: Least-squares aproximations of over-determined equations and least-norm solutions of underdetermined equations. Symmetric matrices, matrix norm and singular value decomposition. School of Engineering - Stanford Engineering Everywhere. Continuation of Convex Optimization I.

Subgradient, cutting-plane, and ellipsoid methods. Decentralized convex optimization via primal and dual decomposition. Alternating projections. Exploiting problem structure in implementation. Convex relaxations of hard problems, and global optimization via branch & bound. Prerequisites: Convex Optimization I View Lectures and Materials Complete Course Material Downloads: Course Handouts: The ZIP file below contains all of the course handouts for this course. School of Engineering - Stanford Engineering Everywhere. The goals for the course are to gain a facility with using the Fourier transform, both specific techniques and general principles, and learning to recognize when, why, and how it is used.

Together with a great variety, the subject also has a great coherence, and the hope is students come to appreciate both. Topics include: The Fourier transform as a tool for solving physical problems. Fourier series, the Fourier transform of continuous and discrete signals and its properties. School of Engineering - Stanford Engineering Everywhere. Concentrates on recognizing and solving convex optimization problems that arise in engineering. School of Engineering - Stanford Engineering Everywhere. Advanced memory management features of C and C++; the differences between imperative and object-oriented paradigms.

The functional paradigm (using LISP) and concurrent programming (using C and C++). School of Engineering - Stanford Engineering Everywhere. This course is the natural successor to Programming Methodology and covers such advanced programming topics as recursion, algorithmic analysis, and data abstraction using the C++ programming language, which is similar to both C and Java.

If you've taken the Computer Science AP exam and done well (scored 4 or 5) or earned a good grade in a college course, Programming Abstractions may be an appropriate course for you to start with, but often Programming Abstractions (Accelerated) is a better choice. Programming Abstractions assumes that you already have familiarity with good programming style and software engineering issues (at the level of Programming Methodology), and that you can use this understanding as a foundation on which to tackle new topics in programming and data abstraction. School of Engineering - Stanford Engineering Everywhere.

This course is the largest of the introductory programming courses and is one of the largest courses at Stanford.

Topics focus on the introduction to the engineering of computer applications emphasizing modern software engineering principles: object-oriented design, decomposition, encapsulation, abstraction, and testing. Programming Methodology teaches the widely-used Java programming language along with good software engineering principles. Emphasis is on good programming style and the built-in facilities of the Java language. The course is explicitly designed to appeal to humanists and social scientists as well as hard-core techies. In fact, most Programming Methodology graduates end up majoring outside of the School of Engineering. Prerequisites: The course requires no previous background in programming, but does require considerable dedication and hard work. School of Engineering - Stanford Engineering Everywhere. This course provides a broad introduction to machine learning and statistical pattern recognition.

Topics include: supervised learning (generative/discriminative learning, parametric/non-parametric learning, neural networks, support vector machines); unsupervised learning (clustering, dimensionality reduction, kernel methods); learning theory (bias/variance tradeoffs; VC theory; large margins); reinforcement learning and adaptive control. The course will also discuss recent applications of machine learning, such as to robotic control, data mining, autonomous navigation, bioinformatics, speech recognition, and text and web data processing. Students are expected to have the following background: Prerequisites: - Knowledge of basic computer science principles and skills, at a level sufficient to write a reasonably non-trivial computer program. - Familiarity with the basic probability theory.

School of Engineering - Stanford Engineering Everywhere. This course is designed to introduce students to the fundamental concepts and ideas in natural language processing (NLP), and to get them up to speed with current research in the area.

It develops an in-depth understanding of both the algorithms available for the processing of linguistic information and the underlying computational properties of natural languages. School of Engineering - Stanford Engineering Everywhere. The purpose of this course is to introduce you to basics of modeling, design, planning, and control of robot systems.

In essence, the material treated in this course is a brief survey of relevant results from geometry, kinematics, statics, dynamics, and control. The course is presented in a standard format of lectures, readings and problem sets. There will be an in-class midterm and final examination. These examinations will be open book. Lectures will be based mainly, but not exclusively, on material in the Lecture Notes book.