Coding the Matrix: Linear Algebra through Computer Science Applications

Phil Klein, Brown University

Learn the concepts and methods of linear algebra, and how to use them to think about computational problems arising in computer science. Coursework includes building on the concepts to write small programs and run them on real data.

When you take a digital photo with your phone or transform the image in Photoshop, when you play a video game or watch a movie with digital effects, when you do a web search or make a phone call, you are using technologies that build upon linear algebra.  Linear algebra provides concepts that are crucial to many areas of computer science, including graphics, image processing, cryptography, machine learning, computer vision, optimization, graph algorithms, quantum computation, computational biology, information retrieval and web search. Linear algebra in turn is built on two basic elements, the matrix and the vector.  
In this class, you will learn the concepts and methods of  linear algebra, and how to use them to think about problems arising in computer science.  You will write small programs in the programming language Python to  implement basic matrix and vector functionality and algorithms, and use these to process real-world data to achieve such tasks as: two-dimensional graphics transformations, face morphing, face detection, image transformations such as blurring and edge detection, image perspective removal, classification of tumors as malignant or  benign, integer factorization, error-correcting codes, and secret-sharing.


  • The Function
  • The Field
  • The Vector
  • The Vector Space
  • The Matrix
  • The Basis
  • Dimension
  • Gaussian Elimination
  • The Inner Product
  • Orthogonalization

Recommended Background

You should be an experienced programmer.  We use a subset of Python in this course, and we start by covering the relevant features and syntax, so many students find they can get by without prior knowledge of Python.

You are not expected to have any background in linear algebra.  However, you should be prepared to read and understand some mathematical proofs. At Brown University, a similar course is taken mostly by sophomore computer science  majors who have taken at least two semesters of programming and one semester addressing proof techniques.

Suggested Readings

Coding the Matrix is an optional companion textbook.  It covers the material addressed by this course, plus additional examples and more advanced topics not covered by the course (wavelets, discrete Fourier transforms, singular value decomposition, eigenvalues, and linear programming).  The textbook is not at all necessary for taking the course; all necessary material is covered in lecture.  


  • Will I get a statement of accomplishment after completing this class?

    Yes. Students who successfully complete the class will receive a statement of accomplishment signed by the instructor.

  • What resources will I need for this class?

    You will need a computer with Python installed (version 3.x). We will provide additional Python modules for you to download.

  • What is the coolest thing I'll learn if I take this class?

    Here are some cool things: removing the perspective from an image,  a simple machine-learning algorithm applied to cancer data.
  • 2015年2月02日, 10 星期
  • 2013年7月01日, 8 星期
  • 免费:
  • 收费:
  • 证书:
  • MOOC:
  • 视频讲座:
  • 音频讲座:
  • Email-课程:
  • 语言: 英语 Gb



请注册, 为了写反馈

Vyyjayfzd3pynkssdhnqwcrx4bk4ennc1-ren956ujr2e1pya9umefxe-z08yngaz4nptzjr4nqcte0whwul=s0#w=1724&h=1060 Алгоритмизация вычислений
1 курс МИЭМ ВШЭ, 4 кредита
18-06scf11 Mathematics
Calculus, Linear algebra, Functional and Complex Analysis and more
Principles_of_computing_final Principles of Computing
This course introduces the basic mathematical and programming principles that...
18-335jf10 Introduction to Numerical Methods (Fall 2010)
This course offers an advanced introduction to numerical linear algebra. Topics...
18-06scf11 Linear Algebra (Fall 2011)
This course covers matrix theory and linear algebra, emphasizing topics useful...
6-251jf09 Introduction to Mathematical Programming
This course is an introduction to linear optimization and its extensions emphasizing...
18-024s11 Multivariable Calculus with Theory
This course is a continuation of 18.014. It covers the same material as 18.02...
6e8a49e3-e74b-4a74-81b7-ebaf9c82c620-e20771d7a2a2.small Derivatives Markets: Advanced Modeling and Strategies
Financial derivatives are ubiquitous in global capital markets. Students will...
Ddjlogo Doing Journalism with Data: First Steps, Skills and Tools
This free 5-module online introductory course gives you the essential concepts...
Ampcamp4-logo Big Data Mini Course: AMP Camp 4 hands-on exercises
The exercises we cover today will have you working directly with the Spark specific...
Google_logo_41 Digital Analytics Fundamentals
This three-week course provides a foundation for marketers and analysts seeking...
Logo Information Theory, Pattern Recognition, and Neural Networks
A series of sixteen lectures covering the core of the book "Information Theory...
Success-from-the-start-2 First Year Teaching (Secondary Grades) - Success from the Start
Success with your students starts on Day 1. Learn from NTC's 25 years developing...
New-york-city-78181 Understanding 9/11: Why Did al Qai’da Attack America?
This course will explore the forces that led to the 9/11 attacks and the policies...
Small-icon.hover Aboriginal Worldviews and Education
This course will explore indigenous ways of knowing and how this knowledge can...
Ac-logo Analytic Combinatorics
Analytic Combinatorics teaches a calculus that enables precise quantitative...
Talk_bubble_fin2 Accountable Talk®: Conversation that Works
Designed for teachers and learners in every setting - in school and out, in...

© 2013-2019