Coding the Matrix: Linear Algebra through Computer Science Applications

Provided by:
8/10 stars
based on  17 reviews
Provided by:
Cost FREE
Start Date TBA
Coding the Matrix: Linear Algebra through Computer Science Applications

Course Details

Cost

FREE

Upcoming Schedule

  • TBA

Course Provider

Coursera online courses
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with yo...
Coursera's online classes are designed to help students achieve mastery over course material. Some of the best professors in the world - like neurobiology professor and author Peggy Mason from the University of Chicago, and computer science professor and Folding@Home director Vijay Pande - will supplement your knowledge through video lectures. They will also provide challenging assessments, interactive exercises during each lesson, and the opportunity to use a mobile app to keep up with your coursework. Coursera also partners with the US State Department to create “learning hubs” around the world. Students can get internet access, take courses, and participate in weekly in-person study groups to make learning even more collaborative. Begin your journey into the mysteries of the human brain by taking courses in neuroscience. Learn how to navigate the data infrastructures that multinational corporations use when you discover the world of data analysis. Follow one of Coursera’s “Skill Tracks”. Or try any one of its more than 560 available courses to help you achieve your academic and professional goals.

Provider Subject Specialization
Humanities
Sciences & Technology
4904 reviews

Course Description

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.
Reviews 8/10 stars
17 Reviews for Coding the Matrix: Linear Algebra through Computer Science Applications

Ratings details

  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.

Sort By
Steven Frank profile image
Steven Frank profile image
8/10 starsCompleted
  • 59 reviews
  • 57 completed
5 years, 3 months ago
This innovative, challenging and rewarding course approaches a traditional linear-algebra curriculum from a computational perspective. Students write procedures implementing key mathematical concepts, and apply these to interesting labs that have you changing the perspective of a photograph, dabbling in machine learning, and writing a simple search engine. The lectures are well-organized and the written materials are superb. Note, however, that this is not primarily a programming course -- the point of the programming is to understand and apply the math; those looking for a Python introduction as such might prefer other options. In fact, because solutions to the programming assignments are not provided and code cannot be shared or posted, your coding skills may not improve much. And if you’re new to Python, expect to turn frequently to external tutorials and resources. Those with no prior exposure to linear algebra may al... This innovative, challenging and rewarding course approaches a traditional linear-algebra curriculum from a computational perspective. Students write procedures implementing key mathematical concepts, and apply these to interesting labs that have you changing the perspective of a photograph, dabbling in machine learning, and writing a simple search engine. The lectures are well-organized and the written materials are superb. Note, however, that this is not primarily a programming course -- the point of the programming is to understand and apply the math; those looking for a Python introduction as such might prefer other options. In fact, because solutions to the programming assignments are not provided and code cannot be shared or posted, your coding skills may not improve much. And if you’re new to Python, expect to turn frequently to external tutorials and resources. Those with no prior exposure to linear algebra may also find themselves playing catch-up given the fast pace and abstract focus of the lectures. The course emphasizes proofs at the expense of explained examples and illustrative applications – great for math lovers but maybe not for linear algebra neophytes. Overall, while the presentation moves at a brisk march and the workload is considerable, those willing to devote the time will find the pieces fitting together into a unique learning experience. The course as given was actually only the first 8 weeks of the12-week course taught at Brown, and a mini-course covering the remaining material is planned. Future versions will hopefully cover the entire curriculum in a single session.
Was this review helpful? Yes6
 Flag
Student profile image
Student profile image

Student

10/10 starsCompleted
4 years, 6 months ago
outstanding course. knew linear algebra before taking it, just wanted a refresher. also knew python. surprisingly the course was a great python refresher as well. what really impressed was how professor klein showed the deep connection between abstract math and computer science. also loved the integration of data structures with linear algebra. highly recommended!
Was this review helpful? Yes0
 Flag
Peter Moldovia profile image
Peter Moldovia profile image
6/10 starsCompleted
  • 1 review
  • 1 completed
