ENGR108: Introduction to Matrix Methods

ENGR108 used to be called EE103/CME103; it satisfies all requirements that EE103/CME103 did, and has the same Ways of Thinking certifications.


  • This is the website for ENGR108, Summer Quarter 2021–22.

  • Course materials can be accessed via the class website.

  • Assignments will be accessible through Canvas

  • The discussion forum will be accessible through Ed, which can also be accessed via Canvas.

  • Assignment submissions will be on Gradescope.

  • You must be registered in the course to access the assignments and class discussions. (The course slides and textbook are accessible to anyone, from this web page.)

About ENGR108

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.

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 a book by Stephen Boyd and Lieven Vandenberghe (at UCLA), 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.


The textbook is written by Stephen Boyd and Lieven Vandenberghe, and is available on-line. You will not need to consult any other books or materials (though you are welcome to do so).


Tuesdays and Thursdays, 1:30–3:00pm, in room 111, Y2E2. Our first lecture will be June 21, 2022.

Course requirements

  • Attendance and participation in class.

  • Weekly homework assignments. Homework will normally be assigned each Thursday, and due the following Thursday by 5pm PST. 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.

  • Final Exam. We will have a take home final exam released on last day of class (August 11, 2022) and will be due midnight following Saturday (August 13, 2022).


  • Grades will be based on class attendance/participation 10%, homework 60%, final exam 30%.

  • We will drop the lowest homework score.

  • Each homework problem will be graded roughly, with grades 0 (no attempt or major errors), 1 (OK, but some errors), and 2 (good, possibly with a minor error).


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


During the course we will cover textbook chapters 1–17 (i.e., up through constrained least squares applications).

Catalog description

Introduction to applied linear algebra with emphasis on applications. Vectors, norm, and angle; linear independence and orthonormal sets; applications to document analysis. Clustering and the k-means algorithm. Matrices, left and right inverses, QR factorization. Least-squares and model fitting, regularization and cross-validation. Constrained and nonlinear least squares. Applications include time-series prediction, tomography, optimal control, and portfolio optimization. Prerequisites: MATH 51 or CME 100, and basic knowledge of computing (CS 106A is more than enough, and can be taken concurrently).

ENGR108 is part of the EE and MS&E core requirements, approved for the CS BS Math Elective and the Mathematics & Statistics requirement in the School of Engineering, and certified as a Ways of Thinking (Formal Reasoning) course.

ENGR108 and Math 104 cover complementary topics in applied linear algebra. The focus of ENGR108 is on a few linear algebra concepts, and many applications; the focus of Math 104 is on algorithms and concepts.

Course objectives

The goal of this course is to introduce you to the basic ideas of vectors, matrices, and (very basic) linear algebra, emphasizing applications. We hope that you'll learn how linear algebra is all around you, and how it is used in zillions of applications. You'll learn some basic machine learning, portfolio optimization and finance, audio and image processing, and other applications.

Intended audience

The course is targeted at undergraduate students in all fields, just as CS106a is. As long as you've got the prerequisites, and are up for it, you're welcome.