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. Eigenvalues, left and right eigenvectors, and dynamical interpretation. Matrix exponential, stability, and asymptotic behavior. Multi-input multi-output systems, impulse and step matrices; convolution and transfer matrix descriptions. Prerequisites: Exposure to linear algebra and matrices (as in Math. 103). 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. 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. 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. The Dirac delta, distributions, and generalized transforms. 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++). Brief survey of other modern languages such as Python, Objective C, and C#. Prerequisites: Programming and problem solving at the Programming Abstractions level. Prospective students should know a reasonable amount of C++. You should be comfortable with arrays, pointers, references, classes, methods, dynamic memory allocation, recursion, linked lists, binary search trees, hashing, iterators, and function pointers. 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. Topics: Abstraction and its relation to programming.

Software engineering principles of data abstraction and modularity. School of Engineering - Stanford Engineering Everywhere. School of Engineering - Stanford Engineering Everywhere. 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. Wordlevel, syntactic, and semantic processing from both a linguistic and an algorithmic perspective are considered. The focus is on modern quantitative techniques in NLP: using large corpora, statistical models for acquisition, disambiguation, and parsing. Also, it examines and constructs representative systems. Due to copyright issues, video downloads and lecture slides are not available for Natural Language Processing. 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.