5 years, 6 months ago
Likes: * Teaching math via programming is right up my alley. I hope to find more courses that do the same. * Prof and staff were active in the forums. * It seems that most of the grader problems reported during previous sessions have been sorted out. There were still a few outstanding issues, but staff was quick to either fix them or suggest a way around them. * Lots of exercises Dislikes: * Videos. The prof stands in front of the PowerPoint and reads from the slides. I'm not typically one to skip the lectures and read the course notes, but I found there was little reason to watch the videos in the end. * Provided Python modules. I often found them frustrating to work with. As an example, the vector and matrix classes include labels for their columns and rows. This adds extra overhead when creating and manipulating those objects – if you want to multiply a matrix M by a vector v, i.e. M*v, not only does vector v need to have... Likes: * Teaching math via programming is right up my alley. I hope to find more courses that do the same. * Prof and staff were active in the forums. * It seems that most of the grader problems reported during previous sessions have been sorted out. There were still a few outstanding issues, but staff was quick to either fix them or suggest a way around them. * Lots of exercises Dislikes: * Videos. The prof stands in front of the PowerPoint and reads from the slides. I'm not typically one to skip the lectures and read the course notes, but I found there was little reason to watch the videos in the end. * Provided Python modules. I often found them frustrating to work with. As an example, the vector and matrix classes include labels for their columns and rows. This adds extra overhead when creating and manipulating those objects – if you want to multiply a matrix M by a vector v, i.e. M*v, not only does vector v need to have the same number of rows as M does columns, as one would expect, but the labels of the rows of v have to match the labels of the columns of M. There never seemed to be any payoff for this added complexity. Suggestions: * I think there's a missed opportunity for visualisations. There are lots of compelling examples of linear algebra applications in 2-D and 3-D that could be rendered to the screen. * Drop the column/row labels for matrices and vectors.
Was this review helpful? Yes0
 Flag
Jeff Winchell profile image
Jeff Winchell profile image
6/10 starsTaking Now
  • 91 reviews
  • 66 completed
5 years, 8 months ago
Unlike the previous 14 reviews, this is about the second iteration of the class. From what I can tell, the professor has made a fair amount of changes addressing some of the complaints in the other reviews (and the 14 reviews averaged 4 stars, so the complaints aren't that major). As this is only my first week, I set the star ratings for content and instructor are set to average until I can better assess the course (and whether I need to look at any videos or not). I've taken python and linear algebra MOOCs before, which is good because this class takes a lot of time to do well in. I see that the professor has upped the time estimates from 4-5 hours/week in the first iteration of this MOOC to 7-10 hours per week for this one. Maybe 7-10 is OK if you want to get 60% on every single assignment (a requirement for a certificate), but if you want to shoot higher, most people will need even more time. I'm only finishing up the first week o... Unlike the previous 14 reviews, this is about the second iteration of the class. From what I can tell, the professor has made a fair amount of changes addressing some of the complaints in the other reviews (and the 14 reviews averaged 4 stars, so the complaints aren't that major). As this is only my first week, I set the star ratings for content and instructor are set to average until I can better assess the course (and whether I need to look at any videos or not). I've taken python and linear algebra MOOCs before, which is good because this class takes a lot of time to do well in. I see that the professor has upped the time estimates from 4-5 hours/week in the first iteration of this MOOC to 7-10 hours per week for this one. Maybe 7-10 is OK if you want to get 60% on every single assignment (a requirement for a certificate), but if you want to shoot higher, most people will need even more time. I'm only finishing up the first week of assignments, I've watched no lectures and I'm guessing I'm up to 15+ hours. I like that a community TA has set up a thread for each problem in the assignments. An even better improvement on that would be to also include a link on the assignments page to such a structure (e.g. the Pattern Discovery in Data Mining MOOC on Coursera has links on a weekly page which lists each video and a button linking to a subforum for that video). If you want to be able to get a certificate while missing or not completing most of some assignments, you are out of luck. I've never seen that in a MOOC before. Since I want to do very well in this course, I'm biting the bullet and spending a lot more time than I had planned, to do this. I think for MOOCs which are taken mostly by people who are non-full time college students, the professor should split this up into multiple MOOCs so he can lengthen the course time and reduce the weekly work load.
Was this review helpful? Yes0
 Flag
