Coding The Matrix: Linear Algebra Through Computer Science Applications
The course has been taught at Brown University since 2008,
and is being taught in Fall
2013. Slides will be made available here.
A shortened version has been taught through Coursera.
The aim of this course is to provide students interested in
computer science an introduction to vectors and matrices and
their use in CS applications.
The course is driven by applications from areas chosen from among: computer vision, cryptography, game theory, graphics, information retrieval and web search, and machine learning.
Data and support code required for carrying out the assignments are provided here.
Autograding is made available for some of the tasks.
Here are the first and second labs from Edition One. These have nothing to do with linear algebra. They are provided to bring the reader up to speed in the part of Python we use in the book. Here is a document intended to assist people with making the transition from loops to comprehensions. You can use Python Tutor to debug, visualize, and check your solutions to the tasks in this lab.
Join the mailing list for updates about addition of resources. Edition
1 of the textbook is available for purchase. It incorporates corrections and a revised and expanded index. List Price: $35.00 Publisher: Newtonian Press Purchase in UK Purchase in Germany Errata for Edition 1 Here is a revised
and expanded index Send mail
if you have questions about 

Here are examples of applications addressed in Coding the
Matrix.
crossfade
Perspective rectification
Errorcorrecting codes
Errorcorrecting codes are used, e.g., by cellphones to
preserve data transmitted over a noisy channel while
maintaining high throughput.
Integer factorization
522253825433285668885771662040104167 =
891428822186035241∙585861498344390287
Factoring an integer is a hard computational problem (and
the RSA cryptosystem depends on it being hard). At the
core of the most sophisticated integerfactoring algorithms
is a simple problem in linear algebra.
Image blurring
Searching within an audio clip
Searching within an image
Convolution can also be done in two dimensions, enabling one
to quickly search for a subimage within an image.
Audio and image compression
Compression of audio and images aids efficient storage and
transmission. Lossy compression techniques such as
those used in MP3 (audio) and JPEG (images) are based in
part on linear algebra,
e.g. wavelet transform and Fourier transform.
100% original size
40% original size
10% original size
Face detection
2d graphics transformations
Lights Out
Minimumweight spanning forest
Graph layout