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.
  • 2 февраля 2015, 10 недель
  • 1 июля 2013, 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
Ещё курсы на эту тему:
117098_a0cd_7 Matrix Algebra
Learn and develop understanding for solving mathematical problems on Matrix...
6-826s02 Principles of Computer Systems
6.826 provides an introduction to the basic principles of computer systems,...
18-335jf10 Introduction to Numerical Methods (Fall 2010)
This course offers an advanced introduction to numerical linear algebra. Topics...
Dtag60lui_xeuuedkzsip7-rp7g6slnwyhg9bbazg2ydp24mnc6r2tjzme5wnlljdi6ijqm-ycwo_gezug=s0#w=436&h=268 Artificial Intelligence for Robotics. Programming a Robotic Car
Learn how to program all the major systems of a robotic car. Topics include...
6-251jf09 Introduction to Mathematical Programming
This course is an introduction to linear optimization and its extensions emphasizing...
Ещё из рубрики «Компьютерные науки»:
Maxresdefault CS 282: Principles of Operating Systems II: Systems Programming for Android
Developing high quality distributed systems software is hard; developing high...
Banner_ruby Ruby on Rails Tutorial: Learn From Scratch
This post is part of our “Getting Started” series of free text tutorials on...
Logo-30-128x128 NYU Course on Deep Learning (Spring 2014)
Lectures from the NYU Course on Deep Learning (Spring 2014) This is a graduate...
Cppgm C++ Grandmaster Certification
The C++ Grandmaster Certification is an online course in which participants...
Umnchem Computational Chemistry (CHEM 4021/8021)
Modern theoretical methods used in study of molecular structure, bonding, and...
Ещё от Coursera:
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