Robert Davis profile image
Robert Davis profile image
10/10 starsCompleted
  • 16 reviews
  • 16 completed
6 years, 4 months ago
Great class. I would suggest already possessing a strong background in python programming before beginning. I think the instructor did a good job presenting the material. The homework was challenging but fun.
Was this review helpful? Yes1
 Flag
soesilo wijono profile image
soesilo wijono profile image
10/10 starsCompleted
  • 19 reviews
  • 19 completed
6 years, 10 months ago
Again I took this course as a refresher, so I completed this course with distinction simply because I've ever taken the same class when in university, and this class uses Python in which I'm very familiar with it. Very good course.
Was this review helpful? Yes0
 Flag
Flavio de Arruda profile image
Flavio de Arruda profile image
10/10 starsCompleted
  • 2 reviews
  • 2 completed
6 years, 11 months ago
A remarkable course! Phil Klein is an amazingly talented teacher and his practical approach of linear algebra through Computer Science, from cryptography to computer vision is both original and highly effective.
Was this review helpful? Yes0
 Flag
Duncan Murray profile image
Duncan Murray profile image
8/10 starsCompleted
  • 25 reviews
  • 24 completed
7 years, 1 month ago
This course is a pretty good attempt at combining Maths theory with practical programming - I learned a lot about Python comprehensions, and a fair bit about Linear Algebra. It gives a background on the maths and appears to finish where the Machine Learning course begins - though I felt I could apply the learning from ML theory a lot easier than from this course. PROS \- great boot camp which forces you to really write correct Python code \- learning the Maths theory and applying it in code each week \- grader allows multiple attempts with no obvious time limits (necessary though) \- active forums \- fun secondary (still mandatory) assignments - I loved the one on changing the perspective of a photo CONS \- Overly picky autograder, often rejects correct Python code because it needs to be written in a certain way (possibly because they force you to use comprehensions in a certain way) \- lots of homework: 2-3 short programming assignm... This course is a pretty good attempt at combining Maths theory with practical programming - I learned a lot about Python comprehensions, and a fair bit about Linear Algebra. It gives a background on the maths and appears to finish where the Machine Learning course begins - though I felt I could apply the learning from ML theory a lot easier than from this course. PROS \- great boot camp which forces you to really write correct Python code \- learning the Maths theory and applying it in code each week \- grader allows multiple attempts with no obvious time limits (necessary though) \- active forums \- fun secondary (still mandatory) assignments - I loved the one on changing the perspective of a photo CONS \- Overly picky autograder, often rejects correct Python code because it needs to be written in a certain way (possibly because they force you to use comprehensions in a certain way) \- lots of homework: 2-3 short programming assignments every week \- lectures could use some more comments around applications of the theory being used, rather than just the maths theory followed by occasional code. The secondary weekly assignments should have been referred to frequently in the videos, to reinforce why this particular bit was useful Overall, I am glad I did this course - it was very challenging and time consuming but well worth the effort.
Was this review helpful? Yes4
 Flag
Brock Sides profile image
Brock Sides profile image
4/10 starsDropped
  • 10 reviews
  • 8 completed
