ENGR108: Introduction to Matrix Methods

John Duchi and Babak Ayazifar, Stanford University, Fall 2023

Lectures

  • Tuesdays and Thursdays, 12:00pm – 1:20pm

  • 420-040

Announcements

  • Guidelines for the final project are posted here.

  • Welcome to ENGR108, Fall Quarter 2023. We are excited to have you here!

About ENGR108

ENGR108 covers the basics of vectors and matrices, solving linear equations, least-squares methods, and many applications. We'll cover the mathematics, but the focus will be on using matrix methods in applications such as tomography, image processing, data fitting, time series prediction, finance, and many others. Matrix methods should not be a spectator sport. In this course, students use the language Julia to do computations with vectors and matrices. The course is suitable for any undergraduate with the prerequisites or equivalent background.

The class is based on the book Introduction to Applied Linear Algebra by Stephen Boyd and Lieven Vandenberghe, which is available on-line.

ENGR108 is part of the EE and MS&E core requirements, and certified as a Ways of Thinking course for both formal reasoning (FR) and applied quantitative reasoning (AQR). Additionally, this course is approved for the Computer Science BS Math Elective and also satisfies the Mathematics & Statistics requirement in the School of Engineering.

ENGR108 was originally created as EE103/CME103 by Stephen Boyd and his band of (then undergraduate) co-conspirators: Ahmed Bou-Rabee, Keegan Go, Jenny Hong, Karanveer Mohan, Jaehyun Park, and David Zeng. It was taught for the first time Autumn quarter 2014–15.

Course requirements

  • Attendance and weekly participation in class

  • Weekly homework assignments: we will normally assign homework each Thursday, which will be and due the following Wednesday by 11:59pm Pacific time. Late homework will not be accepted. You are allowed, even encouraged, to work on the homework in small groups, but you must write up your own homework to hand in and credit your other group members.

  • Two midterm exams (in class, one about 2/5 of the way and the other about 4/5 of the way through the course). The midterm will be closed book except that you may bring in one (1) sheet of paper, with material on the front and back.

  • Final exam: we will have a small final project, details to be determined.

Grading

We will weight the various parts of the class as follows:

  • Attendance/participation 5% (this will be a combination of your section participation and your Ed participation, weighting toward whichever you make more contributions to)

  • Homework 55%

  • Midterm 1: 15%

  • Midterm 2: 15%

  • Final 10%

We reserve the right to change the grading rubric at any point in time during the course.

Prerequisites

You do not need to have seen any linear algebra before; we will develop it from scratch. Math 51 is nominally a prerequisite, but we will use relatively little of this material. In the course you'll do some very simple programming in the language Julia, so you should have seen some very basic simple programming. CS106A or equivalent (which is much more than you will need) is a prerequisite or corequisite. You do not need to know about any applications; we'll cover that in detail. Even if you have already seen all the material in the course (e.g., vectors, matrices, least squares) we encourage you to take it, because (we guess) you haven't seen it the way we will present it.