7 years, 2 months ago
This is a course with a lot of potential, which unfortunately it completely fails to live up to. Video lecture quality is mediocre at best. The instructor lectures in front of a large screen, and frequently will be standing in front of the notes on the screen. The lectures themselves are very dry, abstract, and "mathy", which is to be expected for the subject, so I'm not counting this against the class. The homework load is heavy, which would be okay if the instructions were always clear and unambiguous, which they are not. For example, a two-part homework problem would require that you assign values to two python variables, but the variables would not be named in the instructions, so you had to guess which variable should hold which answer. The autograder has a number of problems. Feedback from the autograder was generally unhelpful. For example, there was a four-part problem where the autograder would only respond "Incorrect", with... This is a course with a lot of potential, which unfortunately it completely fails to live up to. Video lecture quality is mediocre at best. The instructor lectures in front of a large screen, and frequently will be standing in front of the notes on the screen. The lectures themselves are very dry, abstract, and "mathy", which is to be expected for the subject, so I'm not counting this against the class. The homework load is heavy, which would be okay if the instructions were always clear and unambiguous, which they are not. For example, a two-part homework problem would require that you assign values to two python variables, but the variables would not be named in the instructions, so you had to guess which variable should hold which answer. The autograder has a number of problems. Feedback from the autograder was generally unhelpful. For example, there was a four-part problem where the autograder would only respond "Incorrect", without telling you which parts of the problem were wrong. In another case, the autograder would accept an answer of the form "a + b", but not of the equivalent form "b + a". Ambiguities in the homework and problems with the autograder are the sort of thing I expect might get ironed out if the class is offered again. Course staff does not seem to be actively monitoring the forums, and a blanket prohibition on posting code to the forums makes it very difficult for students to help each other. But the absolutely unforgivable sin, the one which prompts the low rating I have given, is that the instructor will not be posting sample solutions to the assignments after the deadlines have passed. If you can't figure out a problem on your own, you are completely out of luck. The way you learn to write better code is by looking at other peoples code, and this class does not allow you to do this at all.
Was this review helpful? Yes4
 Flag
Karthik Puthraya profile image
Karthik Puthraya profile image
7/10 starsCompleted
  • 5 reviews
  • 5 completed
7 years, 1 month ago
I did have some background with basics of Linear Algebra. The promised computer science applications of this course is what I signed up for. Also, I had just started learning Python, so the fact that Python was the language for this course was an added bonus. In a nutshell, the course did deliver on that promise, but failed on almost all other aspects of the course. Pros: \- Rigorous, non-trivial assignments. Makes you think about foundational first- principles of linear algebra. \- It shows the power to Python as especially suited for numerical applications. I am really glad that this course used Python instead of something like Matlab/Octave. \- Good call on splitting the course into two parts. The advanced follow-up course will be offered sometime in the future. I think this was a very good call. Otherwise the fraction of people dropping out of this course would have been much higher. Cons: \- Grader. Oh, the grader. Absolutely ru... I did have some background with basics of Linear Algebra. The promised computer science applications of this course is what I signed up for. Also, I had just started learning Python, so the fact that Python was the language for this course was an added bonus. In a nutshell, the course did deliver on that promise, but failed on almost all other aspects of the course. Pros: \- Rigorous, non-trivial assignments. Makes you think about foundational first- principles of linear algebra. \- It shows the power to Python as especially suited for numerical applications. I am really glad that this course used Python instead of something like Matlab/Octave. \- Good call on splitting the course into two parts. The advanced follow-up course will be offered sometime in the future. I think this was a very good call. Otherwise the fraction of people dropping out of this course would have been much higher. Cons: \- Grader. Oh, the grader. Absolutely ruthless grader. A course which is supposed to take 4-5 hours a week ends up taking 7-10 hrs because you are trying to debug some really mundane grader related issues. In the process, you're learning neither Linear Algebra nor Python. Also, the fact that feedback given when you submit an incorrect answer are absolutely useless. I expect a CS course to be a little more foolproof. However, I think this issue won't be as bad in the next versions of the course. \- Prof. Klein, though very enthusiastic and knowledgeable about the course material, is just reading off of the slides most of the time. In fact, I ended up reading the proofs of the lemmas myself directly off of the slides to save time. \- The programming knowledge required to complete the course if ill-advised. Beginner programmers will find it hard to cope with the rigour of the course. So, beware! All in all, I am happy with the course, but I wish I had signed up for the second offering of the course instead of the debut offering. Would have saved me a considerable amount of time.
Was this review helpful? Yes3
 Flag
Connie profile image
Connie profile image
8/10 starsCompleted
  • 10 reviews
  • 9 completed
7 years, 1 month ago
Prior Experience: Took several linear algebra courses at university and have python programming experience If it is a pure Linear Algebra course, I would not enroll into it in the first place. I am curious to find out how matrices and vectors can be applied to computer science problems. Like: 1) Interesting Labs - Real application of matrix and vector calculation to Computer Science problems. Use dot product to find out if politicians cast same or different votes to a legislative bill. Use matrices to scale, translate, rotate and color scale an image. Instructor even provides python code to display the image in web browser to see the effect. 2) The discussion forum is very engaging. Tons of positive comments from staff and fellow colleagues. When I get stuck, I always find good advice in existing posts. Dislike: 1) Brutal autograder - If solution does not yield the expected result, autograder returns a generic yet unhelpful message, ... Prior Experience: Took several linear algebra courses at university and have python programming experience If it is a pure Linear Algebra course, I would not enroll into it in the first place. I am curious to find out how matrices and vectors can be applied to computer science problems. Like: 1) Interesting Labs - Real application of matrix and vector calculation to Computer Science problems. Use dot product to find out if politicians cast same or different votes to a legislative bill. Use matrices to scale, translate, rotate and color scale an image. Instructor even provides python code to display the image in web browser to see the effect. 2) The discussion forum is very engaging. Tons of positive comments from staff and fellow colleagues. When I get stuck, I always find good advice in existing posts. Dislike: 1) Brutal autograder - If solution does not yield the expected result, autograder returns a generic yet unhelpful message, "Sorry, incorrect!". I would expect an informative response from a program written by a Computer Science professor. I never imagine to put Mathematics and Computer Science in the same sentence. Thanks professor and TA for making linear algebra relevant in Computer Science.
Was this review helpful? Yes3
 Flag
Jeanne Boyarsky profile image
Jeanne Boyarsky profile image
8/10 starsCompleted
  • 33 reviews
  • 29 completed
7 years, 1 month ago
I took a linear algebra class in college (a decade ago.) We didn't cover much in the course so I didn't get much out of. As I like programming, this seemed like a good opportunity to actually learn Linear Algebra. And it was. I know a lot more now than when I finished the course in college. I bought the class book so I can read the 4 weeks of material that weren't covered in class. (The book is very similar to the lecture so you don't really need it.) Every week, there were homeworks and labs. The labs were applications of the concepts. Week 1 was a lot of python questions. I think it was used as a combination review and weeder week. Because you really do need to be very comfortable in Python to handle the rest of the course. People were helpful in the forums when you got stuck and they were well moderated. The TAs were knowledgeable and monitored the forums as well. This was the first session of the class so us students also served ... I took a linear algebra class in college (a decade ago.) We didn't cover much in the course so I didn't get much out of. As I like programming, this seemed like a good opportunity to actually learn Linear Algebra. And it was. I know a lot more now than when I finished the course in college. I bought the class book so I can read the 4 weeks of material that weren't covered in class. (The book is very similar to the lecture so you don't really need it.) Every week, there were homeworks and labs. The labs were applications of the concepts. Week 1 was a lot of python questions. I think it was used as a combination review and weeder week. Because you really do need to be very comfortable in Python to handle the rest of the course. People were helpful in the forums when you got stuck and they were well moderated. The TAs were knowledgeable and monitored the forums as well. This was the first session of the class so us students also served the purpose of being beta testers for the autograder than analyzes your homeworks/labs for the class and the professor's website. It could stand for some improvement. I also felt like the assignments could have used more detail of the output format and examples. I wound up writing pyunit tests for myself to test and sharing them in the forums. I liked the professor's philosophy of "don't worry if you gets stuck on a question; you'll still pass.' Unfortunately as a computer programmer, I program I can't write is like a puzzle calling out to me. I went back to them until I got them all. Overall, it was a good class though.
Was this review helpful? Yes2
 Flag
AJT P profile image
AJT P profile image
10/10 starsCompleted
  • 7 reviews
  • 7 completed
7 years, 2 months ago
This course was criticized in the forums for the amount of assignment work. I found the time taken on assignments varied from 10 minutes per week to 8 hours per week! If you saw the clever solution it was often one or two lines of code, if not then you could be stuck for an hour. All the puzzles were solvable, and none were that tricky (once you'd spotted your silly mistake!). If you enjoy puzzles and challenge that you've no idea how to solve (especially if you've had no exposure to Python before) then you'll like this. Sometimes the maths will be clear, but expressing it in Python will frustrate - other times it'll be maths that needs decoding. I loved this course. Completing it felt like an accomplishment.
Was this review helpful? Yes2
 Flag
Drew Verlee profile image
Drew Verlee profile image
7/10 starsCompleted
  • 2 reviews
  • 2 completed
6 years, 7 months ago
What you will get out of this course some knowledge of python list comprehensions An understanding of the basics of linear algebra A vague idea how to apply linear algebra to real problems Good problem solving skills Why you might not want to take it: if you just want to learn linear algebra if you just want to learn programming Summary: This class isn’t designed to purely linear algebra as roughly half your time will be spent writing code and trying to understand what problem is asking for. The fickle grader forces you to think about the problem the way it wants. Which may result less in expanding your mind and more frustration. If your goal is just linear algebra then a good text on the subject or Gilber Strangs MIT class is will serve you better. That being said this perspective is unique and is a amazing complement to a tradtional class. Final Verdict: I would take this class but prepare by running through Learn python the hard w... What you will get out of this course some knowledge of python list comprehensions An understanding of the basics of linear algebra A vague idea how to apply linear algebra to real problems Good problem solving skills Why you might not want to take it: if you just want to learn linear algebra if you just want to learn programming Summary: This class isn’t designed to purely linear algebra as roughly half your time will be spent writing code and trying to understand what problem is asking for. The fickle grader forces you to think about the problem the way it wants. Which may result less in expanding your mind and more frustration. If your goal is just linear algebra then a good text on the subject or Gilber Strangs MIT class is will serve you better. That being said this perspective is unique and is a amazing complement to a tradtional class. Final Verdict: I would take this class but prepare by running through Learn python the hard way. Before. I have a hunch future updated versions of this class will be Amazing and lack the grader complications that sometimes dragged down this run through.
Was this review helpful? Yes1
 Flag
Santi profile image
Santi profile image
10/10 starsCompleted
  • 1 review
  • 1 completed
7 years, 1 month ago
This has been my first coursera course so I can compare with others but I can only say that it has exceded my expectations a lot. The course it's not easy and requires a lot of work, however, since the topic is compelling and the professor explains very well, I feel it has been time very well expensed.
Was this review helpful? Yes0
 Flag
Gavin Conran profile image
Gavin Conran profile image
10/10 starsCompleted
  • 25 reviews
  • 25 completed
7 years, 1 month ago
I started my Mooc adventure with Andrew Ng's ground breaking, wonderful Machine Learning class and now pause after Philip Klein's equally ground breaking, equally wonderful course on coding up linear algebra. I say pause as I imagine I will be returning to Moocs in the future as the need and opportunity arise. Using code to teach mathematics is a brilliant way to bring a traditionally dry subject to life. I think this approach will prove invaluable in both high school and university mathematics in the future. A big challenge for educators is to get more people to code so that this new approach to learning is open to them. And so on to my new role as a computer science teacher......wish me luck!
Was this review helpful? Yes0
 Flag
Sergey Tihon profile image
Sergey Tihon profile image
3/10 starsCompleted
  • 1 review
  • 1 completed
7 years, 2 months ago
Very boring course. Some weeks contains lot of tasks (60+) - easy but amount is too large. Lots of bags in graders.
Was this review helpful? Yes0
 Flag

Rating Details


  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars
  • 5 stars
  • 4 stars
  • 3 stars
  • 2 stars
  • 1 stars

Rankings are based on a provider's overall CourseTalk score, which takes into account both average rating and number of ratings. Stars round to the nearest half.